LLVM/project 15eef13 — llvm/include/llvm/ExecutionEngine/Orc/Debugging PerfSupportPlugin.h VTuneSupportPlugin.h, llvm/lib/ExecutionEngine/Orc/Debugging VTuneSupportPlugin.cpp PerfSupportPlugin.cpp

[ORC] Call Perf/VTune support wrappers through Proxies (#226677)

Hold PerfSupportPlugin's start/end registration wrappers and
VTuneSupportPlugin's unregister wrapper as Proxy members, replacing
their callSPSWrapper calls. Each proxy is built in the constructor from
the address it already takes, so the constructor signatures are
unchanged. The Perf impl and VTune register wrappers are only used as
alloc-action tags and stay ExecutorAddrs.
DeltaFile
+36-10llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp
+24-3llvm/lib/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.cpp
+3-5llvm/include/llvm/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.h
+3-2llvm/include/llvm/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.h
+66-204 files

LLVM/project 5ad4959 — clang/include/clang/AST ASTContext.h NestedNameSpecifierBase.h, clang/lib/AST NestedNameSpecifier.cpp

[clang] Unique NamespaceAndPrefixStorages with a UniquingSet (NFC) (#224221)

This patch migrates NamespaceAndPrefixStorages in ASTContext from
llvm::FoldingSet to llvm::UniquingSet.

NamespaceAndPrefixStorage keys on a pair of const NamespaceBaseDecl *
and NestedNameSpecifier.  Switching to UniquingSet allows us to look
up storages with a typed key, eliminating FoldingSetNodeID
serialization at lookup sites and removing
NamespaceAndPrefixStorage::Profile.

Assisted-by: Antigravity
DeltaFile
+2-6clang/include/clang/AST/NestedNameSpecifierBase.h
+1-4clang/lib/AST/NestedNameSpecifier.cpp
+1-1clang/include/clang/AST/ASTContext.h
+4-113 files

LLVM/project d8b43a8 — llvm/lib/Target/Mips MipsTargetMachine.h MipsAsmPrinter.cpp, llvm/test/CodeGen/Mips target-abi-module-flag.ll

Mips: Properly account for target-abi in subtarget construction (#226721)
DeltaFile
+42-0llvm/test/CodeGen/Mips/target-abi-module-flag.ll
+6-4llvm/lib/Target/Mips/MipsTargetMachine.cpp
+6-3llvm/lib/Target/Mips/MipsSubtarget.h
+3-2llvm/lib/Target/Mips/MipsSubtarget.cpp
+2-2llvm/lib/Target/Mips/MipsAsmPrinter.cpp
+0-3llvm/lib/Target/Mips/MipsTargetMachine.h
+59-146 files

LLVM/project 521b663 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU narrow-int-to-bfloat.ll narrow-int-to-fp.ll

[AMDGPU] Price scalar integer to fp casts by source width and sign

Scalar sources between a byte and 31 bits fell to the default cost of one
while the matching vector lanes were already priced, which skewed the
difference SLP weighs a bundle against. Such a source is extended before
the conversion, and what the extension takes depends on the width, on the
sign and on whether the subtarget has SDWA and 16 bit instructions.
Sources narrower than a byte are left alone, because their vector form is
not priced either.
DeltaFile
+259-259llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+45-45llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+29-9llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+333-3133 files

LLVM/project 440959e — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

format
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+1-11 files

LLVM/project f0aadbd — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU narrow-int-to-bfloat.ll

[AMDGPU] Price narrow integer to bfloat vector casts

A vector lane of 9 to 15 or 17 to 31 bits converted to bfloat got the
generic cost, which leaves out the rounding. Such a lane is converted to
f32 first like any other narrow lane, so price it as the f32 conversion of
the same source plus the rounding. Lanes of 8 and 16 bits keep their cost.
DeltaFile
+45-45llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+11-7llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+56-522 files

LLVM/project 14c1be7 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU fptoui.ll fptosi.ll

fix 16-bit conv
DeltaFile
+136-136llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+69-31llvm/test/Analysis/CostModel/AMDGPU/expanded-int-fp-casts.ll
+30-14llvm/test/Analysis/CostModel/AMDGPU/fptoui.ll
+30-14llvm/test/Analysis/CostModel/AMDGPU/fptosi.ll
+41-3llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+306-1985 files

LLVM/project a2e0d3f — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU fptoui.ll narrow-int-to-bfloat.ll

[AMDGPU] Model the cost of the expanded integer to/from floating point casts

No instruction converts to or from a 64 bit integer, and narrow vector
lanes are converted one at a time. Price these expansions by the FP64
rate, sdwa and 16 bit instruction support, and price i33 to i63 like
i64 and bf16 like f32 plus rounding.

Assisted-by: Claude Code Opus 5
DeltaFile
+312-215llvm/test/Analysis/CostModel/AMDGPU/cast.ll
+210-210llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+146-70llvm/test/Analysis/CostModel/AMDGPU/expanded-int-fp-casts.ll
+70-70llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+107-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+60-37llvm/test/Analysis/CostModel/AMDGPU/fptoui.ll
+905-6021 files not shown
+965-6397 files

LLVM/project 71986a7 — llvm/test/Analysis/CostModel/AMDGPU fptoui.ll fptosi.ll

[NFC][AMDGPU] Add cost tests for narrow integer to fp casts

Covers integer sources from a byte to 31 bits converted to half, float,
bfloat and double, as vector lanes and as scalars, over the subtarget
combinations that change the expansion. The existing cast tests get the
same subtarget coverage and the cases they were missing. The costs
recorded here are the ones the model reports today.
DeltaFile
+642-0llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+241-0llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+32-84llvm/test/Analysis/CostModel/AMDGPU/expanded-int-fp-casts.ll
+17-10llvm/test/Analysis/CostModel/AMDGPU/cast.ll
+11-6llvm/test/Analysis/CostModel/AMDGPU/fptoui.ll
+11-6llvm/test/Analysis/CostModel/AMDGPU/fptosi.ll
+954-1066 files

LLVM/project 8a3cb25 — llvm/test/Analysis/CostModel/AMDGPU expanded-int-fp-casts.ll narrow-int-to-bfloat.ll

apply review
DeltaFile
+545-483llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+189-189llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+15-15llvm/test/Analysis/CostModel/AMDGPU/expanded-int-fp-casts.ll
+749-6873 files

LLVM/project df7a21f — llvm/lib/Transforms/Vectorize VPlanTransforms.h VPlanConstruction.cpp

[LV] Remove EpilogueLoopVectorizationInfo::EpilogueUF (NFC). (#226792)

The epilogue vector loop is always unrolled by 1: the only construction
site passes 1 and the constructor asserted it. Drop the field and use 1
directly at its users, and drop the now always 1 EpilogueUF parameter of
addMinimumVectorEpilogueIterationCheck.

Clean-up in preparation for removing/simplifying
EpilogueLoopVectorizationInfo.
DeltaFile
+10-17llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+4-4llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+2-2llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+16-233 files

LLVM/project e10e760 — llvm/include/llvm/CodeGen TargetLoweringObjectFileImpl.h, llvm/include/llvm/Target TargetLoweringObjectFile.h

CodeGen: Merge TargetLoweringObjectFile::getModuleMetadata into Initialize

getModuleMetadata had a single caller, which invoked it immediately after
Initialize. Pass the module to Initialize and fold it in.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+32-22llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+21-14llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+14-16llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp
+10-9llvm/include/llvm/Target/TargetLoweringObjectFile.h
+3-8llvm/lib/Target/ARM/ARMTargetObjectFile.cpp
+4-4llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp
+84-7332 files not shown
+164-12638 files

LLVM/project cdcccdc — llvm/lib/CodeGen MachineModuleInfo.cpp, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

CodeGen: Initialize TargetLoweringObjectFile from MachineModuleInfo

MachineModuleInfo passes TLOF to the MCContext the TargetLoweringObjectFile
but nothing initialized it until the AsmPrinter pass ran, so every codegen pass
in between saw it uninitialized. Initialize it from MachineModuleInfo, and drop
the calls llc and SPIRVTranslate used to work around this.

SPIRVTranslate's MachineModuleInfoWrapperPass was never passed on to
addPassesToEmitFile, so it was initializing a throwaway context.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+0-6llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+4-0llvm/lib/CodeGen/MachineModuleInfo.cpp
+0-3llvm/tools/llc/lib/llcdriver.cpp
+0-3llvm/tools/llc/lib/NewPMDriver.cpp
+0-3llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+4-155 files

LLVM/project d0ea8a8 — llvm/unittests/Support/LLVMToolSession LLVMToolSessionTest.cpp

[unittests] Fix a recent test on Windows with LLVM_WINDOWS_PREFER_FORWARD_SLASH (#224963)

This fixes errors like these:
```
Expected equality of these values:
  Context.Path
    Which is: "D:/a/llvm-mingw/llvm-mingw/llvm-project/build/unittests/Support/LLVMToolSession/./LLVMToolSessionTests.exe"
  ExecutablePath.c_str()
    Which is: "D:\\a\\llvm-mingw\\llvm-mingw\\llvm-project\\build\\unittests\\Support\\LLVMToolSession\\.\\LLVMToolSessionTests.exe"
```
DeltaFile
+3-1llvm/unittests/Support/LLVMToolSession/LLVMToolSessionTest.cpp
+3-11 files

LLVM/project eea5529 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 extracted-subfields.ll

[SLP]Fix reused scales for sub-fields gathered in natural order

The reduction root sub-fields were emitted in the natural order, but the
reused values were scaled by the original lane order. Reorder the root
scalars instead.

Fixes https://github.com/llvm/llvm-project/pull/224919#issuecomment-5858504241

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/226828
DeltaFile
+16-14llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-2llvm/test/Transforms/SLPVectorizer/X86/extracted-subfields.ll
+18-162 files

LLVM/project 9e44a66 — llvm/test/Transforms/SLPVectorizer/X86 extracted-subfields.ll

[SLP][NFC]Add extra tests with incorrect vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/226827
DeltaFile
+78-0llvm/test/Transforms/SLPVectorizer/X86/extracted-subfields.ll
+78-01 files

LLVM/project 8e6f260 — llvm/include/llvm/ADT DenseMapInfo.h DenseMap.h, llvm/lib/Support CMakeLists.txt DenseMap.cpp

[DenseMap] Share rehash and grow for relocatable bucket types. NFC (#225018)

DenseMap is heavily instantiated and moveFrom and grow are among the
largest code families. For trivially copy constructible and destructible
bucket types (also satisfied by std::pair), call an out-of-line
`growRelocatable` with size/align/hasher (dictionary passing style).

A pointer key hashed by its value hashes inline, which a null
BucketHasher asks for, sparing a call per entry.
DenseMapInfo<T *>::PointerValueHash names the class declaring it, so an
info that specializes or inherits it to hash the pointee -- Attributor's
InstExclusionSet, VPCSEDenseMapInfo, MachineInstrExpressionTrait --
keeps its own hash. Any other key hashes through a thunk, one per
(KeyT, KeyInfoT) whatever the map's value type.

SmallDenseMap's in-place rehash for remove_if shares the loop through
`rehashRelocatable`. It rehashes once rather than into a temporary map
and back, which can reorder a probe chain that wraps around the table.


    [3 lines not shown]
DeltaFile
+127-41llvm/include/llvm/ADT/DenseMap.h
+144-0llvm/unittests/ADT/DenseMapTest.cpp
+101-0llvm/lib/Support/DenseMap.cpp
+3-0llvm/include/llvm/ADT/DenseMapInfo.h
+1-0llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
+1-0llvm/lib/Support/CMakeLists.txt
+377-416 files

LLVM/project 43f30af — llvm/include/llvm/Support ModRef.h, llvm/lib/Analysis BasicAliasAnalysis.cpp

[IR] Memory effects for floating-point operations

Floating-point operations in a strictfp function have side effects,
which are modeled using memory effects in the form of a read-write
access to "inaccessible memory". This helps maintain strictfp semantics
but may hinder optimizations. Floating-point operations may depend on
rounding mode or not - this fact may be used to reorder them in a more
optimal way. Similarly, functions that control floating-point
environment (like `set_rounding`, `set_fpmode` etc.) also have more
specific access than generic read-write. Also, "inaccessible memory" is
used in cases other than FP operation, this results in unnecessary
restrictions.

This change implements two new memory location to use instead of the
access to "inaccessible memory". The "fpcontrol" location is used to
represent access to floating-point control modes, of which only rounding
mode is currently supported. The other location, "fpstatus", represents
access to floating-point exceptions. Together they replace the use of
"inaccessible memory".

    [21 lines not shown]
DeltaFile
+69-7llvm/include/llvm/Support/ModRef.h
+31-9llvm/lib/IR/Attributes.cpp
+30-0llvm/test/Assembler/memory-attribute.ll
+7-2llvm/lib/AsmParser/LLParser.cpp
+4-4llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+5-2llvm/lib/Analysis/BasicAliasAnalysis.cpp
+146-2411 files not shown
+172-3317 files

LLVM/project c155716 — clang/lib/AST/ByteCode Opcodes.td Interp.h

fixup! [Clang][ExprConst] Accept prvalue for nothrow new
DeltaFile
+32-47clang/lib/AST/ByteCode/Interp.cpp
+9-11clang/lib/AST/ByteCode/Compiler.cpp
+1-0clang/lib/AST/ByteCode/Opcodes.td
+1-0clang/lib/AST/ByteCode/Interp.h
+43-584 files

LLVM/project db9f06c — llvm/lib/Target/AArch64 AArch64CodeLayoutOpt.cpp, llvm/lib/Transforms/Instrumentation AddressSanitizer.cpp

Remove cl::callback from AArch64CodeLayoutOpt and AddressSanitizer (#226757)

cl::callback will be removed to enable migration to TableGen based
representation

LLM-aided
DeltaFile
+3-7llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+4-5llvm/lib/Target/AArch64/AArch64CodeLayoutOpt.cpp
+7-122 files

LLVM/project f8cfaa7 — libcxx/test/configs ibm-libc++-shared.cfg.in

[libc++][AIX] Add system library path via blibpath for lldb (#223837)

On AIX some tools we use for testing libc++, like lldb, are linked
against the system libc++, which has additional members (e.g
`shr2_64.o`) that the newly built libc++.a doesn't have. But the current
test harness set the `LIBPATH` to point at the newly built libc++, which
can load break these tools.

This change removes the `LIBPATH` and instead sets the `blibpath`
(equivalent to rpath on other systems), which helps lldb find the system
libc++.a, while still running the tests against the libc++ build under
test.
DeltaFile
+2-2libcxx/test/configs/ibm-libc++-shared.cfg.in
+2-21 files

LLVM/project cb3f6a2 — llvm/lib/Target/AMDGPU GCNSubtarget.h, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Remove remaining BaseInfo duplicates of TargetParser APIs

Use TargetParser for LDS sizes and architectural VGPR limits, preserving
the distinction between VGPRs and AGPRs on unified-register-file targets.
Remove the TargetID factory wrapper and redundant type and SGPR constant
aliases, updating the remaining callers.

Cover physical LDS allocation boundaries across GPU generations and
full/half-SIMD modes in the assembler tests.

Change-Id: I9fa8447a69de3649792809424d2b0251dae0155b
DeltaFile
+0-67llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+1-23llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+15-0llvm/test/MC/AMDGPU/elf-lds-size.s
+6-1llvm/lib/Target/AMDGPU/GCNSubtarget.h
+4-2llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+3-2llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+29-954 files not shown
+37-10310 files

LLVM/project 45dde81 — llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.h AMDGPUAsmPrinter.cpp

[AMDGPU] Move dynamic VGPR addressability to TargetParser

Extend getAddressableNumVGPRs with a dynamic block size and share the
eight-block limit through TargetParser. Remove the BaseInfo counterpart
and update its subtarget, occupancy, scheduler, and diagnostic callers.

Cover dynamic addressability, static limits, and unified register files.

Change-Id: Ie4dae7ba34cce8e8ea50e24f7075242a8a045505
DeltaFile
+31-0llvm/unittests/TargetParser/TargetParserTest.cpp
+2-15llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+11-4llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+6-7llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+8-3llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+1-7llvm/lib/Target/AMDGPU/GCNSubtarget.h
+59-363 files not shown
+61-479 files

LLVM/project de480cc — llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU SIFrameLowering.cpp

[AMDGPU] Move dynamic VGPR allocation granules to TargetParser

Extend getVGPRAllocGranule with a dynamic block size and preserve the
fixed gfx90a-family granule. Remove the BaseInfo counterpart and migrate
its occupancy, scheduler, frame lowering, and register-block callers.

Cover dynamic allocation, static mode, and gfx90a-family exceptions.

Change-Id: Id441ddcea2d7a33121ddb4139af4c5f52f273ff3
DeltaFile
+18-37llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+30-0llvm/unittests/TargetParser/TargetParserTest.cpp
+8-4llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+7-4llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+0-8llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+1-2llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+64-553 files not shown
+68-599 files

LLVM/project 1b5693c — llvm/test/CodeGen/AMDGPU bitinsert-bitextract.ll, llvm/test/CodeGen/ARM bitinsert-bitextract-fp.ll bitinsert-bitextract.ll

Merge branch 'main' into users/chinmaydd/lld-elf-vfs
DeltaFile
+6,086-6,026llvm/test/CodeGen/RISCV/rvv/expandload.ll
+4,294-0llvm/test/CodeGen/RISCV/bitinsert-bitextract.ll
+3,321-0llvm/test/CodeGen/ARM/bitinsert-bitextract.ll
+1,989-0llvm/test/CodeGen/RISCV/bitinsert-bitextract-fp.ll
+1,976-0llvm/test/CodeGen/AMDGPU/bitinsert-bitextract.ll
+1,552-0llvm/test/CodeGen/ARM/bitinsert-bitextract-fp.ll
+19,218-6,0261,331 files not shown
+63,236-24,1511,337 files

LLVM/project e975ae3 — llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Move getVGPREncodingGranule to TargetParser

Add GPUKind and SubArch encoding-granule queries with an explicit wave size.
Remove the BaseInfo counterpart and update codegen, assembler, and
disassembler callers, preserving kernel descriptor wave-size overrides.

Cover encoding granules across GPU generations and both wave sizes.

Change-Id: I1982fef776e5a0b7c613c274e544ba3e3f86f136
DeltaFile
+28-0llvm/unittests/TargetParser/TargetParserTest.cpp
+4-16llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+14-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+0-8llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+8-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+4-3llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+58-273 files not shown
+64-309 files

LLVM/project 427b224 — llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/TargetParser AMDGPUTargetParser.cpp

[AMDGPU] Extend TargetParser VGPR queries for dynamic mode and encoding

Add a VGPR encoding granule query with explicit GPU kind and wave size.
Extend the allocation granule and addressable VGPR queries with an optional
dynamic block size, including the eight-block limit and gfx90a-family
exceptions already used by the backend.

Cover static and dynamic limits, encoding granules, wave sizes, and the
GPUKind and SubArch overloads in TargetParser unit tests. Existing callers
continue to select static mode by default.

Change-Id: I1d389875d25f02b07beb0ea788f16735220007fd
DeltaFile
+70-0llvm/unittests/TargetParser/TargetParserTest.cpp
+30-7llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+26-8llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+126-153 files

LLVM/project 20bbd88 — llvm/lib/Transforms/Utils SimplifyCFG.cpp, llvm/test/Transforms/SimplifyCFG/AArch64 speculate-vector-phi-select-cost.ll

[SimplifyCFG] Cost speculated selects with their real scalar condition (#217664)

`validateAndCostRequiredSelects()` priced the selects that
`speculativelyExecuteBB()` would create using
`CmpInst::makeCmpResultType(PN->getType())` as the condition type. For a
vector phi, that asks the target for the cost of a per-lane vector
select, but the select actually created uses the branch condition, which
is always a scalar `i1`.

This only changes behaviour where a target's cost model distinguishes
the two condition types. Of the targets checked, only AArch64 does.

This may worsen the compiler's output in RISC-V, X86, ARM, so no
intention to merge soon before collecting more feedback on how the
different targets should communicate this property.
DeltaFile
+106-0llvm/test/Transforms/SimplifyCFG/X86/speculate-mask-phi-select-cost.ll
+90-0llvm/test/Transforms/SimplifyCFG/AArch64/speculate-vector-phi-select-cost.ll
+90-0llvm/test/Transforms/SimplifyCFG/ARM/speculate-vector-phi-select-cost.ll
+80-0llvm/test/Transforms/SimplifyCFG/RISCV/speculate-mask-phi-select-cost.ll
+1-1llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+367-15 files

LLVM/project 1bd54f2 — llvm/test/Transforms/Attributor nofpclass.ll

fixup! [ValueTracking] Support Array and Structure in contains* check
DeltaFile
+3-3llvm/test/Transforms/Attributor/nofpclass.ll
+3-31 files

LLVM/project 5402c8a — clang/lib/AST ExprConstant.cpp, clang/lib/AST/ByteCode Compiler.cpp Interp.cpp

fixup! [Clang][ExprConst] Accept prvalue for nothrow new
DeltaFile
+24-21clang/lib/AST/ExprConstant.cpp
+13-4clang/test/SemaCXX/new-nothrow-by-value.cpp
+10-0clang/lib/AST/ByteCode/Interp.cpp
+5-1clang/lib/AST/ByteCode/Compiler.cpp
+52-264 files