https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98289

--- Comment #7 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> ---
Created attachment 58719
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58719&action=edit
patch to fix internal compiler errors in shrink-wrap.cc on EDGE_CROSSING edges

I'm currently using this patch.
The only issue that remains for gcc.dg/torture/pr98289.c is that before
prologue/epilogue threading, there are four separate crossing jumps to labels
at the same location as lab.  Without shrink wrapping, this gets cleaned up by
try_forward_edges (called from try_optimize_cfg, called from cleanup_cfg,
called from
pass_jump2::execute) .  With shrink wrapping, the clean up doesn't happen or
has no
effect, so the clutter of all these crossing jumps in the non-cold partition
defeat the
purpose of the hot-cold partitioning.

Reply via email to