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


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.  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?

Zdenek


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