Never reload fixed form constraints memory operand

The unconditional reload of address operand for recognized instruction
in process_address_1 prevent the patch fixing PR85434 from working as
expected. The code in that patch attempts to control which registers are
used to make PIC access but the reload performed by process_address_1
will use generic PIC access. This patch removes the test for the
instruction to be unrecognized to do the reload, thus always avoiding to
reload address operand for fixed constraints (such as "X" used in the
patch).

2018-10-04  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    gcc/
    * lra-constraints.c (process_address_1): Bail out for all
    satisfied fixed constraints.

From-SVN: r264834
This commit is contained in:
Thomas Preud'homme 2018-10-04 07:55:02 +00:00 committed by Thomas Preud'homme
parent 0863decda9
commit b4ee650946
2 changed files with 6 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2018-10-04 Thomas Preud'homme <thomas.preudhomme@linaro.org>
* lra-constraints.c (process_address_1): Bail out for all
satisfied fixed constraints.
2018-10-03 Jeff Law <law@redhat.com>
* gimple-ssa-sprintf.c (format_string): Do not hardcode size of

View file

@ -3243,8 +3243,7 @@ process_address_1 (int nop, bool check_only_p,
/* Do not attempt to decompose arbitrary addresses generated by combine
for asm operands with loose constraints, e.g 'X'. */
else if (MEM_P (op)
&& !(INSN_CODE (curr_insn) < 0
&& get_constraint_type (cn) == CT_FIXED_FORM
&& !(get_constraint_type (cn) == CT_FIXED_FORM
&& constraint_satisfied_p (op, cn)))
decompose_mem_address (&ad, op);
else if (GET_CODE (op) == SUBREG