LLVM/project effbf4a — libc Maintainers.md

[libc] Add sukumarsawant as maintainer for Math (#238008)
DeltaFile
+3-0libc/Maintainers.md
+3-01 files

LLVM/project f56efc1 — llvm/include/llvm/IR Module.h, llvm/lib/CodeGen/AsmPrinter DwarfDebug.cpp

Actually resolve the default in Module
DeltaFile
+2-1llvm/include/llvm/IR/Module.h
+0-2llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+1-1llvm/lib/IR/Module.cpp
+3-43 files

LLVM/project 518f359 — clang/lib/Driver/ToolChains CommonArgs.cpp, clang/test/Driver lto-aix.c

CodeGen: Replace TargetOptions::DebuggerTuning with module flag

Read the debugger tuning from the module's "debugger-tuning" flag instead of
TargetOptions. Delete the now-dead -debugger-tune= cl::opt and the
TargetOptions::DebuggerTuning field.

Update the tests relying on it to directly use the module flag. The cases
that exercise multiple values do a text substitution to swap the value.
Alternatively this could be changed to synthesize the module flag in the
llc flag like some of the other widely used module flags do.

Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
DeltaFile
+24-19llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
+6-16llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+12-9llvm/test/DebugInfo/X86/convert-debugloc.ll
+6-14clang/test/Driver/lto-aix.c
+13-5llvm/test/DebugInfo/X86/debugger-tune.ll
+0-17clang/lib/Driver/ToolChains/CommonArgs.cpp
+61-8058 files not shown
+243-25164 files

LLVM/project f1873b3 — llvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV/pointers decl-param-type-from-mangling-alloca.ll

[SPIRV] Keep the allocated type of allocas passed to mangled declarations (#236532)

Since #230342, applyDemangledPtrArgTypes() records the pointee type
parsed
from a mangled declaration on an alloca passed to it, replacing the
allocated type. The variable is then sized from the callee's parameter
type, e.g. `alloca [8 x i32]` passed to `_Z3fooPj` becomes an OpVariable
of a single uint. Since #232579 this also affects constant-count
allocas.

Handle allocas like GEPs: keep the allocated type and cast the pointer
to
the parameter type at the call.
DeltaFile
+145-0llvm/test/CodeGen/SPIRV/pointers/decl-param-type-from-mangling-alloca.ll
+3-1llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+148-12 files

LLVM/project 56b7c3c — llvm/test/CodeGen/AArch64 umulo-128-legalisation-lowering.ll, llvm/test/tools/UpdateTestChecks/update_llc_test_checks aarch64-function-name.test

[UTC][AArch64] Accept function names with multiple leading underscores (#237947)

ASM_FUNCTION_AARCH64_RE only allowed a single optional leading
underscore before the first letter of a function name (`_?[a-zA-Z]`), so
functions such as `__muloti4` were never matched on ELF AArch64 targets
and update_llc_test_checks.py silently emitted no CHECK lines for them.

Allow any number of leading underscores, add a regression test, and
regenerate CodeGen/AArch64/umulo-128-legalisation-lowering.ll, whose
__muloti4 checks had been hand-edited.

Fixes #237934
DeltaFile
+15-0llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll.expected
+3-3llvm/test/CodeGen/AArch64/umulo-128-legalisation-lowering.ll
+6-0llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_function_name.ll
+2-1llvm/test/tools/UpdateTestChecks/update_llc_test_checks/aarch64-function-name.test
+1-1llvm/utils/UpdateTestChecks/asm.py
+27-55 files

LLVM/project 2527ac9 — llvm/lib/Target/AMDGPU FLATInstructions.td

[AMDGPU][NFC] Use Select/Select_vi for FLAT real instruction encodings (#237849)

Replace explicit SIMCInstr, AssemblerPredicate and DecoderNamespace
settings in FLAT real instruction classes with the Select helpers.
DeltaFile
+6-29llvm/lib/Target/AMDGPU/FLATInstructions.td
+6-291 files

LLVM/project 7a35ab1 — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU wave-shuffle-patterns.ll

[AMDGPU] Recognize workitem.id.x as the lane ID in isThreadID (#231235)

The matchers for wave shuffles use `isThreadID`, which only recognized
the mbcnt()-based form. However,
1) This gets canonicalized to workitem-id-based checks in some cases
and
2) Masking the workitem ID (when we know it changes between waves at a
power of 2) is a valid and typical way to express the lane ID.

Therefore, amend isThreadID to catch these forms of lane ID.

AI disclosure: Claude found this and wrote the code, I looked at and
wrote the commit message and got rid of pointless comments
DeltaFile
+7-23llvm/test/Transforms/InstCombine/AMDGPU/wave-shuffle-patterns.ll
+17-1llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+24-242 files

LLVM/project 2877a81 — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sleef-riscv.ll amdlibm.ll

RuntimeLibcalls: Use element alignment for vector libcall out pointers

The pointer arguments of the vector modf, sincos and sincospi functions
are linear pointers to the scalar element type (e.g. the l4 in
_ZGVnN4vl4l4_sincosf), not pointers to the vector type. Only the element
alignment is guaranteed, so stop declaring them with the ABI alignment
of the vector.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef-riscv.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+1-1llvm/lib/IR/RuntimeLibcalls.cpp
+37-375 files

LLVM/project 471aa6a — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls amdlibm.ll

Use vector alignment for AMDLIBM sincos out pointers
DeltaFile
+15-1llvm/lib/IR/RuntimeLibcalls.cpp
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+21-72 files

LLVM/project 42d93a5 — llvm/include/llvm/IR RuntimeLibcallsImpl.td

RuntimeLibcalls: Describe vector FuncArgTypes by element type and count

Define the vector libcall argument types from an element type and
count. Derive the matching integer and mask vector types from them
instead of spelling each one out.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-12llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+18-121 files

LLVM/project 942e734 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sparc.ll systemz.ll

Use unsigned argument types for ctlz/ctpop
DeltaFile
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+2-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+2-2llvm/include/llvm/IR/RuntimeLibcalls.td
+12-124 files

LLVM/project 7d48115 — llvm/test/Transforms/Util/DeclareRuntimeLibcalls arm.ll systemz.ll

RuntimeLibcalls: Add signatures for more runtime functions

Add type missing signatures for assorted functions which were missing
type information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+474-474llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+305-305llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+279-279llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+276-276llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+198-198llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+192-192llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm.ll
+1,724-1,72411 files not shown
+2,947-2,93317 files

LLVM/project eeedce7 — llvm/lib/Target/AMDGPU GCNRegPressure.h GCNSchedStrategy.cpp

[AMDGPU] Align banked ArchVGPRs in the unified VGPR count

Compute the combined VGPR count from the banked ArchVGPR and AGPR counts
in initCandidate and checkScheduling.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+9-3llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+8-0llvm/lib/Target/AMDGPU/GCNRegPressure.h
+17-32 files

LLVM/project 4f5d95f — clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenStmt.cpp

[CIR] Change vectorize_enable loop hint to a bool. (#235148)

I originally made this a UnitAttr since we can't really create this as
anything but enable in CIR, but while attempting the lowering, I
discovered that it made that harder for no good reason. I've left the
'NYI' in place so that we can make sure we properly test this when OMP
gets this functionality, but switching it to a 'bool' will make future
lowering easier, and make it so the OMP changes don't have to do more
work when they start using these loop hints.
DeltaFile
+12-2clang/test/CIR/IR/loop-hints.cir
+6-6clang/test/CIR/CodeGen/loop-hints.cpp
+6-5clang/lib/CIR/CodeGen/CIRGenStmt.cpp
+4-4clang/test/CIR/CodeGen/loop-hints-stds.cpp
+4-4clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+32-215 files

LLVM/project 13e6a2d — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

Update default value for flag.
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+1-11 files

LLVM/project 48c4df8 — llvm/include/llvm/IR RuntimeLibcallsImpl.td

RuntimeLibcalls: Describe vector FuncArgTypes by element type and count

Define the vector libcall argument types from an element type and
count. Derive the matching integer and mask vector types from them
instead of spelling each one out.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-12llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+18-121 files

LLVM/project c3ba05e — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sleef-riscv.ll amdlibm.ll

RuntimeLibcalls: Use element alignment for vector libcall out pointers

The pointer arguments of the vector modf, sincos and sincospi functions
are linear pointers to the scalar element type (e.g. the l4 in
_ZGVnN4vl4l4_sincosf), not pointers to the vector type. Only the element
alignment is guaranteed, so stop declaring them with the ABI alignment
of the vector.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef-riscv.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+1-1llvm/lib/IR/RuntimeLibcalls.cpp
+37-375 files

LLVM/project c1cd3d7 — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls amdlibm.ll

Use vector alignment for AMDLIBM sincos out pointers
DeltaFile
+15-1llvm/lib/IR/RuntimeLibcalls.cpp
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+21-72 files

LLVM/project 6b51803 — llvm/test/Transforms/Util/DeclareRuntimeLibcalls arm.ll systemz.ll

RuntimeLibcalls: Add signatures for more runtime functions

Add type missing signatures for assorted functions which were missing
type information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+474-474llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+305-305llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+279-279llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+276-276llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+198-198llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+192-192llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm.ll
+1,724-1,72411 files not shown
+2,947-2,93317 files

LLVM/project 9e7f8a1 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sparc.ll systemz.ll

Use unsigned argument types for ctlz/ctpop
DeltaFile
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+2-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+2-2llvm/include/llvm/IR/RuntimeLibcalls.td
+12-124 files

LLVM/project e156620 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-typedef-base-debuginfonone.ll debug-type-composite-self-pointer-forward-refs.ll

[SPIRV] Declare SPV_KHR_relaxed_extended_instruction only when used

Whether one is needed is only known while building the module-scope NSDI,
which used to be streamed in sections 7 and 10, after OpExtension had been printed.

Split NSDI generation from output: generateModuleDebugInfo() now builds
the module-scope OpStrings and debug instructions into per-section
buffers before the module header is printed, and adds the extension if a
forward reference was built.

emitNonSemanticDebugStrings() and emitNonSemanticGlobalDebugInfo() output
the buffers in sections 7 and 10.

Function-body NSDI is still streamed.
With the extension no longer declared unconditionally.
DeltaFile
+62-34llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+49-32llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+5-6llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+6-5llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+3-4llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+129-851 files not shown
+133-857 files

LLVM/project 06c9a62 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Use the correct target C long width (#237482)

Long and ULong were mapped to the int width, which is wrong on LP64
targets (e.g. scalbln was declared taking i32 on x86_64 linux) and on
16-bit targets where long is 32 bits.

Also fix strtoul, strtoull, and the unsigned long operator new/delete
variants to use the unsigned types.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+21-21llvm/include/llvm/IR/RuntimeLibcalls.td
+14-7llvm/lib/IR/RuntimeLibcalls.cpp
+9-9llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+8-8llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+64-577 files not shown
+83-7613 files

LLVM/project f3caf70 — llvm/lib/Transforms/IPO Attributor.cpp

Drop redundant IRModified check when invalidating callers
DeltaFile
+2-3llvm/lib/Transforms/IPO/Attributor.cpp
+2-31 files

LLVM/project 5e1ff9c — compiler-rt/lib/sanitizer_common sanitizer_mac.cpp sanitizer_platform.h

[compiler-rt][Darwin] Add SANITIZER_IPHONEOS/VISIONOS, use in GetOSMajorKernelOffset

SANITIZER_IOS remains "iOS and iOS-like" (TARGET_OS_IPHONE). Add
SANITIZER_IPHONEOS (TARGET_OS_IOS, iOS only) and SANITIZER_VISIONOS
(TARGET_OS_VISION), and use the SANITIZER_* macros in
GetOSMajorKernelOffset.

Assisted-By: Claude
DeltaFile
+14-0compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+5-5compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+19-52 files

LLVM/project 58f7228 — llvm/test/Transforms/SLPVectorizer/AArch64 extracted-fields-load.ll

[SLP][NFC]Add extra test for extracted fields reduction, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/238072
DeltaFile
+24-0llvm/test/Transforms/SLPVectorizer/AArch64/extracted-fields-load.ll
+24-01 files

LLVM/project d1df933 — lldb/docs/resources lldbdap-extensions.md, lldb/test/API/tools/lldb-dap/optimized TestDAP_optimized.py

[lldb-dap] Report isOptimized on compileUnits (#235981)

Add isOptimized to the CompileUnit type in the compileUnits response, so
a client can tell whether a frame's code was built with optimizations.
Clients look the compile unit up with the frame's moduleId and
compileUnitId.

rdar://190656814
DeltaFile
+26-1lldb/test/API/tools/lldb-dap/optimized/TestDAP_optimized.py
+11-3lldb/unittests/DAP/ProtocolRequestsTest.cpp
+7-0lldb/docs/resources/lldbdap-extensions.md
+4-1lldb/test/API/tools/lldb-dap/stackTrace/TestDAP_stackTrace.py
+4-0lldb/tools/lldb-dap/Protocol/ProtocolTypes.h
+2-0lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp
+54-52 files not shown
+56-58 files

LLVM/project 4444609 — clang/lib/AST Decl.cpp

[clang] Implement fast isOutOfLine() for static data members. (#237773)

Taking advantage of C++ standard rules, we can take a shortcut to
determine if a static data member is out-of-line. Use this to speed up
VarDecl::isThisDeclarationADefinition.

Expected ctt improvement around 0.4%.
DeltaFile
+21-15clang/lib/AST/Decl.cpp
+21-151 files

LLVM/project 4acac03 — utils/bazel/llvm-project-overlay/libc BUILD.bazel, utils/bazel/llvm-project-overlay/libc/src/inttypes BUILD.bazel

[bazel][libc] Add a subpackage for libc/src/inttypes
DeltaFile
+64-0utils/bazel/llvm-project-overlay/libc/src/inttypes/BUILD.bazel
+8-38utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+4-4utils/bazel/llvm-project-overlay/libc/test/src/inttypes/BUILD.bazel
+76-423 files

LLVM/project b537640 — llvm/test/tools/llvm-profgen/X86 cs-tailcall-order.test, llvm/tools/llvm-profgen MissingFrameInferrer.h MissingFrameInferrer.cpp

[llvm-profgen] Make missing frame inference deterministic (#235079)

Missing frame inference memoized the results of a DFS for tail call
paths. Inside a cycle, a result depends on the functions already on
the searched path, so reusing it made the inferred frames depend on
the order of searches. That order follows pointer-keyed containers,
so profiles differed from run to run.

Fix: cache only complete searches. Keep functions visited for the
whole search, so each is walked once, and check that a single path
found is the only one in extra pass: another simple path leaves it
through another tail call and rejoins it at a later function, so
walking from the functions of the path in order, keeping functions
visited, finds it. Each search takes linear time, so remove 
max-search-depth, which only capped it.

On XL AArch64 binary with cycles of tail calls, it caused run-to-run
difference in 5..11 of 162,664 top-level profiles. With the fix, 
profiles are identical across runs and allocators (jemalloc/glibc).

    [4 lines not shown]
DeltaFile
+150-0llvm/test/tools/llvm-profgen/X86/cs-tailcall-order.test
+71-46llvm/tools/llvm-profgen/MissingFrameInferrer.cpp
+13-1llvm/tools/llvm-profgen/MissingFrameInferrer.h
+234-473 files

LLVM/project 237c13d — llvm/test/CodeGen/PowerPC global-merge-aix-nosections.ll

Expand testing for global merge symbol table info on AIX. (#224099)

Add a test that checks the symbol table info for merged global symbols
when they do not have an explicit section attribute. Uses the option
nozero-initialized-in-bss so we get symbol table entries for the zero
initialized globals as well.
DeltaFile
+87-0llvm/test/CodeGen/PowerPC/global-merge-aix-nosections.ll
+87-01 files