summaryrefslogtreecommitdiff
path: root/gcc/sched-deps.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-27 01:07:52 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-27 01:07:52 +0000
commita35ad173284e5bf81ab2b96cfac54de9c6112eed (patch)
treee2337b29df7ee8cd75e9e85c7c8e9c9f604f9f70 /gcc/sched-deps.c
parente6976944d838d65cc73b222c2d2e341561b6c10d (diff)
downloadgcc-a35ad173284e5bf81ab2b96cfac54de9c6112eed.tar.gz
* sched-deps.c (sched_analyze_insn): Make clobber insns depend
on call insns. * gcc.c-torture/compile/20020926-1.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57566 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r--gcc/sched-deps.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 32260a89f50..cf762cccb58 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -922,7 +922,15 @@ sched_analyze_insn (deps, x, insn, loop_notes)
code = GET_CODE (x);
}
if (code == SET || code == CLOBBER)
- sched_analyze_1 (deps, x, insn);
+ {
+ sched_analyze_1 (deps, x, insn);
+
+ /* Bare clobber insns are used for letting life analysis, reg-stack
+ and others know that a value is dead. Depend on the last call
+ instruction so that reg-stack won't get confused. */
+ if (code == CLOBBER)
+ add_dependence_list (insn, deps->last_function_call, REG_DEP_OUTPUT);
+ }
else if (code == PARALLEL)
{
int i;