[Bug c/29140] New: optimization -O2/-O3/-Os generate wrong instruction order

2006-09-19 Thread mingqiao dot wu at gmail dot com
ority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mingqiao dot wu at gmail dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: arm-iwmmxt-linux-gnueabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29140

[Bug c/29140] optimization -O2/-O3/-Os generate wrong instruction order

2006-09-19 Thread mingqiao dot wu at gmail dot com
--- Comment #1 from mingqiao dot wu at gmail dot com 2006-09-19 12:26 --- Created an attachment (id=12296) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12296&action=view) compare the disassembly result clearly -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29140

[Bug c/29140] optimization -O2/-O3/-Os generate wrong instruction order

2006-09-19 Thread mingqiao dot wu at gmail dot com
--- Comment #3 from mingqiao dot wu at gmail dot com 2006-09-20 01:22 --- (In reply to comment #2) > You are violating C aliasing rules here (try -Wstrict-aliasing): >return *(CTLFLOAT*)&bits; Yes, -O2 turns on -fstrict-aliasing, and I saw many warnings lik

[Bug c/29140] optimization -O2/-O3/-Os generate wrong instruction order

2006-09-19 Thread mingqiao dot wu at gmail dot com
--- Comment #4 from mingqiao dot wu at gmail dot com 2006-09-20 04:48 --- After checking gcc manual, I found union can be used to do this conversion. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29140