Issue 109123
Summary Pointless jump to a jump
Labels
Assignees
Reporter Validark
    My (large) program generates control flow like so:

```asm
 ...
        je      .LBB6_18
        jmp     .LBB6_112
.LBB6_84: ; this cannot be reached via the previous instruction, therefore it could be moved.
        vpbroadcastb    ymm7, byte ptr [rip + .LCPI6_30]
 jmp     .LBB6_13
.LBB6_85:
        test    r11, r11
        cmove r10, rsi
        ...
```

```asm
        ...
        jmp .LBB6_14
.Ltmp384:
.LBB6_13: ; This is only reachable via the jump in .LBB6_84
        vbroadcasti128  ymm4, xmmword ptr [rip + .LCPI6_31]
 vbroadcasti128  ymm3, xmmword ptr [rip + .LCPI6_32]
        mov rsi, qword ptr [rsp + 152]
        add     r10, 64
        add     r11, 8
.LBB6_14:
        mov     rbx, rsi
        add     rsi, 8
 ...
```

It would be nice if there was a cleanup pass which merged all these weird cases
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to