This is the mail archive of the 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: [PING] 4.3 regression: CSE clobbers EH reg

On Thu, Mar 6, 2008 at 11:30 AM, Andreas Krebbel
<> wrote:
> Hello,
>  > I wonder if this isn't something the DF code should do in df_get_live_{in,out}?
>  > If that isn't the case (I'll take the DF maintainers word on this), then the
>  > patch is ok for trunk and a week later for the branch.
>  I don't think that can be solved without touching cse.  cse currently
>  doesn't use the df frame work very much.  It just takes the live
>  in/out info for the boundaries of an extended basic block.  An
>  extended bb may contain an EH block but since the df liveness info
>  isn't checked for each basic block within the ebb df would anyway not
>  have a chance to intervene.
>  Also I'm not sure whether that's a question of register liveness at
>  all.  If an EH reg is also used for other purposes it might be live in
>  a bb whether it's an EH edge receiver or not.  The special thing about
>  the EH regs is that they might be defined somewhere outside the normal
>  control flow.  Before the df framework CLOBBERs were inserted at the
>  beginning of an EH block to invalidate the cse infos. DF instead
>  records EH register sets as artificial sets at bb start and the
>  CLOBBERs went away.  Unfortunately the recorded information is
>  currently ignored by cse and that's what I'm trying to change with the
>  patch.

I see.  That makes sense to me, so the patch is ok.


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