http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50725
--- Comment #9 from gee <jojelino at gmail dot com> 2011-10-17 15:42:21 UTC --- here is more specific option for reproduce this bug. $ g++ -fverbose-asm -c -O1 -finline-small-functions -ftree-vectorize -finline-functions -mstackrealign -march=core2 ./pseudo-reloc.ii -save-temps;cat pseudo-reloc.s|grep "(%ecx)" movl (%ecx), %eax # u, u pushl -4(%ecx) # leal -4(%ecx), %esp #, using -fverbose-asm, i got following equivalant option to above but it doesn't emit same one as above. the only difference on RTL generated between two is do_pseudo_reloc is inlined in above but below. $ g++ -fverbose-asm -c -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability -fif-conversion -fif-conversion2 -finline -finline-functions-called-once -fipa-profile -fipa-pure-const -fipa-reference -fmerge-constants -fomit-frame-pointer -fshrink-wrap -fsplit-wide-types -ftoplevel-reorder -ftree-bit-ccp -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-sink -ftree-sra -ftree-ter -finline-small-functions -ftree-vectorize -finline-functions -mstackrealign -march=core2 ./pseudo-reloc.ii -save-temps;cat pseudo-reloc.s|grep "(%ecx)"