diff options
Diffstat (limited to 'gcc/resource.c')
-rw-r--r-- | gcc/resource.c | 21 |
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 |