[PING] 4.3 regression: CSE clobbers EH reg

Andreas Krebbel Andreas.Krebbel@de.ibm.com
Thu Mar 6 10:30:00 GMT 2008


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.

Bye,

-Andreas-



More information about the Gcc-patches mailing list