OSDN Git Service

PR rtl-optimization/32405
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Jun 2007 06:56:26 +0000 (06:56 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Jun 2007 06:56:26 +0000 (06:56 +0000)
* loop-iv.c (iv_get_reaching_def): Fail for partial defs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125881 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop-iv.c

index 3eaa168..2790196 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR rtl-optimization/32405
+       * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
+
 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
 
        * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
index 5016aaf..f87f968 100644 (file)
@@ -347,6 +347,11 @@ iv_get_reaching_def (rtx insn, rtx reg, struct df_ref **def)
     return GRD_INVALID;
 
   adef = DF_REF_CHAIN (use)->ref;
+
+  /* We do not handle setting only part of the register.  */
+  if (adef->flags & DF_REF_READ_WRITE)
+    return GRD_INVALID;
+
   def_insn = DF_REF_INSN (adef);
   def_bb = DF_REF_BB (adef);
   use_bb = BLOCK_FOR_INSN (insn);