aboutsummaryrefslogtreecommitdiff
path: root/gcc/resource.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/resource.c')
-rw-r--r--gcc/resource.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/gcc/resource.c b/gcc/resource.c
index d26217c..32faa73 100644
--- a/gcc/resource.c
+++ b/gcc/resource.c
@@ -1282,7 +1282,26 @@ clear_hashed_info_for_insn (rtx_insn *insn)
tinfo->block = -1;
}
}
-
+
+/* Clear any hashed information that we have stored for instructions
+ between INSN and the next BARRIER that follow a JUMP or a LABEL. */
+
+void
+clear_hashed_info_until_next_barrier (rtx_insn *insn)
+{
+ while (insn && !BARRIER_P (insn))
+ {
+ if (JUMP_P (insn) || LABEL_P (insn))
+ {
+ rtx_insn *next = next_active_insn (insn);
+ if (next)
+ clear_hashed_info_for_insn (next);
+ }
+
+ insn = next_nonnote_insn (insn);
+ }
+}
+
/* Increment the tick count for the basic block that contains INSN. */
void