LLVM/project e5e4df2clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow PointerFlowAnalysis.cpp

fix clang-format
DeltaFile
+4-4clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+4-41 files

LLVM/project be529fcllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 commutative-copyable-external-phi-use.ll copyable-used-outside-with-immediate-op.ll

[SLP]Fix scheduling of copyable bundle with commutative op used outside parent PHI

The previous (V, Op) pair insert was a no-op since V is unique per iteration.
Replace it with a hasOneUse() fast path plus a check that bails only when I
has a user outside the grandparent PHI's Scalars. Uses within the same
vectorized PHI are tracked by the existing dep machinery; an external user
(e.g. a scalar PHI in a different block) is what trips scheduleBlock's
"must be scheduled at this point" assertion.

Fixes #193315.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/193566
DeltaFile
+55-0llvm/test/Transforms/SLPVectorizer/X86/commutative-copyable-external-phi-use.ll
+13-4llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+6-4llvm/test/Transforms/SLPVectorizer/X86/copyable-used-outside-with-immediate-op.ll
+74-83 files

LLVM/project 80efad5clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp, clang/test/CIR/CodeGen static-local.cpp

[CIR] Support guard COMDAT for weak linkage in LoweringPrepare (#193274)

Static locals inside inline functions get `linkonce_odr` linkage, and
their guard variables need their own COMDAT groups so the linker can
deduplicate them across TUs. We were hitting an NYI error for this case
in `LoweringPrepare`.

The fix is straightforward: set `guard.setComdat(true)`, which makes
`LowerToLLVM` create a per-symbol COMDAT selector — the same thing
classic codegen does at `ItaniumCXXABI.cpp:2798`.

I ran into this while trying to compile the Bullet physics engine
through CIR. Functions like `btMatrix3x3::getIdentity()` use this
pattern (return a reference to a function-local static from an inline
member function), and 6 of the 121 source files were failing because of
it. With this fix, all 121 compile cleanly.

Made with [Cursor](https://cursor.com)
DeltaFile
+56-2clang/test/CIR/CodeGen/static-local.cpp
+1-2clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+57-42 files

LLVM/project 37be084llvm/lib/Transforms/Instrumentation MemProfUse.cpp, llvm/test/Transforms/PGOProfile memprof-inline-call-stacks.ll

Reland: [MemProf] Dump inline call stacks as optimization remarks (#193545)

This iteration limits the test case to x86_64-linux to prevent bot
failures.

---

This patch teaches the MemProf matching pass to dump inline call
stacks as analysis remarks like so:

frame: 704e4117e6a62739 main:10:5
frame: 273929e54b9f1234 foo:2:12
inline call stack: 704e4117e6a62739,273929e54b9f1234

The output consists of two types of remarks:

- "frame": Acts as a dictionary mapping a unique MD5-based FrameID
  to source information (function name, line offset, and column).


    [5 lines not shown]
DeltaFile
+65-2llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
+39-0llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
+104-22 files

LLVM/project 54759dfclang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow PointerFlowAnalysis.cpp, clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp

Change 'result()' to 'getResult()'
DeltaFile
+1-1clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+1-1clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+2-22 files

LLVM/project a07fb84clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp

fix clang-format
DeltaFile
+6-5clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+6-51 files

LLVM/project 5b754b6llvm/test/CodeGen/AMDGPU/NextUseAnalysis spill-vreg-many-lanes.mir acyclic-770bb.mir

Merge remote-tracking branch 'origin/users/ziqingluo/PR-172429193-3' into users/ziqingluo/PR-174874942-1

 Conflicts:
        clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
        clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlow.cpp
        clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.h
DeltaFile
+275,101-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/spill-vreg-many-lanes.mir
+144,679-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+57,682-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/double-nested-loops-complex-cfg.mir
+41,844-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills2.mir
+40,613-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills1.mir
+37,209-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills3.mir
+597,128-03,178 files not shown
+976,528-61,1043,184 files

LLVM/project da7ee36clang/docs ReleaseNotes.rst, clang/lib/Sema SemaTemplateInstantiate.cpp SemaTemplateDeductionGuide.cpp

Revert "[clang] fix matching constrained out-of-line definitions of class specialization member function templates" (#193558)

Reverts llvm/llvm-project#192806 , which is causing the compiler to
reject some valid code.
DeltaFile
+50-48clang/lib/Sema/SemaTemplateInstantiate.cpp
+2-76clang/test/SemaTemplate/concepts-out-of-line-def.cpp
+45-6clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+0-1clang/docs/ReleaseNotes.rst
+97-1314 files

LLVM/project 8f2935cclang/bindings/python/tests/cindex test_version.py

Loosen check for clang version string in test to work when setting CLANG_VENDOR. (#192961)

We are trying to update our buildbot to use the `-DCLANG_VENDOR` and
`-DCLANG_VENDOR_UTI` options, but need to fix some tests first. This is
one of them.

---------

Co-authored-by: Jannick Kremer <jannick.kremer at mailbox.org>
Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
DeltaFile
+1-1clang/bindings/python/tests/cindex/test_version.py
+1-11 files

LLVM/project 8433d92llvm/lib/IR Verifier.cpp, llvm/test/Assembler fpmath.ll

IR: Allow !fpmath metadata on homogeneous float structs

This matches the logic for fast math flags / nofpclass, and allows
marking llvm.sincos calls with !fpmath.
DeltaFile
+19-0llvm/test/Assembler/fpmath.ll
+1-1llvm/lib/IR/Verifier.cpp
+20-12 files

LLVM/project 38874e1llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel ssubsat.ll subo.ll

[GlobalISel] Change SSUBO to do (LHS < RHS) XOR (RESULT < 0) (#191744)

Refactor lowerSADDO_SSUBO in LegalizerHelper so addition and subtraction
use separate, clearly named paths.

SADDO: unchanged meaning: overflow when (result < LHS) disagrees with
(RHS < 0) (signed compares).

SSUBO: use the equivalent formulation: overflow when (LHS < RHS)
disagrees with (result < 0) instead of (result < LHS) vs (RHS > 0).
DeltaFile
+785-891llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
+156-156llvm/test/CodeGen/AMDGPU/GlobalISel/subo.ll
+76-76llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
+27-27llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
+18-12llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+10-10llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-addo-subo-rv32.mir
+1,072-1,1724 files not shown
+1,094-1,19410 files

LLVM/project 9e64907libc/test CMakeLists.txt, libc/test/include CMakeLists.txt

[libc] Replace check-libc with lit-based test execution (#184163)

Now that check-libc-lit has been validated alongside check-libc, make
lit the default test runner by renaming check-libc-lit to check-libc.
Remove the old CMake-driven check-libc custom target.
DeltaFile
+7-10libc/test/CMakeLists.txt
+1-2libc/test/integration/CMakeLists.txt
+1-2libc/test/include/CMakeLists.txt
+1-1libc/utils/libctest/format.py
+10-154 files

LLVM/project 6e4fb52llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-dot-product.ll partial-reduce-sub.ll

[VPlan] Use MaxRuntimeStep in materializeVectorTC to simplify middle br. (#193067)

For scalable vectors, pass the maximum runtime step to
materializeVectorTripCount. Use it to simplify the vector trip count to
the original trip count directly, if MaxRuntimeSteps divides the
original trip count without remainder.

In those cases, all lower power-of-2 vscales will divide the rip count
without remainder.

PR: https://github.com/llvm/llvm-project/pull/193067
DeltaFile
+32-56llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll
+23-50llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
+8-17llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll
+8-15llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
+8-12llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
+14-5llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+93-1559 files not shown
+129-20815 files

LLVM/project 4f1be83compiler-rt/cmake config-ix.cmake, compiler-rt/cmake/Modules CompilerRTDarwinUtils.cmake

[compiler-rt] [Darwin] Enable arm64e tests on macOS (#193391)

This enables compiler-rt tests on Darwin arm64e (when supported by the
linker).

Note that arm64e is not enabled for sanitizers yet, but this does add
test coverage for builtins.

rdar://175303507
DeltaFile
+17-18compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+4-0compiler-rt/cmake/config-ix.cmake
+21-182 files

LLVM/project 4408722llvm/lib/CodeGen MachineBlockHashInfo.cpp

[NFC][MachineBlockHashInfo] Add static asserts to guard agains hash_16_bytes changes (#192862)

`hashing::detail::hash_16_bytes` is not guaranteed to be stable across
different versions of LLVM, it can change any time.

We put asserts here, so if it changed, author don't forget to work
around them here.
DeltaFile
+7-2llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+7-21 files

LLVM/project 91fe498llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/DebugInfo/X86 sdag-load-sext-trunc.ll sdag-load-sext.ll

Revert "[SelectionDAG] Salvage debuginfo when combining load and z|s ext instrs. (#188544)" (#193554)

This reverts commit fe5d5b762ab3b92b18b56f413965abb81a459ac6.

Reverted because of https://github.com/llvm/llvm-project/issues/193475

clang crashes on valid code at -O{2,3} on x86_64-linux-gnu: Assertion
`N->getOpcode() != ISD::DELETED_NODE && "DELETED_NODE in CSEMap!"'
failed
DeltaFile
+3-89llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+0-70llvm/test/DebugInfo/X86/sdag-load-sext-trunc.ll
+0-61llvm/test/DebugInfo/X86/sdag-load-sext.ll
+0-48llvm/test/DebugInfo/X86/sdag-load-zext-multiple-args.ll
+3-2684 files

LLVM/project 5d01431lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime AppleObjCRuntimeV2.cpp AppleObjCRuntime.cpp, lldb/source/Plugins/SystemRuntime/MacOSX SystemRuntimeMacOSX.cpp

[lldb] Scope symbol lookups to specific modules in ObjC/SystemRuntime plugins (#193379)

This narrows `FindSymbolsWithNameAndType` calls from searching all
loaded images to the specific module that owns the symbol (Foundation,
CoreFoundation, libBacktraceRecording.dylib).

The arclite fallback in `CalculateHasNewLiteralsAndIndexing` still
searches all images because libarclite is a static library linked into
the main executable.
DeltaFile
+21-20lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
+16-6lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
+9-4lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
+46-303 files

LLVM/project c3c8e40runtimes/cmake/Modules HandleLibC.cmake

[Runtimes] Allow HandleLibc.cmake to be called multiple times (#193540)

Summary:
This needs to check to see if it's already been called now that we want
to use it more places than just libcxx.
DeltaFile
+4-0runtimes/cmake/Modules/HandleLibC.cmake
+4-01 files

LLVM/project d9bbb90llvm/test/CodeGen/AArch64 insertextract.ll, llvm/test/CodeGen/AMDGPU promote-alloca-vector-dynamic-idx-bitcasts-llc.ll

[LegalizeTypes][DAG] Use SHL(X,1) instead of ADD(X,X) for variable vector indices for extraction/insertion legalization (#188277)

Avoid ADD(X,X) as it doesn't correctly handle undef elements and helps avoid some FREEZE() fold headaches

Resurrects #86857
DeltaFile
+76-174llvm/test/CodeGen/AMDGPU/promote-alloca-vector-dynamic-idx-bitcasts-llc.ll
+20-24llvm/test/CodeGen/X86/insertelement-var-index.ll
+14-12llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.ll
+8-10llvm/test/CodeGen/X86/vector-extend-inreg.ll
+9-8llvm/test/CodeGen/ARM/combine-vmovdrr.ll
+8-8llvm/test/CodeGen/AArch64/insertextract.ll
+135-23610 files not shown
+165-26616 files

LLVM/project 8f1b0f6lldb/packages/Python/lldbsuite/test decorators.py, lldb/packages/Python/lldbsuite/test/make Makefile.rules

[lldb] Decorate tests that use threading (#193117)

Add a new decorator `skipIfTargetDoesNotSupportThreads` to skip tests
that use threading. This is motivated by running the test suite
targeting WebAssembly, where `wasip1` does not support threads. There
are variants that do support threading (e.g. `wasip1-threading`) that
the current implementation accounts for.
DeltaFile
+12-0lldb/packages/Python/lldbsuite/test/decorators.py
+1-1lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+1-0lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
+1-0lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
+1-0lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
+1-0lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
+17-184 files not shown
+101-190 files

LLVM/project eb427a4libc/shared rpc_server.h rpc.h

[libc][NFC] Fix minor RPC warnings (#192997)

Summary:
Fix some warnings that show up with strict warnings set, reduces noise
when used as a header onyl library in projects.
DeltaFile
+24-12libc/shared/rpc_server.h
+2-2libc/shared/rpc.h
+26-142 files

LLVM/project 18bd7e4utils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel

[Bazel] Fixes e52df04 (#193548)

This fixes e52df047f762d651404285dd8716f6bfa513b104.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+1-01 files

LLVM/project a104afallvm/test/Assembler fpmath.ll

Fix missing FileCheck

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
DeltaFile
+1-1llvm/test/Assembler/fpmath.ll
+1-11 files

LLVM/project 2f5ccd4mlir/lib/Target/LLVM CMakeLists.txt

[MLIR][XeGPU] Do not use ocloc lib if LLVM_BUILD_LLVM_DYLIB is ON (#193259)

This fixes LLVM dylib build in environments with installed ocloc.
The problem is that LLVM shared lib is never linked with ocloc and the
linker fails to resolve the symbols `oclocInvoke` and `oclocFreeOutput`.
DeltaFile
+16-13mlir/lib/Target/LLVM/CMakeLists.txt
+16-131 files

LLVM/project 49512ccclang/test/CodeGen/SystemZ builtins-systemz-zvector.c, llvm/test/CodeGen/AMDGPU load-constant-i8.ll load-global-i8.ll

rebase

Created using spr 1.3.7
DeltaFile
+1,117-1,613llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
+918-920llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
+781-1,020llvm/test/CodeGen/X86/ssub_sat_vec.ll
+897-867clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
+820-816llvm/test/CodeGen/AMDGPU/load-global-i8.ll
+501-737llvm/test/CodeGen/RISCV/rvv/fshr-fshl-vp.ll
+5,034-5,973723 files not shown
+29,941-21,202729 files

LLVM/project 3211648clang/test/CodeGen/SystemZ builtins-systemz-zvector.c, llvm/test/CodeGen/AMDGPU load-constant-i8.ll load-global-i8.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,117-1,613llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
+918-920llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
+781-1,020llvm/test/CodeGen/X86/ssub_sat_vec.ll
+897-867clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
+820-816llvm/test/CodeGen/AMDGPU/load-global-i8.ll
+501-737llvm/test/CodeGen/RISCV/rvv/fshr-fshl-vp.ll
+5,034-5,973723 files not shown
+29,941-21,202729 files

LLVM/project b0166e7libc/cmake/modules LLVMLibCTestRules.cmake

[libc] Fix .params file generation for integration tests (#193544)

Update add_integration_test to include loader arguments in the .params
file. The lit format already supported three-part .params files, but
add_integration_test was only generating two parts.
DeltaFile
+14-9libc/cmake/modules/LLVMLibCTestRules.cmake
+14-91 files

LLVM/project bd09b03llvm/include/llvm/ADT Hashing.h

[NFC][ADT] Make a few functions constexpr (#193302)

So we can use them in static_asserts in #192862.

It converts what ever is trivially possible. In future more can
be converted as well, if we constexpr fetch32/fetch64.

---------

Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
DeltaFile
+19-19llvm/include/llvm/ADT/Hashing.h
+19-191 files

LLVM/project 7a63329clang/lib/Basic DarwinSDKInfo.cpp, clang/tools/clang-installapi Options.cpp

Revert "[Support][JSON] Use `std::unordered_map` for object storage" (#193549)

Reverts llvm/llvm-project#171230 to look at failures.
DeltaFile
+0-299llvm/benchmarks/JSONParserBM.cpp
+6-15llvm/include/llvm/Support/JSON.h
+7-7clang/lib/Basic/DarwinSDKInfo.cpp
+2-2llvm/lib/Support/JSON.cpp
+2-2clang/tools/clang-installapi/Options.cpp
+0-2lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h
+17-3276 files not shown
+19-33312 files

LLVM/project 7136a4blld/ELF ScriptParser.cpp

[ELF] Factor linker-script dispatch loops into helpers. NFC (#193547)

Extract the per-token dispatch inside readLinkerScript, readSections,
readOutputSectionDescription, and readMemory into four new helpers.
Preparatory for making INCLUDE run a nested parse (#193427).
DeltaFile
+143-125lld/ELF/ScriptParser.cpp
+143-1251 files