LLVM/project 2dbcd7dclang/include/clang/CIR/Dialect Passes.td, clang/lib/CIR/Dialect/IR CIRTypes.cpp

[CIR] Add x86_64 scalar calling-convention lowering (#209636)

CallConvLowering can already classify a function through the MLIR test
target or through a classification injected as an attribute, but it has
no
path to a real target ABI. This adds a `target=x86_64` mode that runs
the
LLVM ABI Lowering Library's System V x86_64 classifier: it maps CIR
types to
`llvm::abi` types, calls the classifier, and converts the result back
into
the `mlir::abi::FunctionClassification` that `CIRABIRewriteContext`
already
consumes.

To keep the first step small this handles scalar signatures only --
integer
up to 64 bits, pointer, bool, `f32`, and `f64`.  Anything else (records,
arrays, vectors, `_Complex`, wide or uncommon floats, `_BitInt`,

    [9 lines not shown]
DeltaFile
+221-9clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+91-0clang/test/CIR/Transforms/abi-lowering/x86_64-scalars.cir
+53-0clang/unittests/CIR/GetFloatingPointTypeTest.cpp
+23-0clang/lib/CIR/Dialect/IR/CIRTypes.cpp
+17-2clang/include/clang/CIR/Dialect/Passes.td
+18-0clang/test/CIR/Transforms/abi-lowering/x86_64-lang-addrspace-nyi.cir
+423-115 files not shown
+448-1111 files

LLVM/project 2b68eb4llvm/lib/Analysis ScalarEvolution.cpp

[SCEV][NFCI] Refactor LoopGuards range check matching (#210362)

Parameterize MatchRangeCheckIdiom over (Predicate, LHS, RHS) so it can
be reused for other predicates discovered during guard collection.

Hoist AddRewrite / GetMaybeRewritten above it and use them in place of
the inline try_emplace, so range-check rewrites chain onto existing ones
the same way other rewrites do.
DeltaFile
+42-42llvm/lib/Analysis/ScalarEvolution.cpp
+42-421 files

LLVM/project 35bf123mlir/include/mlir/Dialect/OpenACC OpenACCCGOps.td, mlir/lib/Dialect/OpenACC/Transforms ACCRecipeMaterialization.cpp

[mlir][acc] Preserve section bounds on acc.reduction_init (#210443)

When `acc.reduction_init` is created from `acc.reduction`, its bounds
are lost because they only live as values folded into the init region's
body. Those bounds describe the legal indexing of the section: the
produced view of a (possibly base-adjusted, compact) reduction temporary
must be indexed with the same bounds as the original array.

Carry the acc.bounds as optional operands on acc.reduction_init so this
indexing information is directly available. The operands are optional,
so scalar/whole-array reductions and existing IR are unaffected.
DeltaFile
+19-2mlir/include/mlir/Dialect/OpenACC/OpenACCCGOps.td
+14-0mlir/test/Dialect/OpenACC/ops-cg.mlir
+4-2mlir/lib/Dialect/OpenACC/Transforms/ACCRecipeMaterialization.cpp
+37-43 files

LLVM/project fc77e62llvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+144-30llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+29-29llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+435-18914 files not shown
+855-33020 files

LLVM/project 824408allvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+144-30llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+47-23llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+453-18316 files not shown
+931-33122 files

LLVM/project b4a444alibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths (#209374)

Updates realpath to call the `getcwd` linux syscall wrapper to resolve
cwd-relative queries.
DeltaFile
+84-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+103-44 files

LLVM/project 27e3045clang/test/CodeGenCoroutines gh188230-coro-await-elidable-suspend-never-final.cpp, llvm/include/llvm/Transforms/Coroutines CoroShape.h

[Coroutines] Fix CoroElide resume fallthrough cleanup

Fixes https://github.com/llvm/llvm-project/issues/188230

A CoroElide noalloc variant stores the cleanup clone in the frame destroy
slot, while ordinary ramp entry stores the destroy clone. A resume clone
that falls through to coro.end previously loaded that slot after running
user cleanup and tail-called the selected clone. The continuation can free
the enclosing frame before that late load, producing an ASan use-after-free.
Moreover, both the destroy and cleanup clones repeat the promise cleanup
already performed by the resume clone, so heap entry double-destroys the
promise.

Cache the destroy slot on resume entry, before user code can resume a
continuation. Use the cached value only to distinguish an elided frame from
a heap frame and make the existing coro.free result null for the elided case.
The resume clone then performs shared cleanup once and directly frees only a
heap frame. This is enabled only when CoroElide creates a noalloc variant,
since other switch coroutines cannot receive an elided frame. Register the

    [7 lines not shown]
DeltaFile
+84-0llvm/test/Transforms/Coroutines/coro-split-resume-fallthrough-destroy-slot.ll
+84-0clang/test/CodeGenCoroutines/gh188230-coro-await-elidable-suspend-never-final.cpp
+74-7llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+6-3llvm/test/Transforms/Coroutines/coro-split-00.ll
+6-3llvm/test/Transforms/Coroutines/coro-split-addrspace.ll
+1-0llvm/include/llvm/Transforms/Coroutines/CoroShape.h
+255-131 files not shown
+256-137 files

LLVM/project 8b441f9llvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyMCLowerPrePass.cpp

fix

Created using spr 1.3.7
DeltaFile
+2-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-2llvm/lib/Target/WebAssembly/WebAssemblyMCLowerPrePass.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+5-53 files

LLVM/project 3161bf1lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/unittests/Process/gdb-remote ProcessGDBRemoteTest.cpp

Use timetamp
DeltaFile
+9-6lldb/unittests/Process/gdb-remote/ProcessGDBRemoteTest.cpp
+6-4lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+15-102 files

LLVM/project 0978d94lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp ProcessGDBRemote.h, lldb/unittests/Process/gdb-remote ProcessGDBRemoteTest.cpp CMakeLists.txt

[lldb] Contribute the GDB-remote packet history to diagnostics bundles

Register a Diagnostics artifact provider from ProcessGDBRemote so a
diagnostics bundle captures the GDB-remote packet history, the same data
"process plugin packet history" prints.
DeltaFile
+103-0lldb/unittests/Process/gdb-remote/ProcessGDBRemoteTest.cpp
+19-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+4-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+1-0lldb/unittests/Process/gdb-remote/CMakeLists.txt
+127-04 files

LLVM/project 44cbe4ellvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+135-28llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+44-13llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+441-17113 files not shown
+809-31019 files

LLVM/project 05438f5llvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+144-30llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+29-29llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+435-18914 files not shown
+855-33020 files

LLVM/project d868f26llvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+125-26llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+44-13llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+431-16912 files not shown
+772-29618 files

LLVM/project 0d7c36bllvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+135-28llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+45-12llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+442-17013 files not shown
+809-31019 files

LLVM/project 32221d9llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-fixed-length-masked-gather.ll sve-fixed-length-masked-scatter.ll

[AArch64] Add lowering for fixed-vector bf16 masked gather/scatter. (#210273)

Similar to #208744, this makes sure that bf16 masked gather and scatter
work with fixed-length sve enabled. Without +bf16 the operations are
currently expanded pre-isel, but that will not be fixed in this patch as
it is a larger change and this patch is intended to be ported to the
branch.
DeltaFile
+155-2llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll
+145-4llvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll
+5-4llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+305-103 files

LLVM/project fb0ecd6llvm/lib/Target/WebAssembly WebAssembly.h WebAssemblyCFGStackify.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+125-26llvm/lib/Target/WebAssembly/WebAssembly.h
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+44-13llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+431-16912 files not shown
+772-29618 files

LLVM/project fd95b12llvm/lib/Target/WebAssembly WebAssemblyCFGStackify.cpp WebAssembly.h

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+125-25llvm/lib/Target/WebAssembly/WebAssembly.h
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+45-12llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+432-16712 files not shown
+772-29518 files

LLVM/project bc23527llvm/lib/Target/WebAssembly WebAssemblyCFGStackify.cpp WebAssembly.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+125-25llvm/lib/Target/WebAssembly/WebAssembly.h
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+45-12llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+432-16712 files not shown
+772-29518 files

LLVM/project 06d0d51llvm/lib/Target/WebAssembly WebAssemblyCFGStackify.cpp WebAssembly.h

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+115-23llvm/lib/Target/WebAssembly/WebAssembly.h
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+45-12llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+422-16511 files not shown
+736-28317 files

LLVM/project 1107531llvm/lib/Target/WebAssembly WebAssemblyCFGStackify.cpp WebAssembly.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+115-23llvm/lib/Target/WebAssembly/WebAssembly.h
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+44-13llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+421-16611 files not shown
+736-28317 files

LLVM/project e0c3bb1llvm/lib/Target/WebAssembly WebAssemblyCFGStackify.cpp WebAssembly.h

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+83-68llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+105-21llvm/lib/Target/WebAssembly/WebAssembly.h
+78-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+46-21llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
+55-11llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+45-12llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+412-16310 files not shown
+677-26316 files

LLVM/project d592aa5clang/lib/Parse ParseDecl.cpp, clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.type.general p2.cpp

[Clang] Fixed auto parsing regression with brace initialization (#210347)

The PR #208552 has introduced a regression where brace initialization
was not taken into account `auto foo{12}`. It was also breaking
`dcl.type.general` p2 rules, which is also now tested.
DeltaFile
+11-0clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.type.general/p2.cpp
+4-4clang/lib/Parse/ParseDecl.cpp
+15-42 files

LLVM/project 8d9a772lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp ProcessGDBRemote.h, lldb/unittests/Process/gdb-remote ProcessGDBRemoteTest.cpp CMakeLists.txt

[lldb] Contribute the GDB-remote packet history to diagnostics bundles

Register a Diagnostics artifact provider from ProcessGDBRemote so a
diagnostics bundle captures the GDB-remote packet history, the same data
"process plugin packet history" prints.
DeltaFile
+103-0lldb/unittests/Process/gdb-remote/ProcessGDBRemoteTest.cpp
+19-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+4-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+1-0lldb/unittests/Process/gdb-remote/CMakeLists.txt
+127-04 files

LLVM/project 2120490lldb/include/lldb/Core Diagnostics.h, lldb/source/Core Diagnostics.cpp

[lldb] Add an artifact provider mechanism to Diagnostics (#210417)

Add a hook that lets a subsystem contribute a file to the diagnostics
bundle, without breaking layering and making Core depend on it. A plugin
registers an ArtifactProvider callback and a file name via AddArtifactProvider.
Providers run when a bundle is collected, and each one that yields
content is written into the bundle and recorded in the report's
attachments.

This restores, in a simpler form, the collection point that the removed
Diagnostics callback mechanism offered. The motivating consumer is the
downstream Swift health check, which registers a provider to write its
"swift-healthcheck.log" into the bundle. Unlike the old callback, a
provider does not open or write its own file: it just returns the
contents as a string and Diagnostics handles the rest.
DeltaFile
+140-0lldb/unittests/Core/DiagnosticsTest.cpp
+30-0lldb/source/Core/Diagnostics.cpp
+30-0lldb/include/lldb/Core/Diagnostics.h
+1-0lldb/unittests/Core/CMakeLists.txt
+201-04 files

LLVM/project 965fa41llvm/lib/Target/AArch64/MCTargetDesc AArch64MCLFIRewriter.cpp, llvm/test/MC/AArch64/LFI debug-info.s

[LFI][AArch64] Fix Segfault due to infinite recursion in LFI rewriter (#210267)

When emitting a deferred LR guard, if debug info is enabled, the
emission of the guard instruction can trigger temporary labels (e.g. for
DWARF line entries), which recursively calls onLabel. Since
DeferredLRGuard was only set to false after emission, the nested call
would re-emit the guard, causing infinite recursion which leads to a
SegFault due to stack overflow. This was detected compiling
ubsan_minimal_handlers.cpp in compiler-rt. I fixed it by using the
existing recursion guard (Guard).
DeltaFile
+13-0llvm/test/MC/AArch64/LFI/debug-info.s
+3-0llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
+16-02 files

LLVM/project 9eb2dc0libcxx/utils/libcxx/test format.py, llvm/utils/lit/lit TestRunner.py

Revert "[lit] Delete the external shell" (#210433)

Reverts llvm/llvm-project#209571

Breaks some buildbots:
1.
https://lab.llvm.org/buildbot/#/builders/232/builds/3690/steps/11/logs/stdio
2. https://lab.llvm.org/buildbot/#/builders/222/builds/11180
DeltaFile
+135-5llvm/utils/lit/lit/TestRunner.py
+11-0llvm/utils/lit/lit/formats/shtest.py
+4-1libcxx/utils/libcxx/test/format.py
+150-63 files

LLVM/project 284c1a1lldb/docs/use variable.md, lldb/source/API SBValue.cpp

[LLDB] Enable SBTypeSynthetic manipulation for SBValue instances (#209056)

Allow manipulating the scripted synthetic children frontend selection
process for individual `SBValue` instances.

The motivating use-case is supporting custom data structures, type
erasure systems, and facilitating debugging handle based C APIs. Below
is an example of such a use-case of an anonymized 3rd party C library:
```C
using ErrorCode = int;
using Handle = void*;

using FooHandle = Handle;
using BarHandle = Handle;

struct ArrayOfHandles {
  int size;
  Handle* data;
};

    [12 lines not shown]
DeltaFile
+93-0lldb/test/API/python_api/sbvalue_set_type_synthetic/main.cpp
+89-0lldb/test/API/python_api/sbvalue_set_type_synthetic/library_support.py
+66-0lldb/test/API/python_api/sbvalue_set_type_synthetic_override/TestSBValueSetTypeSyntheticOverride.py
+65-0lldb/test/API/python_api/sbvalue_set_type_synthetic/TestSBValueSetTypeSynthetic.py
+37-0lldb/docs/use/variable.md
+27-0lldb/source/API/SBValue.cpp
+377-011 files not shown
+478-417 files

LLVM/project a12cbbcclang/include/clang/ScalableStaticAnalysis BuiltinAnchorSources.def, clang/lib/ScalableStaticAnalysis/Analyses CMakeLists.txt

[SSAF] Add EntitySourceLocationExtractor (#210201)

Walks every entity-producing decl in the TU and emits
SourceLocationRecord(s) per entity-kind anchor:

* Identifier-bearing decls (FunctionDecl/VarDecl/FieldDecl/ RecordDecl):
Decl::getLocation().
* Synthetic function return-slot entity:
FD->getReturnTypeSourceRange().getBegin().
* ParmVarDecl (named or unnamed): P->getTypeSpecStartLoc().

Skips compiler-synthesized implicits and builtins via the getEntityName
gate, system-header decls via SourceManager, and silently drops records
whose location is invalid or whose file path cannot be canonicalized via
real_path.

Assisted-By: Claude Opus 4.7
DeltaFile
+479-0clang/unittests/ScalableStaticAnalysis/Analyses/SharedLexicalRepresentation/EntitySourceLocationExtractorTest.cpp
+188-0clang/lib/ScalableStaticAnalysis/Analyses/SharedLexicalRepresentation/EntitySourceLocationExtractor.cpp
+1-0clang/include/clang/ScalableStaticAnalysis/BuiltinAnchorSources.def
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+670-05 files

LLVM/project 986cdd8llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlanEVLTailFolding.cpp

[VPlan] Move EVL-based transforms to VPlanEVLTransforms.cpp (NFC) (#209883)

VPlanTransforms.cpp has become quite big and is one of the top 20 most
expensive files in terms of compile-time.


https://llvm-compile-time-tracker.com/compare_clang.php?from=b8ba3c2b72cb53268129bbecfeb4ba7ec5b8d831&to=96a722a0ace661626d071166635728def97f6820&stat=instructions%3Au

Split off the mostly self-contained EVL related transforms and move them
to a new VPlanEVLTransforms.cpp.

This moves simplifyKnownEVL, optimizeEVLMasks, addExplicitVectorLength,
convertToVariableLengthStep and convertEVLExitCond together with their
EVL-specific static helpers.

Shared helpers used by the moved code (isDeadRecipe,
collectUsersRecursively, recursivelyDeleteDeadRecipes,
getOpcodeOrIntrinsicID and tryToFoldLiveIns, pullOutPermutations) are
promoted to vputils.

PR: https://github.com/llvm/llvm-project/pull/209883
DeltaFile
+18-830llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+657-0llvm/lib/Transforms/Vectorize/VPlanEVLTailFolding.cpp
+178-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+44-0llvm/lib/Transforms/Vectorize/VPlanUtils.h
+1-0llvm/lib/Transforms/Vectorize/CMakeLists.txt
+898-8305 files

LLVM/project f97dcd0llvm/tools/llvm-libtool-darwin llvm-libtool-darwin.cpp

[llvm-libtool-darwin] Ensure filelist buffer is null-terminated (#205115)

[llvm-libtool-darwin] Ensure filelist buffer is null-terminated

In llvm-libtool-darwin.cpp, `MemoryBuffer::getFileOrSTDIN` was
previously called to load the filelist with `RequiresNullTerminator` set
to `false`. However, the retrieved buffer is subsequently passed to
`llvm::line_iterator`.

Since `llvm::line_iterator` explicitly requires its underlying buffer to
be null-terminated, omitting this requirement can result in an
out-of-bounds read/buffer overrun when parsing the file list.

This change fixes the issue by requesting a null-terminated buffer
(`RequiresNullTerminator=true`).

Co-authored-by: Alexander Shaposhnikov <ashaposhnikov at google.com>
DeltaFile
+1-1llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
+1-11 files