]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/32405 (assertion failure in loop-iv.c; probable dataflow regre...
authorZdenek Dvorak <dvorakz@suse.cz>
Wed, 20 Jun 2007 06:56:26 +0000 (08:56 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Wed, 20 Jun 2007 06:56:26 +0000 (06:56 +0000)
PR rtl-optimization/32405
* loop-iv.c (iv_get_reaching_def): Fail for partial defs.

From-SVN: r125881

gcc/ChangeLog
gcc/loop-iv.c

index 3eaa1681a02c89dd7f8caade3d7b8a1003221168..279019627780c0fc654afa120275eacb81a0c55d 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 5016aaf46ef9e8a7bb16112c41768b96990b9d5d..f87f968022a6e354ba09fe32510ffcaa40450505 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);