I see an assemble failure for gcc.dg/tree-prof/bb-reorg.c; compare-and-branch
instructions are modified to jump to another section.

Some jumps simply can't be made cross-section; one for the ones that can, it
is essential that the REG_CROSSING_JUMP note is added.

I have this patch:

        * hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
        * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
        * target.h (can_follow_jump): New hook.
        * target-def.h (TARGET_CAN_FOLLOW_JUMP): Define.
        (TARGET_INITIALIZER): Include it.
        * reorg.c (follow_jumps): New parameters jump and cp.
        Changed all callers.
        * config/arc/arc.c (arc_can_follow_jump): New function.
        (TARGET_CAN_FOLLOW_JUMP): Override.
        * config/arc/arc.md (jump_i): If a REG_CROSSING_JUMP is present,
        length is 4.

Which I can post with a tm.texi patch once our Copyright assignment has been
acknowledged.


-- 
           Summary: delay branch scheduling follows REG_CROSSING_JUMP jumps
                    indiscriminately
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: assemble-failure
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38449

Reply via email to