diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-26 05:59:53 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-26 05:59:53 +0000 |
commit | 995ca335fd344920ac95f3dcc5a95897a2dce0d4 (patch) | |
tree | db2e7a77585aea3a927eb65484b997f9e5ff7c62 | |
parent | abfe0c5bb31a554574788af56f10b91640ac30ff (diff) |
PR debug/45454
* sel-sched.c (moveup_expr): Don't let debug insns prevent
non-debug insns from moving up.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169275 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/sel-sched.c | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71ae9814260..9bd387c12b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-01-26 Alexandre Oliva <aoliva@redhat.com> + + PR debug/45454 + * sel-sched.c (moveup_expr): Don't let debug insns prevent + non-debug insns from moving up. + 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com> PR target/40125 diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index d40885c95cf..e26ddac8fab 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -2142,6 +2142,15 @@ moveup_expr (expr_t expr, insn_t through_insn, bool inside_insn_group, ds_t *has_dep_p; ds_t full_ds; + /* ??? We use dependencies of non-debug insns on debug insns to + indicate that the debug insns need to be reset if the non-debug + insn is pulled ahead of it. It's hard to figure out how to + introduce such a notion in sel-sched, but it already fails to + support debug insns in other ways, so we just go ahead and + let the deug insns go corrupt for now. */ + if (DEBUG_INSN_P (through_insn) && !DEBUG_INSN_P (insn)) + return MOVEUP_EXPR_SAME; + /* When inside_insn_group, delegate to the helper. */ if (inside_insn_group) return moveup_expr_inside_insn_group (expr, through_insn); |