[Bug target/69014] [4.9/5/6 Regression] gcc.c-torture/execute/991023-1.c FAILs with -Os -fmodulo-sched -fno-tree-vrp
ktkachov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 23 10:01:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69014
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |law at redhat dot com
--- Comment #4 from ktkachov at gcc dot gnu.org ---
I'm still looking into why the wrong-code occurs but there's a code quality
regression between 4.8 and 4.9 at the tree-level.
At expand time for 4.8 the function foo looks like:
foo ()
{
;; basic block 2, loop depth 0
;; pred: ENTRY
blah = 1;
return 1;
;; succ: EXIT
}
whereas for 4.9 it's:
foo ()
{
int blah_lsm.4;
int i;
int _8;
;; basic block 2, loop depth 0
;; pred: ENTRY
goto <bb 4>;
;; succ: 4
;; basic block 3, loop depth 2
;; Invalid sum of incoming frequencies 7656, should be 8750
;; pred: 5
blah_lsm.4_3 = 1;
if (i_7 == 6)
goto <bb 5>;
else
goto <bb 4>;
;; succ: 5
;; 4
;; basic block 4, loop depth 1
;; Invalid sum of incoming frequencies 9998, should be 8748
;; pred: 3
;; 2
# i_11 = PHI <i_7(3), 0(2)>
;; succ: 5
;; basic block 5, loop depth 2
;; pred: 3
;; 4
# i_12 = PHI <i_7(3), i_11(4)>
# blah_lsm.4_6 = PHI <blah_lsm.4_3(3), 0(4)>
i_7 = i_12 + 1;
if (i_7 <= 6)
goto <bb 3>;
else
goto <bb 6>;
;; succ: 3
;; 6
;; basic block 6, loop depth 0
;; Invalid sum of incoming frequencies 1094, should be 1250
;; pred: 5
# blah_lsm.4_14 = PHI <blah_lsm.4_6(5)>
blah = blah_lsm.4_14;
_8 = blah_lsm.4_6;
return _8;
;; succ: EXIT
}
I've attached the dom1 dumps from 4.8 and 4.9.
Jeff, do you have any insight into what is happening?
More information about the Gcc-bugs
mailing list