diff options
author | Richard Henderson <rth@redhat.com> | 2002-09-26 18:07:52 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-09-26 18:07:52 -0700 |
commit | c2310f512421067634bb72e63932a926dedbf79e (patch) | |
tree | e2337b29df7ee8cd75e9e85c7c8e9c9f604f9f70 /gcc/sched-deps.c | |
parent | 7847d6279e48a97f570643a5161d4e7e4df8e24a (diff) | |
download | gcc-c2310f512421067634bb72e63932a926dedbf79e.zip gcc-c2310f512421067634bb72e63932a926dedbf79e.tar.gz gcc-c2310f512421067634bb72e63932a926dedbf79e.tar.bz2 |
sched-deps.c (sched_analyze_insn): Make clobber insns depend on call insns.
* sched-deps.c (sched_analyze_insn): Make clobber insns depend
on call insns.
* gcc.c-torture/compile/20020926-1.c: New.
From-SVN: r57566
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 32260a8..cf762cc 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; |