LLVM/project 2cfd8fdllvm/include/llvm/CodeGen MIRYamlMapping.h, llvm/lib/CodeGen/MIRParser MIRParser.cpp

Merge branch 'users/mssefat/anti-hints-pr3-amdgpu-apply' into users/mssefat/anti-hints-pr4-amdgpu-pre-ra
DeltaFile
+3-3llvm/include/llvm/CodeGen/MIRYamlMapping.h
+3-2llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+1-1llvm/test/CodeGen/MIR/AMDGPU/register-allocation-antihints-mir-print-parse.mir
+7-63 files

LLVM/project 81673c8llvm/include/llvm/CodeGen MIRYamlMapping.h, llvm/lib/CodeGen/MIRParser MIRParser.cpp

Merge branch 'users/mssefat/anti-hints-pr2-mir-serialize' into users/mssefat/anti-hints-pr3-amdgpu-apply
DeltaFile
+3-3llvm/include/llvm/CodeGen/MIRYamlMapping.h
+3-2llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+1-1llvm/test/CodeGen/MIR/AMDGPU/register-allocation-antihints-mir-print-parse.mir
+7-63 files

LLVM/project 99d15adllvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.cluster.load.async.to.lds.ll llvm.amdgcn.cluster.load.ll

[AMDGPU] Downgrade cluster loads in strict mode
DeltaFile
+703-168llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.ll
+527-71llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.async.to.lds.ll
+27-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1,257-2393 files

LLVM/project bc9a3b8llvm/lib/Support FoldingSet.cpp, llvm/test/Analysis/CostModel/AArch64 sve-fround.ll fround.ll

Merge branch 'main' into users/chinmaydd/refactor-wave-eu-queries
DeltaFile
+367-0llvm/test/Analysis/CostModel/AArch64/fround.ll
+316-0llvm/test/Analysis/CostModel/AArch64/sve-fround.ll
+92-181llvm/lib/Support/FoldingSet.cpp
+236-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/store.ll
+220-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/sextload.mir
+208-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/zextload.mir
+1,439-181115 files not shown
+4,613-433121 files

LLVM/project bbedf74llvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine ucmp.ll scmp.ll

[InstCombine] Fold scmp/ucmp of extended operands (#218871)

Fixes #202467

`scmp`/`ucmp` compare their operands, and both `sext` and `zext` are
monotonic with respect to the unsigned order (`sext` additionally
preserves the signed order). So a common extension on both operands can
be dropped and the compare done in the narrower type:

scmp (sext X), (sext Y) --> scmp X, Y
scmp (zext X), (zext Y) --> ucmp X, Y
ucmp (ext X),  (ext Y)  --> ucmp X, Y

Zero-extended values are non-negative, which is why a signed compare of
them becomes an unsigned compare of the narrow operands.

Both operands must use the same extend opcode and source type. Since
these intrinsics are not commutative, the extend is looked for on either
side, and a constant operand is narrowed instead when truncating and

    [4 lines not shown]
DeltaFile
+178-0llvm/test/Transforms/InstCombine/scmp.ll
+149-0llvm/test/Transforms/InstCombine/ucmp.ll
+62-1llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+389-13 files

LLVM/project 7bd8ed7llvm/lib/Target/AMDGPU AMDGPUPrivateObjectVGPRs.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-private-object-vgprs.mir

Propagate object liveness to every changed successor, not only back edges
DeltaFile
+56-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-private-object-vgprs.mir
+14-4llvm/lib/Target/AMDGPU/AMDGPUPrivateObjectVGPRs.cpp
+70-42 files

LLVM/project 98fd900llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-budget.ll

Diagnose an object that does not fit the function's register budget
DeltaFile
+82-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-budget.ll
+36-13llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+118-132 files

LLVM/project 4f7cb45llvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-divergent.ll

Treat a sub-dword VGPR-memory load as divergent too
DeltaFile
+83-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-divergent.ll
+3-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+86-12 files

LLVM/project 13fdd84llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-allocate.ll as-vgpr-across-call.ll

Do not add a second lifetime start when allocating VGPRs again
DeltaFile
+21-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-across-call.ll
+17-3llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+0-1llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-allocate.ll
+38-43 files

LLVM/project 9130a1ellvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp AMDGPUPrivateObjectVGPRs.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-across-call.ll as-vgpr-private-object-vgprs.mir

Allocate and reserve registers for address space 13 objects
DeltaFile
+340-0llvm/lib/Target/AMDGPU/AMDGPUPrivateObjectVGPRs.cpp
+178-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-object-regalloc.ll
+140-12llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+133-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-allocate.ll
+106-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-private-object-vgprs.mir
+80-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-across-call.ll
+977-1218 files not shown
+1,280-2324 files

LLVM/project 464579bllvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-index-demanded-bits.ll

Regenerate the demanded-bits expectations for the gfx1250 entry sequence
DeltaFile
+16-8llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-index-demanded-bits.ll
+16-81 files

LLVM/project 629593cllvm/lib/Target/AMDGPU AMDGPUPrivateObjectVGPRs.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-asm-clobber.ll

Diagnose inline asm that clobbers a VGPR-memory object's registers
DeltaFile
+93-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-asm-clobber.ll
+31-5llvm/lib/Target/AMDGPU/AMDGPUPrivateObjectVGPRs.cpp
+124-52 files

LLVM/project 89f44dcllvm/lib/Target/AMDGPU SIInstructions.td SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-lower-idx-ops.mir

Inherit the M0 operand when expanding the sub-dword VGPR-memory pseudos
DeltaFile
+21-4llvm/lib/Target/AMDGPU/AMDGPULowerIdxOps.cpp
+12-11llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-lower-idx-ops.mir
+1-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+0-2llvm/lib/Target/AMDGPU/SIInstructions.td
+34-194 files

LLVM/project e0a433dllvm/lib/Target/AMDGPU AMDGPULowerIdxOps.cpp SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-lower-idx-ops.mir as-vgpr-verifier.mir

Check the encodings of the sub-dword VGPR-memory accesses
DeltaFile
+71-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-encoding.ll
+0-40llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-verifier-m0.mir
+32-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-verifier.mir
+8-18llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-8llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-lower-idx-ops.mir
+2-10llvm/lib/Target/AMDGPU/AMDGPULowerIdxOps.cpp
+121-761 files not shown
+125-797 files

LLVM/project 75365d9llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits-encoding.ll as-vgpr-bits.ll

Regenerate the sub-dword expectations for the M0 setup change
DeltaFile
+38-54llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-control-flow.ll
+30-49llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+1-1llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-encoding.ll
+69-1043 files

LLVM/project 89f1d78llvm/lib/Target/AMDGPU SIInstrInfo.cpp

Do not describe sub-dword VGPR-memory accesses by index and width
DeltaFile
+7-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+7-01 files

LLVM/project 577188dllvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-verifier.mir as-vgpr-lower-idx-ops.mir

Adopt subarch triples in the sub-dword tests and drop the redundant VALU
DeltaFile
+6-6llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+4-4llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-control-flow.ll
+2-2llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-encoding.ll
+0-2llvm/lib/Target/AMDGPU/SIInstructions.td
+1-1llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-verifier.mir
+1-1llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-lower-idx-ops.mir
+14-166 files

LLVM/project caea2afllvm/docs AMDGPUUsage.rst, llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp

Document the sub-dword access rules for the VGPR address space
DeltaFile
+14-12llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+7-0llvm/docs/AMDGPUUsage.rst
+21-122 files

LLVM/project 134f754llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits.ll as-vgpr-index-demanded-bits.ll

Fix tests
DeltaFile
+105-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-index-demanded-bits.ll
+10-5llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+115-52 files

LLVM/project 5a6629fllvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits-control-flow.ll

Test sub-dword VGPR-memory accesses across control flow
DeltaFile
+316-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits-control-flow.ll
+316-01 files

LLVM/project d2e862bllvm/lib/Target/AMDGPU SIInstructions.td

Simplify the sub-dword VGPR-memory pseudo definitions
DeltaFile
+25-32llvm/lib/Target/AMDGPU/SIInstructions.td
+25-321 files

LLVM/project 5236ffellvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-verifier-m0.mir

Verify operand invariants of the VGPR-memory indexed accesses
DeltaFile
+28-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+26-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-verifier-m0.mir
+54-02 files

LLVM/project 22d9023llvm/lib/Target/AMDGPU SIISelLowering.cpp AMDGPULowerIdxOps.cpp

NFC: track the downstream implementation more closely
DeltaFile
+21-14llvm/lib/Target/AMDGPU/AMDGPULowerIdxOps.cpp
+1-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+22-152 files

LLVM/project 060788fllvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-index-demanded-bits.ll

Test the bit-offset half of the VGPR-memory demanded-bits combine
DeltaFile
+79-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-index-demanded-bits.ll
+79-01 files

LLVM/project 40beb46llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-verifier-m0.mir

Cover the remaining VGPR-memory operand invariants
DeltaFile
+26-12llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-verifier-m0.mir
+26-121 files

LLVM/project 6c2fa85llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits.ll

Also build the sub-dword VGPR-memory tests for wave64
DeltaFile
+8-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+8-01 files

LLVM/project 49030a2llvm/lib/Target/AMDGPU AMDGPULowerIdxOps.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits.ll

Run AMDGPULowerIdxOps for optnone functions in AMDGPULowerIdxOps
DeltaFile
+110-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+3-2llvm/lib/Target/AMDGPU/AMDGPULowerIdxOps.cpp
+113-22 files

LLVM/project 4498473llvm/lib/Target/AMDGPU SIISelLowering.cpp AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-bits.ll as-vgpr-unsupported.ll

Correctly diagnose the mis-aligned sub-dowrd accesses instead of miscompiling them
DeltaFile
+55-41llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-unsupported.ll
+27-18llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+43-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+13-7llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+138-664 files

LLVM/project fbb8899llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-lower-idx-ops.mir

Add a MIR test for AMDGPULowerIdxOps
DeltaFile
+134-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-lower-idx-ops.mir
+134-01 files

LLVM/project c31ac9dllvm/lib/Target/AMDGPU SIInstructions.td SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR as-vgpr-unsupported.ll as-vgpr-bits.ll

Add support for sub-dword types for address space 13
DeltaFile
+449-0llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-bits.ll
+201-0llvm/lib/Target/AMDGPU/AMDGPULowerIdxOps.cpp
+139-22llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+134-14llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+82-0llvm/lib/Target/AMDGPU/SIInstructions.td
+40-27llvm/test/CodeGen/AMDGPU/AddressSpaceVGPR/as-vgpr-unsupported.ll
+1,045-6313 files not shown
+1,140-7019 files