diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2009-10-17 06:28:43 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2009-10-17 06:28:43 +0000 |
commit | f49b295a191729400b3cbb9bf9e8d1dffedde666 (patch) | |
tree | aba3b71df6de715f9777fb83f5018b7b4c61856c /gcc/ddg.c | |
parent | af16209f32e1920919942ae2989fa1b857dfe73c (diff) | |
download | gcc-f49b295a191729400b3cbb9bf9e8d1dffedde666.zip gcc-f49b295a191729400b3cbb9bf9e8d1dffedde666.tar.gz gcc-f49b295a191729400b3cbb9bf9e8d1dffedde666.tar.bz2 |
re PR debug/41535 (Broken var location info after scheduling)
PR debug/41535
* sched-deps.c (depl_on_debug_p): New.
(attach_dep_link): Reject debug deps before nondebug deps.
(add_to_deps_list): Insert debug deps after nondebug deps.
(sd_lists_empty_p): Stop at first nonempty list. Disregard debug
deps.
(sd_add_dep): Do not reject debug deps.
(add_insn_mem_dependence): Don't count debug deps.
(remove_from_deps): Likewise.
(sched_analyze_2): Set up mem deps on debug insns.
(sched_analyze_insn): Record reg uses for deps on debug insns.
* haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't
try_ready nondebug insn after debug insn.
* ddg.c (create_ddg_dep_from_intra_loop_link,
create_ddg_dep_no_link): Don't reject debug deps.
From-SVN: r152927
Diffstat (limited to 'gcc/ddg.c')
-rw-r--r-- | gcc/ddg.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -167,7 +167,7 @@ create_ddg_dep_from_intra_loop_link (ddg_ptr g, ddg_node_ptr src_node, t = OUTPUT_DEP; gcc_assert (!DEBUG_INSN_P (dest_node->insn) || t == ANTI_DEP); - gcc_assert (!DEBUG_INSN_P (src_node->insn) || DEBUG_INSN_P (dest_node->insn)); + gcc_assert (!DEBUG_INSN_P (src_node->insn) || t == ANTI_DEP); /* We currently choose not to create certain anti-deps edges and compensate for that by generating reg-moves based on the life-range @@ -213,7 +213,7 @@ create_ddg_dep_no_link (ddg_ptr g, ddg_node_ptr from, ddg_node_ptr to, struct _dep _dep, *dep = &_dep; gcc_assert (!DEBUG_INSN_P (to->insn) || d_t == ANTI_DEP); - gcc_assert (!DEBUG_INSN_P (from->insn) || DEBUG_INSN_P (to->insn)); + gcc_assert (!DEBUG_INSN_P (from->insn) || d_t == ANTI_DEP); if (d_t == ANTI_DEP) dep_kind = REG_DEP_ANTI; |