[Bug tree-optimization/23622] Dom jump threading at -O1 confuses branch prediction
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23622 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #5 from Jeffrey A. Law --- AFAICT this works fine in the 4.9 trunk.
[Bug tree-optimization/23622] Dom jump threading at -O1 confuses branch prediction
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-15 19:28 --- Confirmed. -- What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2005-09-15 19:28:17 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23622
[Bug tree-optimization/23622] Dom jump threading at -O1 confuses branch prediction
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-29 12:57 --- Hmm, in dom1 we get: : goto (); # i_4 = PHI ; :; something (); i_3 = i_4 + 1; # i_1 = PHI ; :; if (i_1 <= 99) goto ; else goto ; :; return; # i_2 = PHI <0(0)>; :; goto (); In PHI-OPT we get: # i_4 = PHI ; :; something (); i_3 = i_4 + 1; if (i_3 <= 99) goto ; else goto ; Becuase we run a cfg cleanup. I don't see anything wrong here now. This is the same for -O2 also. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23622
[Bug tree-optimization/23622] Dom jump threading at -O1 confuses branch prediction
--- Additional Comments From rakdver at gcc dot gnu dot org 2005-08-29 13:18 --- Sorry, I have simplified the testcase and only looked at the dom1 dump. You need the following testcase to reproduce the problem (for the second loop): void foo (void) { int i; for (i = 0; i < 100; i++) something (); for (i = 0; i < 100; i++) something (); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23622
[Bug tree-optimization/23622] Dom jump threading at -O1 confuses branch prediction
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-29 16:20 --- If we run CCP right after DOM and do a DCE, we get a cleaned up loops. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23622