This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] New type-based aliasing (was: More CFG improvements)
- From: law at redhat dot com
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 06 Feb 2003 13:25:55 -0700
- Subject: Re: [tree-ssa] New type-based aliasing (was: More CFG improvements)
- Reply-to: law at redhat dot com
In message <20030206200801.GB5229@tornado.toronto.redhat.com>, Diego Novillo wr
ites:
>On Thu, 06 Feb 2003, Jeff Law wrote:
>
>> The downside of that is we expose a hell of a lot more objects to the
>> PHI insertion routines, which in turn causes 20001226-1.c to blow back
>> up :( Luckily, I've got changes here to fix that with better PHI
>> insertion.
>>
>Right. After you enable the pruned form, we can add the bits to
>only compute alias sets for stores. Oh BTW, this morning I ran
>some Brad Lucier's positively nasty files through tree-ssa. Yum.
>The worst one was conform.i with things like:
>
>---------------------------------------------------------
> Number of Memory
> instances used
>---------------------------------------------------------
>Referenced variables 5536 21k
>....
>PHI nodes 157336 6145k
>PHI arguments 33400595 254M
>---------------------------------------------------------
>Total memory used by DFA/SSA data 260M
>---------------------------------------------------------
>
>Average number of arguments per PHI node: 212.3 (max: 571)
Well, the number of referenced variables and PHI arguments for
20001226-1.c is higher than Brad's case.
We get 48k referenced variables, 16k of which have nonlocal lifetimes.
The maximum number of PHI arguments is over 8k. I don't know what
the average is.
Fully pruned we can actually handle it. semi-pruned we eat > 1G of
memory and die a painful death (this is of course assuming my
changes to the aliasing code).
>---------------------------------------------------------
> Number of Memory
> instances used
>---------------------------------------------------------
>Basic blocks 4288 335k
>Edges 133673 5221k
>Basic block annotations 4288 50k
>---------------------------------------------------------
>Total memory used by CFG data 5606k
>---------------------------------------------------------
>
>Coalesced label blocks: 35 (Max so far: 35)
>Coalesced case label blocks: 0 (Max so far: 0)
>
>The compiler grew to like 1.4 Gb in core. We spent most of the
>time in CCP probably following the hundreds of thousands of
>edges.
That's the key difference and there's probably not anything we can
do with such a fully connected graph. Frankly, we should probably
punt it.
Jeff