[PATCH] (another one) Fix PR33870, PTA and partitoning interaction

Richard Guenther rguenther@suse.de
Wed Oct 24 16:11:00 GMT 2007


On Wed, 24 Oct 2007, Daniel Berlin wrote:

> On 10/24/07, Richard Guenther <rguenther@suse.de> wrote:
> >
> > So, as opposed to the earlier patch which papered over one specific case
> > of the problem (which is that alias partitioning rips apart SFTs belonging
> > to the same parent variable), this is a hammer that really solves it
> > but at a cost (maybe, to be investigated).
> >
> > IMHO the operand scanning part of accesses through pointers is fragile
> > in that it requires that the full set of SFTs that possibly are addressed
> > by the pointer is available together as aliases of a symbol.
> 
> Actually, it only requires that the points-to sets be correct :)

But we don't use the points-to set.  We use the aliased bitmap.

> > Another possible "fix" for PR33870 would be to force memory partitioning
> > to either never put SFTs into MPTs or if an SFT goes into a MPT also
> > add all other SFTs belonging to its parent variable.  Of course this
> > perverts memory partition heuristics and effectively makes SFTs
> > useless (unless doing option one which makes one point of MPTs, reduced
> > number of VOPs moot).
> 
> This is the right option.  We have other constraints on partitioning
> to make it correct.  This is just another one.

Which one?  I gave two options.

> Alternatively, i'd rather remove SFT's entirely and force our
> optimizers to start doing what they should (use more than just
> vdefs/vuses) than I would go back to lying about what the points-to
> sets are.

I sort of agree.  But certainly not for 4.3.  We need a fix for the
wrong-code problem and I didn't see you doing anything constructive
here apart from very fast ditching my proposed "solutions".

> I just went through a lot of trouble to stop making PTA lie about what
> is being pointed to.

Well, it happens that set_uids_in_ptset computes the points-to solution,
so I should have touched compute_flow_sensitive_aliasing instead.  But
let me guess - you wouldn't like that one either.

Well, I'm off this problem now and leave this to obviosly more intelligent
people like you.

Thanks anyway.
Richard.



More information about the Gcc-patches mailing list