diff options
author | Richard Henderson <rth@redhat.com> | 2001-08-31 11:01:08 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-08-31 11:01:08 -0700 |
commit | fe3e667fb42a7ebf483437373ad4426884eaf6af (patch) | |
tree | 2231781fbe92300700ae77e5d1b6e3ff1329d630 /gcc/sched-deps.c | |
parent | 38066e838de65b304957b77eab5221041f8798d9 (diff) | |
download | gcc-fe3e667fb42a7ebf483437373ad4426884eaf6af.zip gcc-fe3e667fb42a7ebf483437373ad4426884eaf6af.tar.gz gcc-fe3e667fb42a7ebf483437373ad4426884eaf6af.tar.bz2 |
sched-deps.c (add_dependence): Don't elide dependancy if the conditional used by insn is modified in elem.
* sched-deps.c (add_dependence): Don't elide dependancy if the
conditional used by insn is modified in elem.
From-SVN: r45330
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 4a71d10..dbbb140 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -213,11 +213,16 @@ add_dependence (insn, elem, dep_type) /* flow.c doesn't handle conditional lifetimes entirely correctly; calls mess up the conditional lifetimes. */ + /* ??? add_dependence is the wrong place to be eliding dependencies, + as that forgets that the condition expressions themselves may + be dependent. */ if (GET_CODE (insn) != CALL_INSN && GET_CODE (elem) != CALL_INSN) { cond1 = get_condition (insn); cond2 = get_condition (elem); - if (cond1 && cond2 && conditions_mutex_p (cond1, cond2)) + if (cond1 && cond2 + && conditions_mutex_p (cond1, cond2) + && !modified_in_p (cond1, elem)) return; } |