aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-10-29 19:37:25 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2012-10-29 19:37:25 +0000
commit36290bb4d5ca29006aaa97d5c1778594dec4ae22 (patch)
tree61c42a2207ad84c2050e304acaab60dea05d4f7d
parent61dc0ea735b12329bcb88eeb1e11255f86b295f7 (diff)
downloadgcc-36290bb4d5ca29006aaa97d5c1778594dec4ae22.zip
gcc-36290bb4d5ca29006aaa97d5c1778594dec4ae22.tar.gz
gcc-36290bb4d5ca29006aaa97d5c1778594dec4ae22.tar.bz2
re PR debug/54693 (VTA guality issues with loops)
PR debug/54693 * gcc/valtrack.c (dead_debug_insert_temp): Defer rescan of newly-emitted debug insn. From-SVN: r192962
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/valtrack.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 491128e..0b2a3be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,12 @@
2012-10-29 Alexandre Oliva <aoliva@redhat.com>
PR debug/54693
+ * gcc/valtrack.c (dead_debug_insert_temp): Defer rescan of
+ newly-emitted debug insn.
+
+2012-10-29 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/54693
* tree-ssa-threadedge.c (thread_around_empty_block): Copy
debug temps from predecessor before threading.
diff --git a/gcc/valtrack.c b/gcc/valtrack.c
index f6c0db4..8cc3269 100644
--- a/gcc/valtrack.c
+++ b/gcc/valtrack.c
@@ -688,7 +688,9 @@ dead_debug_insert_temp (struct dead_debug_local *debug, unsigned int uregno,
bind = emit_debug_insn_after (bind, insn);
else
bind = emit_debug_insn_before (bind, insn);
- df_insn_rescan (bind);
+ if (debug->to_rescan == NULL)
+ debug->to_rescan = BITMAP_ALLOC (NULL);
+ bitmap_set_bit (debug->to_rescan, INSN_UID (bind));
/* Adjust all uses. */
while ((cur = uses))
@@ -699,8 +701,6 @@ dead_debug_insert_temp (struct dead_debug_local *debug, unsigned int uregno,
*DF_REF_REAL_LOC (cur->use)
= gen_lowpart_SUBREG (GET_MODE (*DF_REF_REAL_LOC (cur->use)), dval);
/* ??? Should we simplify subreg of subreg? */
- if (debug->to_rescan == NULL)
- debug->to_rescan = BITMAP_ALLOC (NULL);
bitmap_set_bit (debug->to_rescan, INSN_UID (DF_REF_INSN (cur->use)));
uses = cur->next;
XDELETE (cur);