Patch to fix gcc.c-torture/compile/20010102-1.c on IA64 HP-UX
Peter Bergner
bergner@vnet.ibm.com
Fri Oct 31 20:29:00 GMT 2008
On Thu, 2008-10-30 at 12:38 -0600, Jeff Law wrote:
> Peter Bergner wrote:
[snip]
> > Index: config/ia64/predicates.md
> > ===================================================================
> > --- config/ia64/predicates.md (revision 140417)
> > +++ config/ia64/predicates.md (working copy)
> > @@ -585,6 +585,6 @@ (define_predicate "ar_pfs_reg_operand"
> > (define_predicate "basereg_operand"
> > (match_operand 0 "register_operand")
> > {
> > - return REG_P (op) && REG_POINTER (op);
> > + return REG_P (op) && REG_POINTER (regno_reg_rtx[ORIGINAL_REGNO (op)]);
> > })
> >
> We shouldn't be hacking up backends to deal with this problem, it's
> entirely the wrong approach.
I have to agree with Jakub, why not? As Jakub mentioned, REG_POINTER
cannot make sense on a hard register since it can contain many unrelated
values, some being pointers and some not. We actually already hit and
fixed a problem where we were setting the REG_POINTER attribute on a
hard register:
http://gcc.gnu.org/ml/gcc-patches/2008-06/msg01425.html
Or are you saying this predicate should never be called with a
hard register?
Peter
More information about the Gcc-patches
mailing list