Summary: | Regression: Optimizer produces incorrect code for ARM target | ||
---|---|---|---|
Product: | gcc | Reporter: | Pete Gonzalez <pgonzalez> |
Component: | c++ | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | gcc-bugs |
Priority: | P2 | ||
Version: | 3.3 | ||
Target Milestone: | 3.4.0 | ||
Host: | i686-pc-cygwin | Target: | arm-arm-elf |
Build: | i686-pc-cygwin | Known to work: | |
Known to fail: | Last reconfirmed: | ||
Attachments: | Test.cpp |
Description
Pete Gonzalez
2003-08-09 05:47:27 UTC
Created attachment 4584 [details]
Test.cpp
Compile with this command: "gcc -c -O2 Test.cpp -marm -save-temps"
The output file Test.s should contain three "smull" instructions and six
"smlal" instructions. However, with GCC 3.3 and later the generated code is
incorrect, e.g. there is only one "smull" instruction and two "smlal"
instructions.
Your code contains lots of aliasing violations, which are the cause for your problems. I suggest you fix them or use -fno-strict-aliasing. Reopening to ... |