Never reload fixed form constraints memory operand
authorThomas Preud'homme <thomas.preudhomme@linaro.org>
Thu, 4 Oct 2018 07:55:02 +0000 (07:55 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Thu, 4 Oct 2018 07:55:02 +0000 (07:55 +0000)
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

gcc/ChangeLog
gcc/lra-constraints.c

index 03bc5727c23decaa4b96d144820912bc3b026941..d8fafe03bcebba3c750469060750095f5a77f1a3 100644 (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
index 774d1ff3aaa722d088bdde09ad78095704e98f8f..c3edd9ef45d5d4b00a9ee3ec9d9145236e7cf3cf 100644 (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