* rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Sep 2012 20:17:34 +0000 (20:17 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Sep 2012 20:17:34 +0000 (20:17 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191586 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/rtlanal.c

index e6fd4da..835d17b 100644 (file)
@@ -1,3 +1,7 @@
+2012-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
+
 2012-09-20  Marek Polacek  <polacek@redhat.com>
 
        * tree-ssa-operands.c (get_expr_operands): Merge identical cases.
index 89ca226..fb7d45c 100644 (file)
@@ -1701,8 +1701,9 @@ dead_or_set_regno_p (const_rtx insn, unsigned int test_regno)
 
   pattern = PATTERN (insn);
 
+  /* If a COND_EXEC is not executed, the value survives.  */
   if (GET_CODE (pattern) == COND_EXEC)
-    pattern = COND_EXEC_CODE (pattern);
+    return 0;
 
   if (GET_CODE (pattern) == SET)
     return covers_regno_p (SET_DEST (pattern), test_regno);