This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/33315] stores not commoned by sinking


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org
          Component|middle-end                  |tree-optimization
            Summary|If condition not getting    |stores not commoned by
                   |eliminated                  |sinking

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
comment#4 is long fixed (in DOM).  In the original testcase the redundant
conditons are eliminated but we retain

test ()
{
  int i;

  <bb 2>:
  i_8 = num;
  if (i_8 == 1)
    goto <bb 3>;
  else
    goto <bb 6>;

  <bb 3>:
  MEM[(int *)&a] = 0;
  MEM[(int *)&a + 4B] = 0;
  goto <bb 5>;

  <bb 4>:
  MEM[(int *)&a + 4B] = 0;

  <bb 5>:
  MEM[(int *)&a + 8B] = 0;
  return;

  <bb 6>:
  MEM[(int *)&a] = 0;
  if (i_8 == 2)
    goto <bb 4>;
  else
    goto <bb 7>;

  <bb 7>:
  MEM[(int *)&a + 4B] = 0;
  goto <bb 5>;


because nothing sinks the common stores and tail-merging does only obfuscate
the CFG.  So this didn't really have sth to do with PR23286.  But the
complaint that the if condition is not eliminated is no longer true.

transmogrifying bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]