Re: Regression fails on Alpha True64 V5.0 for

From: "Tegge, Bernd" <tegge(at)repas-aeg(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-ports(at)postgresql(dot)org
Subject: Re: Regression fails on Alpha True64 V5.0 for
Date: 2001-11-21 08:46:31
Message-ID: 5.1.0.14.0.20011121091945.0298c300@dragon.dr.repas.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

At 14:27 19.11.01 -0500, Tom Lane wrote:
>"Tegge, Bernd" <tegge(at)repas-aeg(dot)de> writes:
> > I've got a rather ugly but usable workaround. See attached timestamp.c
>
>My, that *is* ugly. Surely there's gotta be something cleaner.
>
>I don't quite understand how it is that the Compaq compiler works at
>all, if it thinks it can optimize random memcpy operations into
>opcodes that assume aligned addresses.

Well, if both operands are ptr to double and the compiler/runtime
system aligns doubles except on explicit request (frex #pragma noalign)
the optimizer probably thought it was safe to replace the memcpy by a
load/store double operation. It probably should not have done this
after casting the pointers to void*, but it did ...

> We should be coredumping in a
>lot more places than just this. Since we're not, there's got to be
>some fairly straightforward way of defeating the optimization.
>The extra memcpy looks to me like black magic that doesn't really have
>anything directly to do with the problem.

I had to use the temp vars after the assignment. Otherwise the compiler
optimized them away. Sometimes this thing is amazing.

>I'm surprised that the (void *) cast didn't fix it. Perhaps it would
>work to use DatumGetPointer rather than DatumGetIntervalP --- that is,
>never give the compiler any hint that the source might be considered
>double-aligned in the first place.

Thanks, *that* did it. We should just extend the comment block above
to going back to DatumGetIntervalP if the array code ever gets fixed.

Attachment Content-Type Size
unknown_filename text/plain 2.2 KB

In response to

Responses

Browse pgsql-ports by date

  From Date Subject
Next Message Tom Lane 2001-11-21 14:36:43 Re: Regression fails on Alpha True64 V5.0 for yesterdays cvs
Previous Message Tom Lane 2001-11-21 04:27:39 Re: Darwin/MacOSX 10.1.1 newbie