diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2010-08-19 14:03:39 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2010-08-19 14:03:39 +0400 |
commit | 5e841c82c9daaacac3e73a20c2a32c75c2d1603d (patch) | |
tree | 0c5119003967ec2c376ca440652e2f63b362c091 /gcc | |
parent | 8ebbe10ff24935a773d06116217b000715bb4d49 (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/sel-sched.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ff0e2c0..1b92353 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-19 Andrey Belevantsev <abel@ispras.ru> + + PR rtl-optimization/44691 + * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG + is not a register. + 2010-08-19 Ian Bolton <ian.bolton@arm.com> PR target/45070 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 |