[llvm] [MacroFusion] Early return when insts already clustered (PR #191710)

via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 13 04:42:41 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 133387 tests passed
* 3083 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/macro-fusion-cluster-conflict.mir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -o /dev/null C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir -mtriple=aarch64 -mattr=+fuse-address    -run-pass machine-scheduler -debug-only=machine-scheduler 2>&1    | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -o /dev/null 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir' -mtriple=aarch64 -mattr=+fuse-address -run-pass machine-scheduler -debug-only=machine-scheduler
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir:24:11: error: CHECK: expected string not found in input
# |  ; CHECK: Fusion conflict: cannot fuse SU(0) and SU(2) - already clustered
# |           ^
# | <stdin>:21:42: note: scanning from here
# | Macro fuse: SU(0) - SU(1) / ADRP - LDRXui
# |                                          ^
# | <stdin>:23:1: note: possible intended match here
# | Fusion conflict: cannot fuse SU(0) and SU(2)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir:47:11: error: CHECK: expected string not found in input
# |  ; CHECK: Fusion conflict: cannot fuse SU(0) and SU(1) - already clustered
# |           ^
# | <stdin>:176:28: note: scanning from here
# | Cluster ld/st SU(1) - SU(2)
# |                            ^
# | <stdin>:179:1: note: possible intended match here
# | Fusion conflict: cannot fuse SU(0) and SU(1)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir:67:11: error: CHECK: expected string not found in input
# |  ; CHECK: Fusion conflict: cannot fuse SU(0) and SU(1) - already clustered
# |           ^
# | <stdin>:351:28: note: scanning from here
# | Cluster ld/st SU(1) - SU(2)
# |                            ^
# | <stdin>:354:1: note: possible intended match here
# | Fusion conflict: cannot fuse SU(0) and SU(1)
# | ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\macro-fusion-cluster-conflict.mir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            16:  RegionInstrs: 3 
# |            17: ScheduleDAGMILive::schedule starting 
# |            18: GenericScheduler RegionPolicy: ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=0 
# |            19: Num BaseOps: 1, Offset: 40, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |            20: Num BaseOps: 1, Offset: 80, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |            21: Macro fuse: SU(0) - SU(1) / ADRP - LDRXui 
# | check:24'0                                              X error: no match found
# |            22:  Bind SU(1) - SU(2) 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~
# |            23: Fusion conflict: cannot fuse SU(0) and SU(2) 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:24'1     ?                                             possible intended match
# |            24:  SU(0) already clustered 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25: Disabled scoreboard hazard recognizer 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26: Disabled scoreboard hazard recognizer 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            27: SU(0): $x0 = ADRP 0 
# | check:24'0     ~~~~~~~~~~~~~~~~~~~~
# |            28:  # preds left : 0 
# | check:24'0     ~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           171:  RegionInstrs: 3 
# |           172: ScheduleDAGMILive::schedule starting 
# |           173: GenericScheduler RegionPolicy: ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=0 
# |           174: Num BaseOps: 1, Offset: 0, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |           175: Num BaseOps: 1, Offset: 8, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |           176: Cluster ld/st SU(1) - SU(2) 
# | check:47'0                                X error: no match found
# |           177:  Copy Pred SU(0) 
# | check:47'0     ~~~~~~~~~~~~~~~~~
# |           178:  Curr cluster length: 2, Curr cluster bytes: 16 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           179: Fusion conflict: cannot fuse SU(0) and SU(1) 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:47'1     ?                                             possible intended match
# |           180:  SU(1) already clustered 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           181: Fusion conflict: cannot fuse SU(0) and SU(2) 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           182:  SU(2) already clustered 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           183: Disabled scoreboard hazard recognizer 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           184: Disabled scoreboard hazard recognizer 
# | check:47'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           346:  RegionInstrs: 3 
# |           347: ScheduleDAGMILive::schedule starting 
# |           348: GenericScheduler RegionPolicy: ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=0 
# |           349: Num BaseOps: 1, Offset: 0, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |           350: Num BaseOps: 1, Offset: 8, OffsetIsScalable: 0, Width: LocationSize::precise(8) 
# |           351: Cluster ld/st SU(1) - SU(2) 
# | check:67'0                                X error: no match found
# |           352:  Copy Succ SU(4294967295) 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           353:  Curr cluster length: 2, Curr cluster bytes: 16 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           354: Fusion conflict: cannot fuse SU(0) and SU(1) 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:67'1     ?                                             possible intended match
# |           355:  SU(1) already clustered 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           356: Fusion conflict: cannot fuse SU(0) and SU(2) 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           357:  SU(2) already clustered 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           358: Disabled scoreboard hazard recognizer 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           359: Disabled scoreboard hazard recognizer 
# | check:67'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/191710


More information about the llvm-commits mailing list