LLVM/project e31aed1 — mlir/include/mlir/Dialect/Tosa/IR TosaOps.td, mlir/test/Dialect/Tosa ops.mlir

[mlir][tosa] Allow i64 accumulators (#228427)

This can be helpful for incremental lowerings to/from TOSA.
DeltaFile
+9-0mlir/test/Dialect/Tosa/ops.mlir
+1-1mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
+10-12 files

LLVM/project a4075b3 — clang/include/clang/CodeGenUtils FunctionUtils.h CodeGenUtils.h, clang/lib/CodeGenUtils ModuleUtils.cpp ClassUtils.cpp

[CIR][CodeGen][NFC] Retire the CodeGenUtils.h catch-all header

Moves the last helpers out of `CodeGenUtils.h` into `ClassUtils.h`,
`ModuleUtils.h`, `TargetUtils.h` and `FunctionUtils.h` (`checkTargetFeatures`,
since it came from CodeGenFunction.cpp) and deletes the header. Only moves code
already on main, so it can be dropped on its own.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+0-254clang/lib/CodeGenUtils/CodeGenUtils.cpp
+120-0clang/lib/CodeGenUtils/FunctionUtils.cpp
+78-0clang/lib/CodeGenUtils/ClassUtils.cpp
+0-73clang/include/clang/CodeGenUtils/CodeGenUtils.h
+37-0clang/lib/CodeGenUtils/ModuleUtils.cpp
+24-2clang/include/clang/CodeGenUtils/FunctionUtils.h
+259-32916 files not shown
+307-34122 files

LLVM/project ace8fe6 — llvm/test/CodeGen/AMDGPU legalize-amdgcn.raw.ptr.buffer.store.ll legalize-amdgcn.raw.buffer.load.ll, llvm/test/CodeGen/AMDGPU/GlobalISel inst-select-load-flat.mir inst-select-load-global.mir

AMDGPU: Stop setting kill flags before FinalizeISel

Work on removing all pre-RA flag management. Kill flags should eventually be
removed. Pre-regalloc passes no longer depend on them, LiveIntervals strips them
and VirtRegRewriter re-introduces them.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+108-108llvm/test/CodeGen/AMDGPU/legalize-amdgcn.raw.ptr.buffer.load.ll
+81-81llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-global.mir
+81-81llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-global-old-legalization.mir
+76-76llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-load-flat.mir
+70-70llvm/test/CodeGen/AMDGPU/legalize-amdgcn.raw.buffer.load.ll
+66-66llvm/test/CodeGen/AMDGPU/legalize-amdgcn.raw.ptr.buffer.store.ll
+482-482114 files not shown
+1,577-1,580120 files

LLVM/project bd5bb9c — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen TargetInfo.h TargetInfo.cpp

[CIR][CodeGen][NFC] Share requiresAMDGPUProtectedVisibility

Deduplicates `requiresAMDGPUProtectedVisibility` between CIR and classic CodeGen
into `TargetUtils.h`. The shared version takes a bool for "currently hidden" in
place of the `llvm::GlobalValue` and `cir::VisibilityKind` the two callers
passed.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-15clang/lib/CodeGen/Targets/AMDGPU.cpp
+0-14clang/lib/CIR/CodeGen/Targets/AMDGPU.cpp
+14-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-2clang/lib/CIR/CodeGen/TargetInfo.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+0-4clang/lib/CIR/CodeGen/TargetInfo.h
+29-356 files

LLVM/project c272441 — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen/Targets AArch64.cpp

[CIR][CodeGen][NFC] Share the Arm SME inlinability check

Deduplicates `ArmSMEInlinability` and `getArmSMEInlinability` between CIR and
classic CodeGen into a new `TargetUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+18-60clang/lib/CodeGen/Targets/AArch64.cpp
+3-52clang/lib/CIR/CodeGen/Targets/AArch64.cpp
+51-0clang/include/clang/CodeGenUtils/TargetUtils.h
+50-0clang/lib/CodeGenUtils/TargetUtils.cpp
+1-0clang/lib/CodeGenUtils/CMakeLists.txt
+123-1125 files

LLVM/project 2257519 — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp

[CIR][CodeGen][NFC] Share hasExtraNeonArgument

Deduplicates `hasExtraNeonArgument` between CIR and classic CodeGen into
`TargetUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+2-38clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+3-34clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+25-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+36-724 files

LLVM/project 0b4ba85 — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen TargetInfo.h TargetInfo.cpp

[CIR][CodeGen][NFC] Share isEmptyFieldForLayout and isEmptyRecordForLayout

Deduplicates `isEmptyFieldForLayout` and `isEmptyRecordForLayout` between CIR
and classic CodeGen into a new `RecordLayoutUtils.h`. `ABIInfoImpl.h` and CIR's
`TargetInfo.h` re-export them with using-declarations, so the ~30 unqualified
callers are untouched.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+45-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+0-34clang/lib/CIR/CodeGen/TargetInfo.cpp
+34-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+0-33clang/lib/CodeGen/ABIInfoImpl.cpp
+3-9clang/lib/CodeGen/ABIInfoImpl.h
+3-9clang/lib/CIR/CodeGen/TargetInfo.h
+85-851 files not shown
+86-857 files

LLVM/project f2876d8 — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp

[CIR][CodeGen][NFC] Share hasOwnStorage

Deduplicates `hasOwnStorage` between CIR and classic CodeGen into
`RecordLayoutUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+4-17clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+1-16clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+12-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+5-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+22-334 files

LLVM/project 55f488e — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp

[CIR][CodeGen][NFC] Share the bit-field and vbase layout ABI predicates

Deduplicates `isDiscreteBitFieldABI` and `isOverlappingVBaseABI` between CIR and
classic CodeGen into `RecordLayoutUtils.h`, as free functions taking the
`ASTContext`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+7-24clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+4-19clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+12-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+9-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+32-434 files

LLVM/project 3eba2b1 — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen] Share isStandardLibraryRTTIDescriptor

Deduplicates `isStandardLibraryRTTIDescriptor` between CIR and classic CodeGen
into `ItaniumCXXABIUtils.h`, taking the classic implementation. The two copies
have been equivalent since #227781 filled in the builtin types CIR was missing.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-155clang/lib/CodeGen/ItaniumCXXABI.cpp
+1-154clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+148-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+4-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+156-3094 files

LLVM/project 1d52392 — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share canUseSingleInheritance

Deduplicates `canUseSingleInheritance` between CIR and classic CodeGen into
`ItaniumCXXABIUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+2-30clang/lib/CodeGen/ItaniumCXXABI.cpp
+2-28clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+22-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+5-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+31-584 files

LLVM/project f7885f9 — clang/include/clang/CodeGenUtils EHPersonality.h, clang/lib/CIR/CodeGen CIRGenException.cpp

[CIR][CodeGen] Share the EH personality selection logic

Deduplicates the EH personality selection (`getEHPersonality`,
`getCXXEHPersonality`) between CIR and classic CodeGen, taking the classic
implementation. CIR's copy lacked the z/OS, Wasm and GNUstep-on-CygMing cases;
none are reachable in CIR today, so no test changes.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+4-127clang/lib/CodeGen/CGException.cpp
+131-0clang/lib/CodeGenUtils/EHPersonality.cpp
+2-116clang/lib/CIR/CodeGen/CIRGenException.cpp
+19-0clang/include/clang/CodeGenUtils/EHPersonality.h
+156-2434 files

LLVM/project 65a6eb7 — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share the Itanium __vmi_class_type_info flags computation

Deduplicates the `__vmi_class_type_info` and `__base_class_type_info` flags and
`computeVMIClassTypeInfoFlags` between CIR and classic CodeGen into
`ItaniumCXXABIUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-79clang/lib/CodeGen/ItaniumCXXABI.cpp
+3-77clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+54-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+21-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+81-1564 files

LLVM/project 2c4cc19 —

[CIR][CodeGen][NFC] Share the Itanium __pbase_type_info flags and predicates (#228187)

Deduplicates the `__pbase_type_info` flags, `containsIncompleteClassType` and
`extractPBaseFlags` between CIR and classic CodeGen into `ItaniumCXXABIUtils.h`.

Re-landing #223422, which Erich Keane approved; its merge went into the parent
branch of the stack instead of main.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+0-00 files

LLVM/project 411700d — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share the Itanium __pbase_type_info flags and predicates (#228187)

Deduplicates the `__pbase_type_info` flags, `containsIncompleteClassType` and
`extractPBaseFlags` between CIR and classic CodeGen into `ItaniumCXXABIUtils.h`.

Re-landing #223422, which Erich Keane approved; its merge went into the parent
branch of the stack instead of main.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+4-95clang/lib/CodeGen/ItaniumCXXABI.cpp
+6-90clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+52-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+44-3clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+106-1884 files

LLVM/project 205f6f2 — llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

[AMDGPU] Restore and regenerate `promote-alloca-byte-ptr-cast.ll`
DeltaFile
+44-0llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+44-01 files

LLVM/project 0300eda — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project 1151695 — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Translate byte to ptr bitcasts to `G_INTTOPTR`/`G_PTRTOINT`
DeltaFile
+137-3llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+16-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+6-4llvm/docs/GlobalISel/IRTranslator.md
+159-173 files

LLVM/project 2ab8bb0 — llvm/test/Analysis/BasicAA non-equal-select.ll

[BasicAA] Remove TODO in test (NFC) (#228992)

We've received the second AI generated implementation for this
TODO, and both times found that addressing it shows no benefit
to real-world code. As such, remove the TODO.
DeltaFile
+2-1llvm/test/Analysis/BasicAA/non-equal-select.ll
+2-11 files

LLVM/project 9b45aa1 — clang/lib/Sema SemaLifetimeSafety.h

[clang] Migrate away from PointerUnion::dyn_cast (NFC) (#228991)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

    // FIXME: Replace the uses of is(), get() and dyn_cast() with
    //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast.
Note that Target here traces back to AnnotationWarningsMap, which is
populated only with nonnull pointers.

Assisted-by: Antigravity
DeltaFile
+2-2clang/lib/Sema/SemaLifetimeSafety.h
+2-21 files

LLVM/project f96d2e8 — mlir/lib/Dialect/X86/Transforms VectorContractToAMXDotProduct.cpp, mlir/test/Dialect/X86/AMX vector-contract-to-tiled-dp.mlir

[mlir][x86] Bail out gracefully if accumulator is initialized from block arg (#228080)

`traceToVectorReadLikeParentOperation` may return `nullptr`, so defer
further checks until we know that a suitable op was found.
DeltaFile
+48-0mlir/test/Dialect/X86/AMX/vector-contract-to-tiled-dp.mlir
+3-3mlir/lib/Dialect/X86/Transforms/VectorContractToAMXDotProduct.cpp
+51-32 files

LLVM/project 8ddf7e4 — clang/lib/CIR/CodeGen CIRGenExprConstant.cpp CIRGenExpr.cpp, clang/test/CIR/CodeGenCUDA kernel-address.cu

[CIR][HIP] Use the kernel handle as a kernel's address on the host (#228377)

For HIP, a __global__ function referenced from host code is represented
by its kernel handle. CIR used the address of the device stub instead,
so APIs that take a kernel pointer failed.

Match classic codegen:
- emitFunctionDeclLValue gives the address of the kernel handle.
- Constant initializers, such as tables of kernel pointers, refer to the
kernel handle.
- A launch through a kernel pointer (f<<<...>>>) loads the device stub
from the handle and calls it.

CUDA has no separate kernel handle, instead the address of a kernel is
the device stub. The new test covers both HIP and CUDA.

Assisted-by: Claude Opus 5.5

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+75-0clang/test/CIR/CodeGenCUDA/kernel-address.cu
+38-3clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+10-2clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
+123-53 files

LLVM/project 6773e9a — clang/docs LanguageExtensions.md, clang/include/clang/Basic DiagnosticSemaKinds.td

[Clang][AIX] Diagnose inline variables named in -mloadtime-comment-vars
DeltaFile
+33-25clang/test/CodeGen/PowerPC/loadtime-comment-vars-modules.cpp
+20-21clang/docs/LanguageExtensions.md
+5-10clang/test/CodeGen/PowerPC/loadtime-comment-vars.cpp
+9-3clang/test/Sema/loadtime-comment-vars.cpp
+6-0clang/lib/Sema/SemaDecl.cpp
+1-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+74-596 files

LLVM/project 451e086 — llvm/lib/CodeGen ExpandIRInsts.cpp, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[NFC][IR] Use getDataLayout member function for Instruction and BasicBlock (#228989)

Follow up on #96902: remove some uses of the old
`getModule()->getDataLayout()` pattern.

Related PR: #228964
DeltaFile
+11-11llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
+3-3llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+2-2llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+2-2llvm/lib/Target/DirectX/DXILMemIntrinsics.cpp
+2-2llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-2llvm/lib/CodeGen/ExpandIRInsts.cpp
+21-225 files not shown
+26-2711 files

LLVM/project c30b45e — llvm/lib/CodeGen ShadowStackGCLowering.cpp, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[NFC][IR] Use getDataLayout member function for Function and GlobalValue (#228964)

Follow up on #96919: remove some uses of the old
`getParent()->getDataLayout()` pattern.
DeltaFile
+2-2llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
+2-2llvm/lib/CodeGen/ShadowStackGCLowering.cpp
+1-2llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+1-2llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+1-1llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp
+1-1llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
+8-107 files not shown
+15-1713 files

LLVM/project 0098b5c — flang/lib/Lower Bridge.cpp, flang/test/Lower execute_region_wrap_locations.f90

[flang] Fix locations of wrapped unstructured constructs and DO loop ends (#228577)

Construct evaluations have no source position, so the scf.execute_region
wrapping an unstructured construct was given the location of the
previously lowered statement. Use the construct's first statement for
the region and its END statement for the scf.yield. Also attribute the
DO loop end code to the END DO statement rather than to the last
statement of the loop body.

This avoids going back to previous lines when stepping in a debugger.

Assisted-by: AI
DeltaFile
+119-0flang/test/Lower/execute_region_wrap_locations.f90
+27-3flang/lib/Lower/Bridge.cpp
+146-32 files

LLVM/project 933a9a8 — mlir/lib/Conversion/SCFToControlFlow SCFToControlFlow.cpp, mlir/test/Conversion/SCFToControlFlow execute-region-locations.mlir

[mlir][scf] Keep scf.yield locations when lowering scf.execute_region (#228575)

The branches replacing the scf.yield terminators of an
scf.execute_region used the location of the scf.execute_region. Use the
location of the scf.yield they replace instead.
DeltaFile
+23-0mlir/test/Conversion/SCFToControlFlow/execute-region-locations.mlir
+1-1mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
+24-12 files

LLVM/project aaa9228 — llvm/docs LangRef.md, llvm/lib/Transforms/Scalar TailRecursionElimination.cpp

[TailCallElim] Do not mark a call tail when it is handed the frame (#218797)

markTails refuses to mark a call tail if it is passed an alloca or a
byval
argument, but it missed the intrinsics that return an address in the
current
frame, such as llvm.frameaddress(0), llvm.localaddress and
llvm.stacksave. The
frame is torn down before a tail callee runs, so the callee received a
dangling
pointer. gcc.c-torture/execute/frame-address.c aborts because of this.

llvm.stackrestore is no longer treated as an escape, since it does not
capture
its argument. Otherwise calls after a VLA scope would lose their tail
marking.

LangRef now states that a tail callee may not access the caller's stack
frame.

    [3 lines not shown]
DeltaFile
+154-0llvm/test/Transforms/TailCallElim/frame-address.ll
+43-14llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
+47-0llvm/test/Transforms/TailCallElim/stackrestore.ll
+16-3llvm/docs/LangRef.md
+260-174 files

LLVM/project 9d6091d — llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 vector-reduction-of-scalar-parts.ll

[VectorCombine] Fold insertelement chains of scalar parts to a bitcast and shuffle (#226224)

An insertelement chain whose elements are all truncated parts of the
same scalar is lowered element by element, unless InstCombine can turn
an in-order pair of halves into a bitcast (`foldTruncInsEltPair`). The
SLP vectorizer produces such chains for the fields of a struct that SROA
loaded as one integer, e.g. when summing two float fields in a loop:

```llvm
%hi = lshr i64 %x, 32
%h = trunc i64 %hi to i32
%l = trunc i64 %x to i32
%v0 = insertelement <2 x i32> poison, i32 %h, i64 0
%v1 = insertelement <2 x i32> %v0, i32 %l, i64 1
```

which X86 lowers to shrq + vmovd + vpinsrd. If TTI says it is cheaper,
replace the chain by a shuffle of the bitcast scalar:


    [27 lines not shown]
DeltaFile
+515-0llvm/test/Transforms/VectorCombine/X86/insert-scalar-parts.ll
+141-0llvm/test/Transforms/VectorCombine/AArch64/insert-scalar-parts.ll
+115-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+75-0llvm/test/Transforms/PhaseOrdering/X86/vector-reduction-of-scalar-parts.ll
+846-04 files

LLVM/project 32e2c07 — llvm/lib/Target/AMDGPU AMDGPUSwLowerLDS.cpp, llvm/test/CodeGen/AMDGPU amdgpu-sw-lower-lds-flat-arg-kernel-id.ll

[AMDGPU][SwLowerLDS] Lower non-kernels with LDS instructions and assign kernel IDs to their callers
DeltaFile
+122-84llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+152-0llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-flat-arg-kernel-id.ll
+274-842 files