------- Comment #6 from hjl at lucon dot org 2007-05-20 21:40 ------- forwprop changes
<bb 2>: alen_4 = alen_2(D) - blen_3(D); out_5 = 0; __asm__("":"=r" a_9, "=r" b_10, "=mr" blen_11, "=mr" out_12, "=&r" tmp_13:"mr" d_6(D), "0" a_7(D), "1" b_8(D), "2" blen_3(D), "3" 0:"edx", "eax"); if (alen_4 == 0) goto <bb 3> (<L0>); else goto <bb 4> (<L1>); to <bb 2>: out_5 = 0; __asm__("":"=r" a_9, "=r" b_10, "=mr" blen_11, "=mr" out_12, "=&r" tmp_13:"mr" d_6(D), "0" a_7(D), "1" b_8(D), "2" blen_3(D), "3" 0:"edx", "eax"); if (alen_2(D) == blen_3(D)) goto <bb 3> (<L0>); else goto <bb 4> (<L1>); If it can use blen_11 instead of blen_3(D), it may compile. If forwprop can't deal some asm stmts very well, it should skip those asm stmts. -- hjl at lucon dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |tree-optimization Target Milestone|4.3.0 |--- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32004