diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ddg.c | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b86f2b..106872f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2012-06-21 Alexandre Oliva <aoliva@redhat.com> + * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug. + +2012-06-21 Alexandre Oliva <aoliva@redhat.com> + PR debug/53682 * cselib.c (promote_debug_loc): Don't crash on NULL argument. @@ -531,7 +531,15 @@ build_intra_loop_deps (ddg_ptr g) FOR_EACH_DEP (dest_node->insn, SD_LIST_BACK, sd_it, dep) { - ddg_node_ptr src_node = get_node_of_insn (g, DEP_PRO (dep)); + rtx src_insn = DEP_PRO (dep); + ddg_node_ptr src_node; + + /* Don't add dependencies on debug insns to non-debug insns + to avoid codegen differences between -g and -g0. */ + if (DEBUG_INSN_P (src_insn) && !DEBUG_INSN_P (dest_node->insn)) + continue; + + src_node = get_node_of_insn (g, src_insn); if (!src_node) continue; |