LLVM/project 797c5a9clang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl builtins-amdgcn-gfx1250.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing smem-prefetch-insts to gfx12.5/gfx13 feature map

fillAMDGCNFeatureMap omitted smem-prefetch-insts for gfx125x and gfx13,
so clang wrongly rejected __builtin_amdgcn_s_prefetch_data / _inst /
s_buffer_prefetch_data.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+378-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.data.ll
+16-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+16-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250.cl
+2-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+412-04 files

LLVM/project d954981llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Use match_fn in uncountableEarlyExit (NFC) (#213289)
DeltaFile
+2-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-31 files

LLVM/project ac5e5fdllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Use subpattern-m_VPValue in simplifyRecipe (NFC) (#213268)

Use the subpattern variant of m_VPValue introduced in 8db13de ([VPlan]
Remove redundant x && (y && x) -> x && y combine, #213219) to improve
code in simplifyRecipe.
DeltaFile
+22-23llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+22-231 files

LLVM/project ff9b992llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vector-interleave-fixed.ll

[RISCV] Fix incorrect lowering of VECTOR_INTERLEAVE on fixed vectors (#212642)

This is the sibling patch of #207254, as it turns out VECTOR_INTERLEAVE
has the same problem on fixed vectors as well.

Instead of converting individual operands into scalable vectors, this
patch puts each of the operands directly onto stack using the fixed
vector version of segmented store intrinsics, before loading them back.

---------

Co-authored-by: Luke Lau <luke at igalia.com>
DeltaFile
+690-1,062llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
+24-27llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+714-1,0892 files

LLVM/project b232d11libc/src/math/nvptx CMakeLists.txt fmodf.cpp

[libc] Fix math failures for fmod on NVPTX (#213168)

Summary:
Fixes some failing tests. Fmod's builtin has improper handling in the
NVPTX instruction so we should just use the generic version for now. The
Float128 implementation seems to have had some undefined behavior for
out of range behavior that only showed up now. Hopefully someone can
tell me if this is fixed correctly.
DeltaFile
+0-19libc/src/math/nvptx/fmodf.cpp
+0-19libc/src/math/nvptx/fmod.cpp
+0-16libc/src/math/nvptx/CMakeLists.txt
+0-543 files

LLVM/project 1fe5589clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, clang/test/CIR/Transforms/abi-lowering x86_64-int-nyi.cir x86_64-bitint.cir

[CIR] Accept _BitInt up to 128 bits in x86_64 callconv lowering (#212668)

The x86_64 bridge in `CallConvLoweringPass.cpp` rejected every
`_BitInt`, so a function taking or returning one reported NYI even
though the ABI library already classifies these types. The classifier
has to be told the integer is bit-precise, and `mapCIRType` was dropping
that flag, which its two-eightbyte handling keys on. With the flag
forwarded, accepting widths up to 128 is mostly a matter of letting the
classifier's answer through. Wider widths stay rejected, for the reason
on the accept check.

Relaxing that check alone was not enough. `convertABIArgInfo` discarded
the classifier's coerce for every non-aggregate, which would have left a
`_BitInt(33)` as i33 where classic CodeGen passes i64. It now takes the
coercion path for a multi-register tuple coerce and for one wider than
the natural type. A narrower or equal coerce still means unchanged,
which is what preserves a `_BitInt(128)`'s 8-byte alignment.

Two `noundef` gaps against classic CodeGen remain. Neither mechanism is

    [3 lines not shown]
DeltaFile
+815-0clang/test/CIR/Transforms/abi-lowering/x86_64-bitint.cir
+62-40clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+18-14clang/test/CIR/Transforms/abi-lowering/x86_64-int-nyi.cir
+895-543 files

LLVM/project 34a34f1llvm/lib/Analysis HashRecognize.cpp, llvm/test/Analysis/HashRecognize cyclic-redundancy-check.ll

[HashRecognize] Prevent values other than `ComputedValue` from exiting loop (#213080)

A check exists to prevent recurrences from having stray uses, but this
is only applied when a simple recurrence exists, and does not apply to
other values such as the induction variable. Since the loop is in LCSSA
form, check the incoming value from the loop on each of the exit block
PHIs and bail if any of them are not `ComputedValue`.

This replaces the existing check requiring `ComputedValue` to be used in
the exit block. Note that this no longer covers the case where the exit
block has no PHIs, and therefore does not use `ComputedValue`. In this
case, the loop is dead and will be cleaned up by DCE anyway.
DeltaFile
+52-1llvm/test/Analysis/HashRecognize/cyclic-redundancy-check.ll
+6-7llvm/lib/Analysis/HashRecognize.cpp
+58-82 files

LLVM/project d702abcclang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing mqsad-insts to gfx13 frontend feature map (#213292)

fillAMDGCNFeatureMap omitted mqsad-insts for gfx1310/gfx13-generic, so
clang wrongly rejected __builtin_amdgcn_mqsad_u32_u8 on those targets
even though the backend enables the feature. Add it to the gfx13 case.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+23-10llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.u32.u8.ll
+24-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+1-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+48-103 files

LLVM/project c2c6041clang/include/clang/DependencyScanning DependencyScanningWorker.h DependencyScannerImpl.h, clang/lib/DependencyScanning CMakeLists.txt DependencyScanningWorker.cpp

Move implementation details to DependencyScanningWorker.cpp and dissolve DependencyScannerImpl.h/cpp.
DeltaFile
+0-525clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+493-1clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-89clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+12-2clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+0-1clang/lib/Tooling/DependencyScanningTool.cpp
+0-1clang/lib/DependencyScanning/CMakeLists.txt
+505-6193 files not shown
+506-6219 files

LLVM/project b2b20dfclang/include/clang/DependencyScanning DependencyScannerImpl.h, clang/lib/DependencyScanning DependencyScannerImpl.cpp DependencyScanningWorker.cpp

Use CompilerInstanceWithContext for TU scanning.
DeltaFile
+315-38clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-293clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+35-0clang/unittests/Tooling/DependencyScannerTest.cpp
+0-27clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+1-0clang/test/ClangScanDeps/logging-simple.c
+351-3585 files

LLVM/project 6e4374elibc/include/llvm-libc-macros/linux signal-macros.h

[libc] Add SIGPOLL si_code values. (#212873)

This is a follow-up to efc78d2029b9f716de4546ed88571616d91e826c, which
adds `si_code` values for the `SIGPOLL` signal on Linux.
DeltaFile
+8-0libc/include/llvm-libc-macros/linux/signal-macros.h
+8-01 files

LLVM/project 2acca53llvm/lib/IR Metadata.cpp, llvm/lib/Transforms/Utils Local.cpp SimplifyLibCalls.cpp

[AllocToken] Merge !alloc_token metadata across optimization passes (#211516)

Previously, optimization transforms like DeadStoreElimination (folding
malloc to calloc), SimplifyLibCalls (folding realloc(null, n) to
malloc), and combineMetadata (merging equivalent allocations in
GVN/SimplifyCFG) dropped !alloc_token metadata or stripped it when type
names differed. This caused allocation sites of pointer-containing types
to lose their metadata.

Fix it by implementing MDNode::getMergedAllocTokenMetadata() to merge
!alloc_token metadata by ORing the pointer-containing boolean flag and
concatenating type names with a pipe separator, updating combineMetadata
to use it, and preserving !alloc_token metadata when folding allocation
libcalls in DSE and SimplifyLibCalls.

Assisted-by: Antigravity:gemini
DeltaFile
+41-0llvm/lib/IR/Metadata.cpp
+28-1llvm/test/Transforms/SimplifyCFG/merge-calls-alloc-token.ll
+17-0llvm/test/Transforms/DeadStoreElimination/alloc-token-dse.ll
+15-0llvm/test/Transforms/InstCombine/alloc-token-realloc.ll
+7-2llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+2-3llvm/lib/Transforms/Utils/Local.cpp
+110-62 files not shown
+115-68 files

LLVM/project b3abf3dclang/lib/CodeGen CodeGenModule.cpp, llvm/test/Transforms/GCOVProfiling ptrauth-module-flags-aarch64.ll

Address review comments
DeltaFile
+5-0clang/lib/CodeGen/CodeGenModule.cpp
+3-1llvm/test/Transforms/GCOVProfiling/ptrauth-module-flags-aarch64.ll
+8-12 files

LLVM/project 89db6d6lld/MachO ObjC.cpp

[lld] Fix -Wunused-result in e44068cc129912c88dcdeae0d1b5dc5937eb1059 (#213296)

These variables are only used in an assertion, so mark them maybe unused
to avoid warnings in release builds.

Fixes https://lab.llvm.org/buildbot/#/builders/228/builds/6605.
DeltaFile
+3-2lld/MachO/ObjC.cpp
+3-21 files

LLVM/project acd842cllvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Export the TargetParser feature bitset

Previously this bitset was only used to populate the feature
name string map used by clang. Eventually this will replace
the current bitmask integer. AArch64 already has a similar
interface.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+17-14llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+29-0llvm/unittests/TargetParser/TargetParserTest.cpp
+16-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+62-143 files

LLVM/project 6a519a6llvm/lib/Target/AMDGPU AMDGPU.td, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Tablegenerate TargetParser feature sets

Traditionally we maintained 2 parallel feature mechanisms,
one in clang (later moved to TargetParser), with largely
mirrored subtarget features defined in the backend. Start
directly taking feature information from the backend and putting
it into TargetParser. This is still in a compromise mid-migration
state. We still have both the legacy "ArchAttr" bitfield integer,
plus a new AMDGPUFeatureBitset field stored in the table, which
isn't yet exported.

For the moment, the new bitset is only used to populate the
feature string name map, which is the big maintainability win.
This also lists an explicit subset of exported features to
avoid churn.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+51-515llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+115-3llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+43-0llvm/unittests/TargetParser/TargetParserTest.cpp
+39-0llvm/lib/Target/AMDGPU/AMDGPU.td
+248-5184 files

LLVM/project e2fa55dllvm/test/CodeGen/AArch64/GlobalISel combine-freeze.mir prelegalizer-combiner-load-or-pattern.mir, llvm/test/CodeGen/AMDGPU llvm.amdgcn.av.load.b128.ll

Merge branch 'main' into users/kovdan01/ptrauth-atts-for-synthetic-fns
DeltaFile
+3,291-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+790-790llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-load-or-pattern.mir
+793-710llvm/test/Transforms/LoopVectorize/induction.ll
+112-1,272llvm/test/CodeGen/X86/fptosi-sat-scalar.ll
+689-689llvm/test/CodeGen/AArch64/GlobalISel/combine-freeze.mir
+1,298-0llvm/test/CodeGen/X86/fptosi-sat-scalar-f16.ll
+6,973-3,461681 files not shown
+39,124-25,000687 files

LLVM/project 6109006clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

[clang][DependencyScanning] Relocate CompilerInstanceWithContext to DependencyScanningWorker.cpp (#211407)

This PR relocates all `CompilerInstanceWithContext` code to
`DependencyScanningWorker.cpp` and hides them as implementation details,
since no public APIs should use `CompilerInstanceWithContext` directly.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+250-0clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+4-207clang/lib/Tooling/DependencyScanningTool.cpp
+0-75clang/include/clang/Tooling/DependencyScanningTool.h
+22-5clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+276-2874 files

LLVM/project 5f4d725clang/include/clang/DependencyScanning DependencyScannerImpl.h, clang/include/clang/Tooling DependencyScanningTool.h

[clang][DependencyScanning] Implement the Streaming Style By-name Scanning API (#211406)

This PR implements a streaming stype by-name scanning API. The new API
takes a `DependencyConsumer`, a `DiagnosticsConsumer` and a
`getNextName` lambda. Any diagnositcs flow to the `DependencyConsumer`,
and the results flows to to `DependencyConsumer`. The `getNextName`
lambda is allows the client to stream names into the API, and the API
keeps scanning dependencies for input names until `getNextName` does not
return more names.

rdar://178088113

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+43-89clang/lib/Tooling/DependencyScanningTool.cpp
+39-56clang/tools/clang-scan-deps/ClangScanDeps.cpp
+15-59clang/include/clang/Tooling/DependencyScanningTool.h
+0-14clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+1-3clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
+1-1clang/test/ClangScanDeps/modules-invalid-target.c
+99-2221 files not shown
+101-2227 files

LLVM/project 10da8ecclang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/test/Analysis/Scalable/PointerFlow multi-dim-pointer-flow-constraint.test multi-decl-contributor.cpp

[SSAF] Close unsafe-buffer reachability over override families

An unsafe pointer reaching one override's parameter is equally unsafe in every
sibling and base override of that method, because the call site picks the
target dynamically. Without closing over the families, reachability depended
on which override the extractor happened to see the flow through, so a fix
suggested for the base could be contradicted by a derived override.

Mirroring is level-preserving: families relate slot entities, so a reachable
EPL propagates only to the same pointer level on its family members.

The closure runs after the pointer-flow DFS has converged and does not feed
its own output back in, so a flow edge out of a newly discovered EPL is still
missed. FamilyClosureDoesNotRerunDFS pins that gap.

§4 of rdar://179151603
DeltaFile
+320-7clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+92-6clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+1-1clang/test/Analysis/Scalable/PointerFlow/multi-dim-pointer-flow-constraint.test
+1-1clang/test/Analysis/Scalable/PointerFlow/multi-decl-contributor.cpp
+1-1clang/test/Analysis/Scalable/PointerFlow/lref-to-rref-cast.test
+1-1clang/test/Analysis/Scalable/PointerFlow/external-inline-function-in-multi-tu.test
+416-176 files

LLVM/project ae11cb9clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses CMakeLists.txt

[SSAF] Serialize virtual method summaries and families

Per-TU summaries and whole-program results cross process boundaries, and the
JSON layer refuses to write a summary kind it has no format for. Register both
sides so --ssaf-extract-summaries=VirtualMethod becomes usable and the family
result survives a round trip.

Deserialization tolerates a missing override list, since a root virtual method
legitimately has none.

§3 of rdar://179151603
DeltaFile
+390-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/VirtualMethodFamilyFormatTest.cpp
+192-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyFormat.cpp
+22-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+5-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+611-01 files not shown
+612-07 files

LLVM/project ab4d714clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/include/clang/ScalableStaticAnalysis/Core/Model EntityId.h

[SSAF] Group virtual method slots into override families

A virtual call site can dispatch to any override, so the parameter and return
slots that occupy the same vtable slot across an override chain are
indistinguishable to a caller. Whole-program consumers therefore have to treat
them as one unit or they will reason about a slot that a call never actually
reaches.

Compute those units up front, keyed per slot, so consumers only need a map
lookup rather than their own traversal of the override relation. Overloads
occupy distinct vtable slots and stay in distinct families.

The family representative is the smallest EntityId in the class, which keeps
the result stable across runs.

§2 of rdar://179151603
DeltaFile
+336-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysisTest.cpp
+201-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+46-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+11-0clang/include/clang/ScalableStaticAnalysis/Core/Model/EntityId.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+596-01 files not shown
+597-07 files

LLVM/project 9ae0603clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodEntityExtractor.cpp

[SSAF] Extract the virtual method override relation per TU

A virtual call may dispatch to any override of its callee, so a whole-program
analysis cannot reason about a method's parameters and return value in
isolation. It needs to know which method overrides which, and which slots
that relates. Collect this per TU, so a later pass can join the related
slots into families.

JSON serialization lands separately, so the summary is not writable via
--ssaf-extract-summaries yet.

§1 of rdar://179151603
DeltaFile
+228-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyExtractorTest.cpp
+155-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyTestSupport.h
+145-0clang/unittests/ScalableStaticAnalysis/ParsedAST.h
+92-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodEntityExtractor.cpp
+51-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+672-02 files not shown
+674-08 files

LLVM/project a9cf31bclang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl builtins-amdgcn-gfx1250.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing smem-prefetch-insts to gfx12.5/gfx13 feature map

fillAMDGCNFeatureMap omitted smem-prefetch-insts for gfx125x and gfx13,
so clang wrongly rejected __builtin_amdgcn_s_prefetch_data / _inst /
s_buffer_prefetch_data.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+378-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.data.ll
+16-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+16-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250.cl
+2-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+412-04 files

LLVM/project 28d9aecllvm/lib/Transforms/Scalar LoopIdiomRecognize.cpp, llvm/test/Transforms/LoopIdiom cyclic-redundancy-check.ll crc-debugify-remarks.ll

[LoopIdiom] Use costing to determine CRC strategy (#211040)

The CRC loop clmul optimization currently only runs under optsize,
despite being significantly faster than the Sarwate table optimization
in many cases. Model the costs of each approach and weigh them against
each other to determine which optimization should be used. Since the
benefits of clmul are unclear for optsize, simply bail in that case
instead.

Assisted-by: Claude Opus 4.8
DeltaFile
+803-400llvm/test/Transforms/LoopIdiom/RISCV/cyclic-redundancy-check.ll
+321-449llvm/test/Transforms/LoopIdiom/X86/cyclic-redundancy-check.ll
+312-422llvm/test/Transforms/LoopIdiom/AArch64/cyclic-redundancy-check.ll
+132-34llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+96-0llvm/test/Transforms/LoopIdiom/crc-debugify-remarks.ll
+29-28llvm/test/Transforms/LoopIdiom/cyclic-redundancy-check.ll
+1,693-1,3336 files

LLVM/project cb1642bclang/lib/StaticAnalyzer/Checkers/WebKit MemoryUnsafeCastChecker.cpp, clang/test/Analysis/Checkers/WebKit memory-unsafe-cast.mm

[Webkit Checkers][SaferCpp] Detect implicit `id`-to-specific-type casts in MemoryUnsafeCastChecker (#213113)

Flag arguments of type `id` implicitly converted to a specific
Objective-C pointer type at a call, message send, or constructor call
(e.g. passing `id` where an `NSString *` parameter is expected). These
conversions compile without a visible cast but throw at runtime if the
object is not actually of that type.

rdar://148708396
DeltaFile
+50-12clang/lib/StaticAnalyzer/Checkers/WebKit/MemoryUnsafeCastChecker.cpp
+47-0clang/test/Analysis/Checkers/WebKit/memory-unsafe-cast.mm
+97-122 files

LLVM/project f46962bclang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing mqsad-insts to gfx13 frontend feature map

fillAMDGCNFeatureMap omitted mqsad-insts for gfx1310/gfx13-generic, so
clang wrongly rejected __builtin_amdgcn_mqsad_u32_u8 on those targets even
though the backend enables the feature. Add it to the gfx13 case.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+23-10llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mqsad.u32.u8.ll
+24-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+1-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+48-103 files

LLVM/project becbf17llvm/lib/Target/AMDGPU MIMGInstructions.td AMDGPU.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.intersect_ray.ll

AMDGPU: Separate image_msaa_load from bvh-ray-tracing-insts

Add a separate msaa-load-insts feature so image_msaa_load is available on
gfx13, which has it but not the BVH intersect-ray instructions. These were
assumed to be the same feature previously, but gfx13 does not have the bvh
instructions, but does have image_msaa_load.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+14-3llvm/lib/Target/AMDGPU/AMDGPU.td
+13-0llvm/test/MC/AMDGPU/gfx13_asm_vimage_err.s
+5-3llvm/lib/Target/AMDGPU/MIMGInstructions.td
+2-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+1-0llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
+35-65 files

LLVM/project 61b16cbclang/test/SemaOpenCL builtins-amdgcn-image-bvh-intersect-ray-err.cl, llvm/lib/Target/AMDGPU AMDGPU.td

AMDGPU: Do not give gfx12.5 bvh-ray-tracing-insts (#213246)

bvh-ray-tracing-insts was listed in the FeatureGFX12 generation, so
gfx1250/gfx1251/gfx12-5-generic inherited it even though they have no
BVH. Move the feature out of the common base and into FeatureISAVersion12.
This stops clang from wrongly accepting __builtin_amdgcn_image_bvh_intersect_ray*
on gfx1250.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+15-0clang/test/SemaOpenCL/builtins-amdgcn-image-bvh-intersect-ray-err.cl
+2-1llvm/lib/Target/AMDGPU/AMDGPU.td
+2-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+1-0llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
+20-14 files

LLVM/project 96ca8cfllvm/test/CodeGen/AMDGPU buffer-fat-pointer-atomicrmw-fmax.ll buffer-fat-pointer-atomicrmw-fadd.ll

Revert "[MachineLICM] Use `RegisterClassInfo::getRegPressureSetLimit`" (#213287)

Reverts llvm/llvm-project#211715 because of some failures.
DeltaFile
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
+3,252-3,311llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
+2,533-2,603llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
+20,441-20,46868 files not shown
+46,071-47,15474 files