diff options
author | Alexander Monakov <amonakov@gcc.gnu.org> | 2011-10-19 16:46:44 +0400 |
---|---|---|
committer | Alexander Monakov <amonakov@gcc.gnu.org> | 2011-10-19 16:46:44 +0400 |
commit | 854b5fd7b52ae803fd48eb942095a75fa6f910a8 (patch) | |
tree | 431a3f95c56d18fcbb0c246f32e76182005871da /gcc/sel-sched-ir.c | |
parent | 9b6ab3c0591fd583915861cfd1d27183873221e8 (diff) | |
download | gcc-854b5fd7b52ae803fd48eb942095a75fa6f910a8.zip gcc-854b5fd7b52ae803fd48eb942095a75fa6f910a8.tar.gz gcc-854b5fd7b52ae803fd48eb942095a75fa6f910a8.tar.bz2 |
re PR rtl-optimization/50340 (Fails to build SPEC 2000 176.gcc)
2011-10-19 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/50340
* sel-sched-ir.c (update_target_availability): LHS register
availability is not known if the unavailable LHS of the other
expression is a different register.
* gcc.dg/pr50340.c: New.
From-SVN: r180186
Diffstat (limited to 'gcc/sel-sched-ir.c')
-rw-r--r-- | gcc/sel-sched-ir.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 4878460..dacee0b 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -1745,6 +1745,11 @@ update_target_availability (expr_t to, expr_t from, insn_t split_point) else EXPR_TARGET_AVAILABLE (to) = -1; } + else if (EXPR_TARGET_AVAILABLE (from) == 0 + && EXPR_LHS (from) + && REG_P (EXPR_LHS (from)) + && REGNO (EXPR_LHS (to)) != REGNO (EXPR_LHS (from))) + EXPR_TARGET_AVAILABLE (to) = -1; else EXPR_TARGET_AVAILABLE (to) &= EXPR_TARGET_AVAILABLE (from); } |