This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PING] 4.3 regression: CSE clobbers EH reg
On Thu, Mar 6, 2008 at 11:30 AM, Andreas Krebbel
<Andreas.Krebbel@de.ibm.com> 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.
Thanks,
Richard.