This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch, rfc] Make store motion use alias oracle
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Victor Kaplansky <VICTORK at il dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org, rguenther at suse dot de, richard dot guenther at gmail dot com
- Date: Wed, 31 Jan 2007 15:30:51 +0100
- Subject: Re: [patch, rfc] Make store motion use alias oracle
- References: <OF9EF1BEA9.2656F7DA-ONC2257274.0047E197-C2257274.00492B4C@il.ibm.com>
Hello,
> > 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).
>
> After the patch has been applied to trunk it fails with ICE. Here is
> a reduced test case:
hmm... serves me right; I made an obviously correct change in the patch
just before sending it, and did not bother checking whether it still
works. I will send a fixed version soon.
Zdenek
>
>
> 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