summaryrefslogtreecommitdiff
path: root/gcc/loop-iv.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-20 06:56:26 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-20 06:56:26 +0000
commit605dec4e8cdc1c51af442595b52ca4fb2151939d (patch)
tree0586f0d4e8a33a16d92e40e1e9ca7e7d5b3a3c3b /gcc/loop-iv.c
parentcc142ae50416cb403a61ba5cde1c8db7606ab0f0 (diff)
downloadgcc-605dec4e8cdc1c51af442595b52ca4fb2151939d.tar.gz
PR rtl-optimization/32405
* 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
Diffstat (limited to 'gcc/loop-iv.c')
-rw-r--r--gcc/loop-iv.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index 5016aaf46ef..f87f968022a 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);