[Bug tree-optimization/72785] [7 Regression] kernel build error since r236831
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 10 09:23:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
tree-ssa-threadedge.c has some BUILT_IN_CONSTANT_P code already, but clearly it
isn't enough.
"Similarly for __builtin_constant_p:
r = PHI <1(2), 2(3)>
__builtin_constant_p (r)
Both PHI arguments are constant, but x ? 1 : 2 is still not
constant."
is what it does right now, but we have instead:
# iftmp.0_2 = PHI <a.1_5(2), 1(3)>
b = iftmp.0_2;
_1 = __builtin_constant_p (iftmp.0_2);
where thread1 turns it into:
# iftmp.0_8 = PHI <1(2)>
b = iftmp.0_8;
_10 = __builtin_constant_p (iftmp.0_8);
...
# iftmp.0_2 = PHI <a.1_5(2)>
b = iftmp.0_2;
_1 = __builtin_constant_p (iftmp.0_2);
This is undesirable, iftmp.0_2 really isn't constant, so we shouldn't turn it
into sometimes constant, sometimes non-constant.
More information about the Gcc-bugs
mailing list