diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-06-20 08:56:26 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-06-20 06:56:26 +0000 |
commit | 6848da6a81bb4889f8022d94a2c9365340136a86 (patch) | |
tree | 0586f0d4e8a33a16d92e40e1e9ca7e7d5b3a3c3b | |
parent | 6330585d9768e16b4cbc8edb9094abb8a327362d (diff) | |
download | gcc-6848da6a81bb4889f8022d94a2c9365340136a86.zip gcc-6848da6a81bb4889f8022d94a2c9365340136a86.tar.gz gcc-6848da6a81bb4889f8022d94a2c9365340136a86.tar.bz2 |
re PR rtl-optimization/32405 (assertion failure in loop-iv.c; probable dataflow regression)
PR rtl-optimization/32405
* loop-iv.c (iv_get_reaching_def): Fail for partial defs.
From-SVN: r125881
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/loop-iv.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3eaa168..2790196 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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). diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c index 5016aaf..f87f968 100644 --- a/gcc/loop-iv.c +++ b/gcc/loop-iv.c @@ -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); |