[Bug tree-optimization/56049] [7 Regression] Simplification to constants not done

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 10 13:29:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56049

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
So on trunk we are left with

  <bb 2> [0.01%]:
  a = {};

  <bb 3> [1.39%]:
  # ivtmp.77_134 = PHI <ivtmp.77_135(3), 0(2)>
  prephitmp_170 = (integer(kind=4)) ivtmp.77_134;
  vect_cst__281 = {prephitmp_170, prephitmp_170, prephitmp_170, prephitmp_170};
  vect__101.74_196 = vect_cst__281 + { 1, 1, 1, 1 };
  ivtmp.77_135 = ivtmp.77_134 + 1;
  if (ivtmp.77_135 == 10000000)
    goto <bb 4>; [1.01%]
  else
    goto <bb 3>; [98.99%]

  <bb 4> [0.01%]:
  MEM[(c_char * {ref-all})&a] = vect__101.74_196;
  MEM[(c_char * {ref-all})&a + 16B] = vect__101.74_196;
  MEM[(c_char * {ref-all})&a + 32B] = vect__101.74_196;
...

not too bad I'd say.  If we'd use SCEV-ccp as a service then for example
phi-only-cprop could clean this up (we'd need to teach SCEV about vectors
though... ugh).  Btw, it's IVOPTs that cleans up the load of IVs generated
by PRE.


More information about the Gcc-bugs mailing list