This is the mail archive of the gcc-patches@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]

Re: [killloop] Patch for PR24762


On Tue, 2005-11-15 at 14:59 +0100, Zdenek Dvorak wrote:
> Hello,
> 
> > > > This patch fixes the problem by explicitly emitting clobbers for
> > > > registers modified by exception handling.  This is not really a clean
> > > > solution (by the same rationale as with calls, definitions from explicit
> > > > clobbers should also never be used), but Daniel claims that it should be
> > > > possible to easily fix the problem cleanly once dataflow branch is merged,
> > > > so I don't want to spend too much time on it.
> > > 
> > > The dataflow-branch breaks for this PR also.  Probably for the same
> > > reasons that mainline fails, i.e. df.c doesn't handle landing pads...?
> > 
> > We do what flow does on dataflow-branch :)
> > 
> > It's quite possible your brokenness related to EH is because he's using
> > analyze_subcfg, which doesn't know which blocks have eh handling info in
> > them, and which blocks don't, so it doesn't say to process them.
> > 
> > There are also artificial uses related to EH in the exit block, and for
> > liveness to properly propagate for them, you need to process pretty much
> > all of the blocks.
> 
> however, invariant motion does not at all care about liveness.
>  All it
> uses are UD chains.

Which requires proper artificial defs for eh edges, or else the wrong
things will reach.  There is a lot of magic that happens in certain
edges that we require in order to get right answers. 


>   In particular, nothing related to uses is really
> interesting.  To fix the problem, some "virtual" defs need to be added
> to the EH edges -- 
> as far as I understood, dataflow branch enables you
> to do this?
Yes


> 
> Zdenek


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