re PR target/20018 ([ia64] unable to find a register to spill in class`PR_REG')
authorRoger Sayle <roger@eyesopen.com>
Wed, 23 Feb 2005 18:20:52 +0000 (18:20 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Wed, 23 Feb 2005 18:20:52 +0000 (18:20 +0000)
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
gcc/simplify-rtx.c

index 9c5af0153876bb7c196e7eb26a0ab24f6eed9359..675583654ce81b8339365daeb28d99faeddc44e8 100644 (file)
@@ -1,3 +1,10 @@
+2005-02-23  Roger Sayle  <roger@eyesopen.com>
+
+       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  <edelsohn@gnu.org>
 
        * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
index b7132ed2fb77307b52389d7500b7a908a67ab922..a2cd612f92d5456fcb4b8518b66d9e8a8ba401fd 100644 (file)
@@ -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)