diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-08 03:42:46 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-08 03:42:46 +0000 |
commit | daa7b22b179b2f2742a5cbc0f49c434f4ad3b0bb (patch) | |
tree | e58b44075fef687cbfd1781d5a651e02ae19726d /gcc/sched-deps.c | |
parent | 77f1f7c1b1201df83ce1e5021f566beb8efdf374 (diff) | |
download | gcc-daa7b22b179b2f2742a5cbc0f49c434f4ad3b0bb.tar.gz |
* sched-deps.c (sched_analyze_insn): Make sure to add insn
to reg_last->sets after flushing the dependency lists to guarantee
that subsequent clobbers will be dependent on it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56929 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index a5e9c08b5bf..32260a89f50 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1117,8 +1117,6 @@ sched_analyze_insn (deps, x, insn, loop_notes) EXECUTE_IF_SET_IN_REG_SET (reg_pending_clobbers, 0, i, { struct deps_reg *reg_last = &deps->reg_last[i]; - add_dependence_list (insn, reg_last->sets, REG_DEP_OUTPUT); - add_dependence_list (insn, reg_last->uses, REG_DEP_ANTI); if (reg_last->uses_length > MAX_PENDING_LIST_LENGTH || reg_last->clobbers_length > MAX_PENDING_LIST_LENGTH) { @@ -1128,6 +1126,7 @@ sched_analyze_insn (deps, x, insn, loop_notes) REG_DEP_ANTI); add_dependence_list_and_free (insn, ®_last->clobbers, REG_DEP_OUTPUT); + reg_last->sets = alloc_INSN_LIST (insn, reg_last->sets); reg_last->clobbers_length = 0; reg_last->uses_length = 0; } |