aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched.c
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2010-08-19 14:03:39 +0400
committerAndrey Belevantsev <abel@gcc.gnu.org>2010-08-19 14:03:39 +0400
commit5e841c82c9daaacac3e73a20c2a32c75c2d1603d (patch)
tree0c5119003967ec2c376ca440652e2f63b362c091 /gcc/sel-sched.c
parent8ebbe10ff24935a773d06116217b000715bb4d49 (diff)
downloadgcc-5e841c82c9daaacac3e73a20c2a32c75c2d1603d.zip
gcc-5e841c82c9daaacac3e73a20c2a32c75c2d1603d.tar.gz
gcc-5e841c82c9daaacac3e73a20c2a32c75c2d1603d.tar.bz2
re PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in rhs_regno, at rtl.h:1050)
PR rtl-optimization/44691 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG is not a register. From-SVN: r163369
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r--gcc/sel-sched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 3a86e22..534c55c 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -835,7 +835,8 @@ count_occurrences_1 (rtx *cur_rtx, void *arg)
if (GET_CODE (*cur_rtx) == SUBREG
&& REG_P (p->x)
- && REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x))
+ && (!REG_P (SUBREG_REG (*cur_rtx))
+ || REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p->x)))
{
/* ??? Do not support substituting regs inside subregs. In that case,
simplify_subreg will be called by validate_replace_rtx, and