This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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