From 61961eff56844e37bf13a73b489292902a13ffdd Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Wed, 23 Feb 2005 18:20:52 +0000 Subject: [PATCH] re PR target/20018 ([ia64] unable to find a register to spill in class`PR_REG') PR target/20018 PR rtl-optimization/20097 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating BImode SUBREGs of SImode registers which confuse the ia64 backend. From-SVN: r95461 --- gcc/ChangeLog | 7 +++++++ gcc/simplify-rtx.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c5af015387..675583654ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-02-23 Roger Sayle + + PR target/20018 + PR rtl-optimization/20097 + * simplify-rtx.c (simplify_relational_operation_1): Avoid creating + BImode SUBREGs of SImode registers which confuse the ia64 backend. + 2005-02-23 David Edelsohn * t-aix43 (SHLIB_INSTALL): Create directory for shared library. diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index b7132ed2fb7..a2cd612f92d 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2887,6 +2887,8 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode, && op1 == const0_rtx && GET_MODE_CLASS (mode) == MODE_INT && cmp_mode != VOIDmode + /* ??? Work-around BImode bugs in the ia64 backend. */ + && mode != BImode && cmp_mode != BImode && nonzero_bits (op0, cmp_mode) == 1 && STORE_FLAG_VALUE == 1) -- 2.30.2