--- Comment #41 from rguenth at gcc dot gnu dot org 2009-01-19 12:37
---
In
(insn 37 86 40 4 t.f:9 (parallel [
(set (reg:SI 2 cx [74])
(const_int 0 [0x0]))
(set (reg/f:SI 5 di [72])
(plus:SI (ashift:SI (reg:SI 2 cx [74])
--- Comment #40 from rguenth at gcc dot gnu dot org 2009-01-19 12:20
---
Which means this might be a target bug as well, more specifically a bug in the
*rep_stossi pattern.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #39 from bonzini at gnu dot org 2009-01-19 11:04 ---
Looks like a scheduling bug:
-O1 -fforward-propagate has
leal-676(%ebp), %edi
movl$19, %ecx
movl$538976288, %eax
rep stosl
movw$31096, -603(%ebp)
movb$122
--- Comment #38 from rguenth at gcc dot gnu dot org 2009-01-19 10:50
---
Created an attachment (id=17139)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17139&action=view)
assembler diff between -O -m32 -fforward-propagate and -O -m32
-fforward-propagate -fschedule-insns2
--
h
--- Comment #37 from bonzini at gnu dot org 2009-01-19 10:36 ---
This is the fishy part: notice that the %esi in the failing test case is
completely bogus.
- leal-680(%ebp), %esi
- movb$32, (%esi)
- movb$32, -679(%ebp)
- movw$8224, -678(%ebp)
+
--- Comment #36 from bonzini at gnu dot org 2009-01-19 10:33 ---
Would you please attach the assembler diff:
1) between -m32 -O1 and -m32 -O1 -fforward-propagate
2) between the latter and -m32 -O1 -fforward-propagate -fschedule-insns2?
Thanks.
--
http://gcc.gnu.org/bugzilla/show_bu
--- Comment #35 from rguenth at gcc dot gnu dot org 2009-01-19 10:29
---
I can reproduce the issue with the testcase in comment #27 on x86_64-linux
with -m32 -O2 vs. -m32 -O.
It can be reduced to the effect of -fschedule-insns2 and -fforward-propagate
(disabling either on -O2 -fno-stri
--- Comment #34 from howarth at nitro dot med dot uc dot edu 2009-01-18
19:49 ---
I also see the testcase in Comment 27 fail when compiled at -O2 or higher with
i686-apple-darwin10. As with i686-apple-darwin9, the problem only occurs with
-m32 and not -m64.
--
http://gcc.gnu.org/bu
--- Comment #33 from howarth at nitro dot med dot uc dot edu 2009-01-18
17:02 ---
Could the additional .p2align assembly operands in the failing assembly have
anything to do with this problem?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38868
--- Comment #32 from burnus at gcc dot gnu dot org 2009-01-18 13:25 ---
Created an attachment (id=17134)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17134&action=view)
Assembler diff on x86-64-openSUSE Factory with -m32 -O1 (working) and -m32 -O2
(failing)
Attached the assembler
--- Comment #31 from burnus at gcc dot gnu dot org 2009-01-18 13:24 ---
(In reply to comment #27)
> Further reduced test case:
Using gfortran on x86-64-linux, I see with -m64 and all -O* a line which ends
in " xyz'". However, with -m32 and -O (n >= 2) I only see:
"z'". I tried to r
--- Comment #30 from dominiq at lps dot ens dot fr 2009-01-18 13:13 ---
If I compile the test in comment #27 with -O1 and all the other flags supposed
to be turned on by -O2
(taken from
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options) the
bug does not show up. Wh
--- Comment #29 from dominiq at lps dot ens dot fr 2009-01-18 12:50 ---
Created an attachment (id=17133)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17133&action=view)
Assembly corresponding to the test case in comment #27
When I compile the attached file with gfortran 4.3, the
--- Comment #28 from dominiq at lps dot ens dot fr 2009-01-18 12:06 ---
The difference between the results of -fdump-tree-optimized for the cases
aner = ''
ANER(1)='A '
ANER(2)=''
and
ANER(1)='A '
ANER(2)=''
aner = ''
is ('pre' with the
--- Comment #27 from dominiq at lps dot ens dot fr 2009-01-18 12:00 ---
Further reduced test case:
PROGRAM testcase
IMPLICIT NONE
CHARACTER*4 ANER(18)
CHARACTER*80 LINE
aner = ''
ANER(1)='A '
ANER(2)=''
LINE=' '
LINE(78:80)='x
--- Comment #26 from dominiq at lps dot ens dot fr 2009-01-17 23:48 ---
Further reduced test case:
PROGRAM testcase
IMPLICIT NONE
INTEGER NENERT
PARAMETER (NENERT=62)
CHARACTER*4 ANER(NENERT)
CHARACTER*80 LINE
INTEGER PUNIT
PUNIT = 6
--- Comment #25 from dominiq at lps dot ens dot fr 2009-01-17 23:28 ---
In the reduced case in comment #19 ANER is initialized and the output is still
wrong.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38868
--- Comment #24 from howarth at nitro dot med dot uc dot edu 2009-01-17
23:23 ---
I've had no luck triggering this problem on targets other than
i686-apple-darwin9. On that target -m64, suppresses the problem. As to the
issue with ANER(J) being undefined on line 162, this can be fixed w
--- Comment #23 from burnus at gcc dot gnu dot org 2009-01-17 22:51 ---
Program of comment 19 works here (x86-64) with all options I tried, incl. -m32,
-fgraphite-identity etc. - valgrind shows no problems.
For the program in attachment 17125 / commment 13: I get the same valgrind
outpu
19 matches
Mail list logo