aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2015-11-27 18:26:12 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2015-11-27 18:26:12 +0000
commit0b87be09b012920618fa78ac4cef269e02614924 (patch)
treebbdcf30112b4d67b3294abd65a3dd7d217763fd2 /gcc/lra-constraints.c
parent921da19854e9f9dba416dc68c57379231c6ca52b (diff)
downloadgcc-0b87be09b012920618fa78ac4cef269e02614924.zip
gcc-0b87be09b012920618fa78ac4cef269e02614924.tar.gz
gcc-0b87be09b012920618fa78ac4cef269e02614924.tar.bz2
re PR rtl-optimization/68536 (LRA ICEs with new arm pattern)
2015-11-27 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/68536 * lra.c (lra_emit_add): Add code for null base. * lra-constraints.c (curr_insn_transform): Skip operators for subreg reloads. From-SVN: r231021
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r--gcc/lra-constraints.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index f2d5b40..a78edd8 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -3383,10 +3383,13 @@ curr_insn_transform (bool check_only_p)
depend on memory mode. */
for (i = 0; i < n_operands; i++)
{
- rtx op = *curr_id->operand_loc[i];
- rtx subst, old = op;
+ rtx op, subst, old;
bool op_change_p = false;
+
+ if (curr_static_id->operand[i].is_operator)
+ continue;
+ old = op = *curr_id->operand_loc[i];
if (GET_CODE (old) == SUBREG)
old = SUBREG_REG (old);
subst = get_equiv_with_elimination (old, curr_insn);