This is the mail archive of the 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: [IA-64] Fix PR target/48496

> Is the standard condition for define_memory_constraint here
>                         /* Likewise if the address will be reloaded because
>                            reg_equiv_address is nonzero.  For reg_equiv_mem
>                            we have to check.  */
>                         else if (REG_P (operand)
>                                  && REGNO (operand) >=
> FIRST_PSEUDO_REGISTER && reg_renumber[REGNO (operand)] < 0 &&
> ((reg_equiv_mem (REGNO (operand)) != 0 && EXTRA_CONSTRAINT_STR
> (reg_equiv_mem (REGNO (operand)), c, p))
>                                      || (reg_equiv_address (REGNO
>                                      || (operand)) != 0)))
>                           win = 1;
> If so, shouldn't you check those conditions as well, or at least something
> similar?  Not sure if reg_equiv_address needs to be allowed there, and
> guess reg_equiv_mem should satisfy the Q constraint, i.e. !MEM_VOLATILE_P
> memory_operand.  Accepting any pseudo there sounds too risky to me...

You're right, and modifying a constraint to silence a bogus error is probably 
too dangerous in any case.  And there may be other affected architectures.
So patch withdrawn.  The best fix is very likely in reload1.c in the end.

Eric Botcazou

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