[Bug target/54546] SH: Enable -fshrink-wrap
chrbr at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Sep 13 06:41:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54546
--- Comment #1 from chrbr at gcc dot gnu.org 2012-09-13 06:40:54 UTC ---
shrink-wrapping exposes a few problems related to partitioning.
1) Tries to duplicate a Basic block that has only one predecessor coming from a
different partition. Since the edge is not marking with with EDGE_CROSSING
missing across section boundary. Note that even with EDGE_CROSSING information,
the generated code would be quite bad, with extra jumps coming from the
critical path.
The problem is explained with the start of a resolution here
http://gcc.gnu.org/ml/gcc-patches/2012-09/msg00794.html
2) Seem to miss redirecting CROSS_JUMPING jumps. When we have
jump_insn 205 204 179 4 (set (pc)
(reg:SI 1 r1 [237])) 316 {indirect_jump_compact}
(expr_list:REG_CROSSING_JUMP (nil)
(nil))
we have a JUMP_LABEL (insn) containing the setting or r1 with the label_rtx,
but 'patch_jump_insn' fails to see it, although it looks like the branch could
be redirected.
More information about the Gcc-bugs
mailing list