aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-01-30 21:15:51 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-01-30 21:15:51 +0000
commit7613fa50759e4e559626f1ff5d8bc6871559bdda (patch)
tree4d5e3ff225e209246538e2860d5dce421d844e99 /gcc/lra-constraints.c
parent6fb82517e861af9f3e441d39c0ab93229c6ace3b (diff)
downloadgcc-7613fa50759e4e559626f1ff5d8bc6871559bdda.zip
gcc-7613fa50759e4e559626f1ff5d8bc6871559bdda.tar.gz
gcc-7613fa50759e4e559626f1ff5d8bc6871559bdda.tar.bz2
re PR rtl-optimization/59959 (LRA ICEs on a fortran case(Suspected to be similar to pr59915))
2014-01-30 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/59959 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to any reload of register whose subreg is invalid. From-SVN: r207323
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r--gcc/lra-constraints.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 34159f7..cb64ee1 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -1293,11 +1293,8 @@ simplify_operand_subreg (int nop, enum machine_mode reg_mode)
{
enum reg_class rclass;
- if (REG_P (reg)
- && curr_insn_set != NULL_RTX
- && (REG_P (SET_SRC (curr_insn_set))
- || GET_CODE (SET_SRC (curr_insn_set)) == SUBREG))
- /* There is big probability that we will get the same class
+ if (REG_P (reg))
+ /* There is a big probability that we will get the same class
for the new pseudo and we will get the same insn which
means infinite looping. So spill the new pseudo. */
rclass = NO_REGS;