From: Thomas Preud'homme Date: Thu, 4 Oct 2018 07:55:02 +0000 (+0000) Subject: Never reload fixed form constraints memory operand X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b4ee650946b829b12e06a439f00c8d67d3caeed6;p=gcc.git 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 gcc/ * lra-constraints.c (process_address_1): Bail out for all satisfied fixed constraints. From-SVN: r264834 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03bc5727c23..d8fafe03bce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-10-04 Thomas Preud'homme + + * lra-constraints.c (process_address_1): Bail out for all + satisfied fixed constraints. + 2018-10-03 Jeff Law * gimple-ssa-sprintf.c (format_string): Do not hardcode size of diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 774d1ff3aaa..c3edd9ef45d 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -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