2010/1/6 Jeff Law <l...@redhat.com>: > Please file a bug report with a complete testcase so that we can see what's > happening rather than trying to speculate. > > jeff >
Uh, seems this problem doesn't occur on trunk. Because before pass_dominator, pass_complete_unrolli is able to unroll the following test case. void foo (int x) { int i; for (i=0; i < 2 ; i++) if (x) { if (i == 0) fun_1 (); else fun_2 (); } } I found this problem on gcc-4.4.0. The pass_complete_unrolli doesn't unroll this loop, but if -fno-tree-dominator-opts is applied, pass_complete_unroll is able to unroll it. And pass_dominator does cause the loop's exit bb never dominate its latch bb. Thanks Eirc