[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