[PR99422] LRA: Don't check unknown constraint, use X for empty constraint
Using CONSTRAINT__UNKNOWN was a bad idea, although it triggered a lot hidden bugs. It is better to use X instead of empty constraint. gcc/ChangeLog: PR target/99422 * lra-constraints.c (process_address_1): Don't check unknown constraint, use X for empty constraint.
This commit is contained in:
parent
8f316f41ce
commit
d38bbb8511
@ -3459,7 +3459,7 @@ process_address_1 (int nop, bool check_only_p,
|
||||
constraint
|
||||
= skip_contraint_modifiers (curr_static_id->operand[dup].constraint);
|
||||
}
|
||||
cn = lookup_constraint (constraint);
|
||||
cn = lookup_constraint (*constraint == '\0' ? "X" : constraint);
|
||||
if (insn_extra_address_constraint (cn)
|
||||
/* When we find an asm operand with an address constraint that
|
||||
doesn't satisfy address_operand to begin with, we clear
|
||||
@ -3475,9 +3475,8 @@ process_address_1 (int nop, bool check_only_p,
|
||||
i.e. bcst_mem_operand in i386 backend. */
|
||||
else if (MEM_P (mem)
|
||||
&& !(INSN_CODE (curr_insn) < 0
|
||||
&& ((cn == CONSTRAINT__UNKNOWN && *constraint != 'g')
|
||||
|| (get_constraint_type (cn) == CT_FIXED_FORM
|
||||
&& constraint_satisfied_p (op, cn)))))
|
||||
&& get_constraint_type (cn) == CT_FIXED_FORM
|
||||
&& constraint_satisfied_p (op, cn)))
|
||||
decompose_mem_address (&ad, mem);
|
||||
else if (GET_CODE (op) == SUBREG
|
||||
&& MEM_P (SUBREG_REG (op)))
|
||||
|
Loading…
Reference in New Issue
Block a user