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: [PATCH] Fix problem with EH regs in global register allocation


"Andreas Krebbel" <Andreas.Krebbel@de.ibm.com> writes:

> > Right now this is in a conditional clause checked by
> > bb_has_abnormal_pred.  This should instead be in a conditional clause
> > checked by bb_has_eh_pred.  That is, write
> > 
> > if (bb_has_eh_pred (bb))
> >   {
> >     EXECUTE_IF_SET_IN_SPARSESET (allocnos_live, i)
> >       {
> >         allocno[i].no_eh_reg = 1;
> >       }
> >   }
> 
> Maybe you have confused the code location I'm changing here?!
> With my patch the code looks like this:

Sorry, you're right, I thought it was in the bb_has_abnormal_pred
block.  It's fine in the bb_has_eh_pred block.


> > It would be good if you could add a test case for this, but it's not
> > required.  I know that libstdc++ fails now, but for something subtle
> > like this the libstdc++ code might easily change and then we would
> > have no test case.
> 
> The hash_data_map_rand testcase in the libstdc++ testsuite fails with
> -march=z9-ec on s390x.  I've tried to reduce it using the delta tool
> but couldn't get it to a comfortable size.

OK.

Ian


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