LLVM/project 508bdbcllvm/test/Transforms/LoopVectorize/AArch64 induction-costs-sve.ll

[LV][NFC] Pre-commit SCEV check tests for PR #216975 (#217037)
DeltaFile
+332-205llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
+332-2051 files

LLVM/project 1a2651bflang/include/flang/Semantics semantics.h, flang/lib/Lower PFTBuilder.cpp

[flang] Do not branch to a FORMAT statement from an assigned GO TO

Label analysis already classifies which labeled statements may be named by
a statement that branches.  Record the positions of those statements in the
semantics context and consult it when lowering records the targets of an
assigned GO TO, so that a FORMAT statement is not given a target block.

A GO TO whose variable holds only a format label now reaches the run-time
error instead of branching into the FORMAT statement.

Co-Authored-By: Claude
DeltaFile
+75-0flang/test/Lower/assigned-goto-format-target.f90
+18-2flang/lib/Lower/PFTBuilder.cpp
+19-0flang/include/flang/Semantics/semantics.h
+14-0flang/lib/Semantics/resolve-labels.cpp
+6-0flang/test/Semantics/assign07.f90
+132-25 files

LLVM/project a6e40delibc/shared/math sqrtf128.h, libc/src/__support/math sqrtf128.h

[libc] Make sqrtf128 use emulated float128 (#216500)
DeltaFile
+148-66libc/test/src/math/smoke/sqrtf128_test.cpp
+46-20libc/test/src/math/sqrtf128_test.cpp
+6-9libc/src/__support/math/sqrtf128.h
+0-6libc/shared/math/sqrtf128.h
+5-0libc/test/src/math/smoke/generic_sqrtf128_test.cpp
+5-0libc/src/math/sqrtf128.h
+210-10122 files not shown
+241-11328 files

LLVM/project b81f88clldb/test/API/functionalities/scripted_frame_provider/register_command_api_mutex_deadlock TestFrameProviderRegisterCommandAPIMutexDeadlock.py, lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex sbmutex_frame_provider.py TestHoldMutexNoDeadlock.py

[lldb] Fix scripted frame provider cross-thread re-entrant deadlock (#208242)

`GetStoppedExecutionContext` unconditionally blocked acquiring the
target's API mutex. A thread already holding that mutex (for example a
`bt` command thread, through `CommandObjectParsed`'s
`eCommandTryTargetAPILock`) can end up waiting on a `StackFrameList`
lock held by another thread (for example the debugger's event-handler
thread) that is itself blocked re-acquiring the API mutex from inside a
scripted frame provider's Python code that touches the SB API. This is a
classic AB-BA deadlock.

This patch introduces
`Policy::Capabilities::can_bypass_target_api_mutex`, pushed around every
scripted-extension callback in `ScriptedPythonInterface`:
`CreatePluginObject`, `Dispatch` and `CallStaticMethod`. A thread
running one of these callbacks isn't servicing a client-facing SB API
entry point; it doesn't need the same locking guarantees a top-level SB
API call does for any of the calls it makes during that window, not just
the one that happens to deadlock.

    [24 lines not shown]
DeltaFile
+111-0lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/TestSBMutexReflectsTargetMutex.py
+89-0lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/TestHoldMutexNoDeadlock.py
+87-0lldb/test/API/functionalities/scripted_frame_provider/register_command_api_mutex_deadlock/TestFrameProviderRegisterCommandAPIMutexDeadlock.py
+84-0lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/sbmutex_frame_provider.py
+61-0lldb/unittests/Target/TargetAPIMutexTest.cpp
+55-0lldb/unittests/Interpreter/TestScriptedInterface.cpp
+487-018 files not shown
+651-2124 files

LLVM/project 61036c3llvm/include/llvm/ObjectYAML ContiguousBlobAccumulator.h, llvm/lib/ObjectYAML ContiguousBlobAccumulator.cpp COFFEmitter.cpp

[ObjectYAML][NFC] Finalize COFF symbol table offset in writeCOFF (#212671)

Move NumberOfSections and NumberOfSymbols initialization out of
layoutCOFF. Derive PointerToSymbolTable from the live output offset and
write its final value back to the emitted header.

Add an endian-aware ContiguousBlobAccumulator::updateDataAt overload.

This is a preparatory step toward removing the separate COFF layout
pass.
DeltaFile
+82-0llvm/unittests/ObjectYAML/ContiguousBlobAccumulatorTest.cpp
+40-35llvm/lib/ObjectYAML/COFFEmitter.cpp
+8-1llvm/lib/ObjectYAML/ContiguousBlobAccumulator.cpp
+7-0llvm/include/llvm/ObjectYAML/ContiguousBlobAccumulator.h
+1-0llvm/unittests/ObjectYAML/CMakeLists.txt
+138-365 files

LLVM/project 03bce6elibc/src/math/generic CMakeLists.txt

nit
DeltaFile
+1-1libc/src/math/generic/CMakeLists.txt
+1-11 files

LLVM/project 0ee7bd3utils/bazel/llvm-project-overlay/libc BUILD.bazel

remove dep from bazel
DeltaFile
+0-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+0-11 files

LLVM/project bd9bb4clibc/src/__support/builtins CMakeLists.txt

fix conflict
DeltaFile
+11-7libc/src/__support/builtins/CMakeLists.txt
+11-71 files

LLVM/project 451124fclang/include/clang/AST APValue.h, clang/lib/AST APValue.cpp

[clang][AST] Remove APValue float/int double-initialization (#217100)

Every call to `MakeInt()` and `MakeFloat()` used to initialize the
backing `APSInt`/`APFloat`, but they were also all followed by a
`setInt()`/`setFloat()` call.

Just pass the value to `MakeInt()` and `MakeFloat()` directly, which is
also what most of the other `Make*` functions do.
DeltaFile
+16-6clang/include/clang/AST/APValue.h
+2-4clang/lib/AST/APValue.cpp
+18-102 files

LLVM/project 8bcec58orc-rt/include/orc-rt-utils CommandLine.h

[orc-rt] Remove unused header. NFC. (#217206)
DeltaFile
+0-1orc-rt/include/orc-rt-utils/CommandLine.h
+0-11 files

LLVM/project e934774bolt/lib/Passes IdenticalCodeFolding.cpp, bolt/test safe-icf-relative-vtable.cpp

[BOLT] ICF: Use nameStartsWith instead of getName (#206999)

The getName method returns the name of the first symbol for a given
BinaryData. If a symbol is associated with the same address as a vtable
symbol, the ICF check for vtable mangled names may behave unexpectedly.
The correct approach is to use nameStartsWith, which checks all symbols
associated with the BinaryData.
DeltaFile
+8-2bolt/test/safe-icf-relative-vtable.cpp
+2-2bolt/lib/Passes/IdenticalCodeFolding.cpp
+10-42 files

LLVM/project 3f1df3bllvm/lib/Target/M68k M68kTargetMachine.cpp

[M68k] Fix build after Legalizer rename #217046 (#217207)
DeltaFile
+1-1llvm/lib/Target/M68k/M68kTargetMachine.cpp
+1-11 files

LLVM/project fcec6callvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange inner-latch-defs-iv.ll

[LoopInterchange] Bail out if a PHI would be cloned into the new latch (#212742)

The transformation stage of LoopInterchange splits the inner loop latch
and clones the necessary instructions from the original latch into the
new one. PHI nodes cannot be cloned this way, so the legality check is
supposed to reject cases where such a clone would happen. However, it
missed some cases, allowing a PHI node to be cloned and invalid IR to be
produced.

This patch fixes the issue by making the legality check follow all the
instruction trees the transformation would clone, i.e., the use-def
chains of both the exit condition and the induction variable updates,
and reject the interchange if a PHI node other than the induction PHIs
appears in them. Previously, the check only ran when the inner loop
contains subloops, only followed the use-def chains of the exit
condition, and only rejected PHI nodes placed in the latch block.

Note that this is a stop-gap solution, especially because the legality
check strongly depends on the details of the transformation stage. The

    [3 lines not shown]
DeltaFile
+28-30llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+58-0llvm/test/Transforms/LoopInterchange/inner-latch-defs-iv.ll
+86-302 files

LLVM/project ae99d61llvm/include/llvm/CodeGen/GlobalISel Localizer.h LoadStoreOpt.h, llvm/lib/CodeGen/GlobalISel Localizer.cpp LoadStoreOpt.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+54-28llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
+25-10llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+1-9llvm/lib/CodeGen/GlobalISel/Localizer.cpp
+0-5llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
+2-2llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+2-1llvm/test/CodeGen/AArch64/GlobalISel/store-merging.mir
+84-556 files not shown
+90-5912 files

LLVM/project cca79dallvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h Localizer.h, llvm/lib/CodeGen/GlobalISel GlobalISel.cpp Localizer.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+54-28llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
+45-23llvm/lib/CodeGen/GlobalISel/Localizer.cpp
+26-14llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
+25-10llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+4-4llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+2-2llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
+156-818 files not shown
+169-8814 files

LLVM/project b29eb4bllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV condops.ll

[RISCV] Lower (select c, x, -x) -> (sub (czero_eqz x, c), (czero_nez x, c)) with Zicond. (#217181)

Assisted-by: Claude
DeltaFile
+141-0llvm/test/CodeGen/RISCV/condops.ll
+22-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+163-22 files

LLVM/project c515779llvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h

fix

Created using spr 1.3.7
DeltaFile
+4-0llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+4-01 files

LLVM/project 9b9a554llvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+4-0llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+4-01 files

LLVM/project 22bc01dllvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h

fix

Created using spr 1.3.7
DeltaFile
+1-1llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+1-11 files

LLVM/project 3d0ce83llvm/lib/Object GOFFObjectFile.cpp

Address comments in GOFFObjectFile.cpp
DeltaFile
+18-19llvm/lib/Object/GOFFObjectFile.cpp
+18-191 files

LLVM/project ab3c202llvm/lib/Object ArchiveWriter.cpp

Remove unnecessary new line
DeltaFile
+0-1llvm/lib/Object/ArchiveWriter.cpp
+0-11 files

LLVM/project 5a020ballvm/include/llvm/Object GOFFObjectFile.h, llvm/lib/Object GOFFObjectFile.cpp ArchiveWriter.cpp

[llvm-ar][GOFF] Implement symbol attributes for GOFF archives

z/OS archive symbol table entries contain a 32-bit attribute word
alongside each member offset. The low three bits encode:
  bit 2 (0x4): 64-bit addressing (AMODE 64)
  bit 1 (0x2): XPLink calling convention
  bit 0 (0x1): Writable Static Area (WSA)

Previously in e2c8fa0, llvm-ar wrote zero for
these attributes. This patch reads them from GOFF ESD records and stores them
in a SymbolAttrs vector parallel to the existing Symbols vector in
MemberData to emit the correct word per symbol.

These attributes are tested using `llvm-nm --print-armap` implemented in
#212830 within the LIT test.
DeltaFile
+73-0llvm/test/tools/llvm-ar/zos-symattrs.test
+37-14llvm/lib/Object/ArchiveWriter.cpp
+35-0llvm/lib/Object/GOFFObjectFile.cpp
+6-0llvm/include/llvm/Object/GOFFObjectFile.h
+151-144 files

LLVM/project b013bbfllvm/include/llvm/Object Archive.h, llvm/lib/Object Archive.cpp

[llvm-nm][GOFF] Display archive attributes in GOFF archives through --print-armap (#214527)

GOFF archive symbol table entries contain an attribute word in addition
to the archive member offset. The low three bits describe whether the
symbol is 64-bit, uses XPLink, or belongs to the WSA namespace (which
was briefly mentioned in e2c8fa09872cfacba7f73599dcf8557971ebe865).

This patch extends `llvm-nm --print-armap` to print the attribute value
(in hex)
and its decoded description beside a symbol and its corresponding member
when processing a GOFF archive. This will functionality will be used to
help
validate full support for writing GOFF archives in a subsequent llvm-ar
patch.

The output for non-z/OS archives is unchanged.
DeltaFile
+43-6llvm/tools/llvm-nm/llvm-nm.cpp
+48-0llvm/test/tools/llvm-nm/zos-armap.test
+12-0llvm/lib/Object/Archive.cpp
+12-0llvm/include/llvm/Object/Archive.h
+115-64 files

LLVM/project 6b3daeborc-rt/include/orc-rt StringExtras.h, orc-rt/include/orc-rt-utils CommandLine.h

[orc-rt] Drop iostreams from CommandLine.h via formatHelp (#217178)

Add ljust/rjust field-padding helpers to StringOutputStream (a nested
Justified type plus free ljust/rjust functions), the string-building
analogue of std::setw with std::left/std::right.

Use them to replace CommandLineParser::printHelp(std::ostream &, ...)
with formatHelp(std::string_view) -> std::string, built via
StringOutputStream. CommandLine.h no longer includes any iostream header
(<iomanip> dropped, no <ostream> added); callers that want to print
route the returned string themselves, e.g.
  std::cerr << P.formatHelp(argv[0]);

This moves the iostream dependency out of the reusable header and into
the leaf tools (host binaries) that opt into it. Updates the two check
tools and the unit test, which no longer needs a stringstream.
DeltaFile
+41-0orc-rt/test/unit/StringExtrasTest.cpp
+34-0orc-rt/include/orc-rt/StringExtras.h
+6-3orc-rt/include/orc-rt-utils/CommandLine.h
+3-3orc-rt/test/tools/orc-rt-log-check.cpp
+1-3orc-rt/test/unit/CommandLineTest.cpp
+2-2orc-rt/test/tools/orc-rt-process-info-check.cpp
+87-116 files

LLVM/project 60bd2e1llvm/test/tools/llvm-nm/GOFF symbol-types-and-sizes.ll, llvm/tools/llvm-nm llvm-nm.cpp

[llvm-nm][GOFF] Support symbol types and sizes (#207119)

Add GOFF-specific handling in llvm-nm for symbol types and sizes. GOFF
symbols are now classified using their GOFF type, allowing llvm-nm to
distinguish global/local data and text symbol,s as well as undefined
symbols.

This addition to llvm-nm is also useful to display the symbol table of
GOFF object and archives.
DeltaFile
+39-0llvm/test/tools/llvm-nm/GOFF/symbol-types-and-sizes.ll
+24-0llvm/tools/llvm-nm/llvm-nm.cpp
+63-02 files

LLVM/project 6357eb1.github/workflows premerge.yaml

Revert "[CI] Pin runners to us-west cluster" (#217191)
DeltaFile
+7-11.github/workflows/premerge.yaml
+7-111 files

LLVM/project 9835f8allvm/include/llvm/ADT FoldingSet.h

[ADT] Reland: Remove CRTP from FoldingSet and ContextualFoldingSet (NFC) (#217058)

This patch relands #216830 with a fix for MSVC build failures.

In the original patch, FoldingSetInfo was defined as a static constexpr
member variable of FoldingSetImpl. On MSVC, instantiating
FoldingSetImpl<T> (e.g. in LLVMContextImpl.h) eagerly evaluates the
static constexpr member variable and its lambdas containing
static_cast<T *>(N). When T is an incomplete type (such as AttributeImpl
forward-declared in LLVMContextImpl.h and compiled in Metadata.cpp),
this
caused MSVC to fail with C2440 because static_cast requires a complete
type.

This patch wraps FoldingSetInfo in a static getFoldingSetInfo() member
function so that instantiation is deferred until the function is
actually
called, such as during InsertNode or FindNodeOrInsertPos.

Assisted-by: Antigravity
DeltaFile
+65-100llvm/include/llvm/ADT/FoldingSet.h
+65-1001 files

LLVM/project 5d4f09bllvm/include/llvm/CodeGen/GlobalISel LoadStoreOpt.h

fix

Created using spr 1.3.7
DeltaFile
+4-0llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+4-01 files

LLVM/project 739eaa0llvm/test/CodeGen/AMDGPU flat-saddr-atomics.ll llvm.amdgcn.wmma.imm.gfx1250.w32.ll

[AMDGPU] Improve the sequence for initial unclaused VMEM (#216897)
DeltaFile
+250-250llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1250.w32.ll
+232-232llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
+196-196llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imod.gfx1250.w32.ll
+183-183llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
+174-174llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imm.gfx1250.w32.ll
+166-166llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+1,201-1,201200 files not shown
+6,443-6,354206 files

LLVM/project 48b2df9llvm/lib/CodeGen/GlobalISel Localizer.cpp

formatting

Created using spr 1.3.7
DeltaFile
+1-2llvm/lib/CodeGen/GlobalISel/Localizer.cpp
+1-21 files