[patch, rfc] Make store motion use alias oracle

Victor Kaplansky VICTORK@il.ibm.com
Wed Jan 31 14:25:00 GMT 2007


> here is the updated version of the patch that makes us use alias oracle
> for both invariant motion and store motion, and adds a few trivial
> improvements to the oracle, thus making it fix the fatigue problem
> (I hope; I did not actually run the benchmark, I just looked at the
> dumps).

Zdenek,

After the patch has been applied to trunk it fails with ICE.  Here is
a reduced test case:


struct S { int X; int Y; };

int
foo (struct S *s)
{
  int j;

  for (j = 0; j < 8; j++)
    {
      s[5].X += j;
      s[5].Y += j;
    }
}
=cut

 foo
Analyzing compilation unit
Performing interprocedural optimizations
 <visibility> <early_local_cleanups> <inline> <static-var> <pure-const>
<type-escape-var>Assembling functions:
 foo
a.c: In function 'foo':
a.c:5: internal compiler error: tree check: expected ssa_name, have
symbol_memory_tag in move_computations_stmt, at tree-ssa-loop-im.c:907

 -- Victor



More information about the Gcc-patches mailing list