From: | Manfred Spraul <manfred(at)colorfullife(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, "Patches (PostgreSQL)" <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: fix for strict-alias warnings |
Date: | 2003-10-14 21:01:14 |
Message-ID: | 3F8C641A.2010700@colorfullife.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Tom Lane wrote:
>Manfred Spraul <manfred(at)colorfullife(dot)com> writes:
>
>
>>After some massaging, I've succeeded in generating bad code using a
>>slightly modified MemSetAligned macro (parameters -O2
>>-fstrict-aliasing): gcc pipelined the x*x around the memset.
>>
>>
>
>As I already explained, we do not care about the MemSetAligned case.
>Is gcc 3.3 smart enough to optimize away the pointer alignment test
>in the full macro?
>
3.2 optimizes away the pointer alignment test, but then doesn't pipeline
the "x*x" calculation. It might be due to a known (and now fixed) bug in
gcc where is lost track of constants, and thus didn't succeed in
optimizing long calculations.
I don't have gcc 3.3 installed, but IMHO it would be insane to leave
strict alias analysis enabled - writing to *(int32*)addr violates the
alias rules, the bad code generated with MemSetAligned proved that.
Is someone around with 3.3 who could test MemSet?
--
Manfred
From | Date | Subject | |
---|---|---|---|
Next Message | Jon Jensen | 2003-10-14 21:04:45 | Re: postgres --help-config |
Previous Message | Peter Eisentraut | 2003-10-14 20:45:17 | Re: fix for strict-alias warnings |
From | Date | Subject | |
---|---|---|---|
Next Message | Ian Barwick | 2003-10-14 21:14:48 | psql tab completion bug and possible fix |
Previous Message | Peter Eisentraut | 2003-10-14 20:45:17 | Re: fix for strict-alias warnings |