diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-31 18:01:08 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-31 18:01:08 +0000 |
commit | 2647d4bde42382ca3f3505d0480fc6b199ac7215 (patch) | |
tree | 2231781fbe92300700ae77e5d1b6e3ff1329d630 /gcc | |
parent | ed6762c8d835d1044f766b6db24d2f211a8a5a2c (diff) | |
download | gcc-2647d4bde42382ca3f3505d0480fc6b199ac7215.tar.gz |
* sched-deps.c (add_dependence): Don't elide dependancy if the
conditional used by insn is modified in elem.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45330 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/sched-deps.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d32c720889..b176a4d4374 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-08-31 Richard Henderson <rth@redhat.com> + + * sched-deps.c (add_dependence): Don't elide dependancy if the + conditional used by insn is modified in elem. + 2001-08-31 Nick Clifton <nickc@cambridge.redhat.com> * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define. diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 4a71d104c6c..dbbb140671b 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; } |