Commit 9427422d by Jeff Law Committed by Jeff Law

re PR rtl-optimization/81025 (gcc ICE while building glibc for MIPS soft-float multi-lib variant)

        PR rtl-optimization/81025
        * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.

From-SVN: r270129
parent c13e9788
2019-04-03 Jeff Law <law@redhat.com>
PR rtl-optimization/81025
* reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
2019-04-03 Richard Biener <rguenther@suse.de> 2019-04-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/84101 PR tree-optimization/84101
......
...@@ -137,7 +137,20 @@ skip_consecutive_labels (rtx label_or_return) ...@@ -137,7 +137,20 @@ skip_consecutive_labels (rtx label_or_return)
rtx_insn *label = as_a <rtx_insn *> (label_or_return); rtx_insn *label = as_a <rtx_insn *> (label_or_return);
for (insn = label; insn != 0 && !INSN_P (insn); insn = NEXT_INSN (insn)) /* __builtin_unreachable can create a CODE_LABEL followed by a BARRIER.
Since reaching the CODE_LABEL is undefined behavior, we can return
any code label and we're OK at runtime.
However, if we return a CODE_LABEL which leads to a shrinked wrapped
epilogue, but the path does not have a prologue, then we will trip
a sanity check in the dwarf2 cfi code which wants to verify that
the CFIs are all the same on the traces leading to the epilogue.
So we explicitly disallow looking through BARRIERS here. */
for (insn = label;
insn != 0 && !INSN_P (insn) && !BARRIER_P (insn);
insn = NEXT_INSN (insn))
if (LABEL_P (insn)) if (LABEL_P (insn))
label = insn; label = insn;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment