LLVM/project b82fdb2llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp AArch64InstrInfo.td

Minor comment fixes and s/AuthWithPC/IsAuthWithPC/
DeltaFile
+4-4llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+1-1llvm/lib/Target/AArch64/AArch64InstrInfo.td
+5-52 files

LLVM/project db84153llvm/test/CodeGen/AMDGPU/GlobalISel divergence-structurizer.ll divergence-divergent-i1-used-outside-loop.ll, llvm/test/CodeGen/ARM select-imm.ll

Merge branch 'main' into revert-193298-users/freaknbigpanda/avx512abi-fixes
DeltaFile
+139-177llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
+304-4llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
+94-0llvm/test/Transforms/IndVarSimplify/iv-widen-addrec-flag-inferred-late.ll
+37-45llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
+81-0llvm/test/Transforms/LoopVectorize/nested-loops-scev-expansion.ll
+20-25llvm/test/CodeGen/ARM/select-imm.ll
+675-25117 files not shown
+810-29323 files

LLVM/project 23b0281llvm/lib/Target/X86 X86ISelDAGToDAG.cpp, llvm/test/CodeGen/X86 tailcall-i686-pic.ll

[X86] Fix assertion failure for tail call on i686+pic (#210302)

The pattern for TCRETURNmi has a IsNotPIC predicate, but the
checkTCRetEnoughRegs() predicate that's part of the X86tcret_enough_regs
PatFrag is evaluated first, so we can't assert that PIC is disabled
here. We should just return false in that case.

Fixes https://github.com/llvm/llvm-project/issues/210300.
DeltaFile
+14-0llvm/test/CodeGen/X86/tailcall-i686-pic.ll
+2-1llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+16-12 files

LLVM/project 62a932aclang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGen/SystemZ systemz-module.flags.c

[SystemZ][z/OS] Fix zos_translation_time module flag (#210058)

The zos_translation_time flag needs to be 64-bit to handle the year 2038
problem.
DeltaFile
+10-0llvm/lib/IR/Module.cpp
+5-3clang/lib/CodeGen/CodeGenModule.cpp
+8-0llvm/include/llvm/IR/Module.h
+3-0clang/test/CodeGen/SystemZ/systemz-module.flags.c
+26-34 files

LLVM/project 8c7cc4fclang/include/clang/Basic TargetID.h, clang/lib/Basic TargetID.cpp

clang: Use TargetID parsing from AMDGPUTargetParser

We had grown 2 parallel parsing implementations for
triple+gpu name+feature flag target ID strings. Mostly
eliminate the redundant clang version.

Co-authored-by: Claude (Opus 4.8)
DeltaFile
+30-165clang/lib/Basic/TargetID.cpp
+49-51clang/lib/Driver/ToolChains/AMDGPU.cpp
+27-41clang/lib/Driver/OffloadBundler.cpp
+7-33clang/include/clang/Basic/TargetID.h
+18-14clang/lib/Basic/Targets/AMDGPU.h
+17-14clang/lib/Basic/Targets/AMDGPU.cpp
+148-3185 files not shown
+173-34211 files

LLVM/project 18c2d77clang/include/clang/Basic TargetID.h, clang/lib/Basic TargetID.cpp

Fix offload bundler usage of getConflictTargetIDCombination
DeltaFile
+14-9clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
+11-9clang/include/clang/Basic/TargetID.h
+12-2clang/lib/Driver/OffloadBundler.cpp
+9-4clang/lib/Driver/Driver.cpp
+2-3clang/lib/Basic/TargetID.cpp
+48-275 files

LLVM/project aaa9236clang/lib/Basic TargetID.cpp

clang: Add missing DenseMap.h include to TargetID.cpp

Co-authored-by: Claude (Claude Opus 4.8) <noreply at anthropic.com>
DeltaFile
+1-0clang/lib/Basic/TargetID.cpp
+1-01 files

LLVM/project 9a2d9c7llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/CodeGen/AMDGPU memset-pattern.ll

[SCEV] Try to fold ZExt/SExt of AddRec before existing lookup. (#208805)

Move AddRec fold for ZExt & SExt before existing SCEV lookup. This can
improve results, when we constructed SCEV for a ZExt/SExt during earlier
analysis and flags on the operand AddRec have not been
refined/strengthend yet.

This improves results in some cases and fixes a regression here:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/654#discussion_r3554885279.

On a large C/C++ corpus with 32k bitcode files, ~2% more IVs get
widened, removing a large number of ZExt instructions.

Compile-time impact in the noise

https://llvm-compile-time-tracker.com/compare.php?from=167d65906cc3c636221158abe8289ab4a03dfc7d&to=381abca0d5ead4443d86287d754f47c21396a9be&stat=instructions:u
DeltaFile
+139-177llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
+94-0llvm/test/Transforms/IndVarSimplify/iv-widen-addrec-flag-inferred-late.ll
+37-45llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
+20-25llvm/test/CodeGen/ARM/select-imm.ll
+26-16llvm/lib/Analysis/ScalarEvolution.cpp
+11-12llvm/test/CodeGen/AMDGPU/memset-pattern.ll
+327-2752 files not shown
+331-2848 files

LLVM/project a9e5bb5llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker BUILD.gn

[gn build] Port 398f2117379f (#210308)
DeltaFile
+4-1llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker/BUILD.gn
+4-11 files

LLVM/project 7772b70lldb/source/Plugins/ObjectFile/ELF ObjectFileELF.cpp, lldb/source/Symbol Symbol.cpp

Merge branch 'users/aokblast/lldb/fix_auxilary_handle' into users/aokblast/lldb/mmap_fix_for_reexport
DeltaFile
+109-28lldb/unittests/Target/ReExportedSymbolTest.cpp
+20-29lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
+0-15lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+6-1lldb/source/Symbol/Symbol.cpp
+135-734 files

LLVM/project 2c19395llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 ptrauth-intrinsic-auth-resign-with-blend.ll

Add more test cases; other minor changes
DeltaFile
+382-6llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign-with-blend.ll
+10-8llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+6-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+398-143 files

LLVM/project 1945b47llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp, llvm/test/CodeGen/AArch64 ptrauth-intrinsic-auth-resign-with-blend.ll

[AArch64][PAC] Rework the expansion of AUT/AUTPAC pseudos

Refactor `AArch64AsmPrinter::emitPtrauthAuthResign` to improve
readability and fix the conditions when `emitPtrauthDiscriminator` is
allowed to clobber AddrDisc.

* do not clobber `AUTAddrDisc` when computing `AUTDiscReg` on resigning
  if `AUTAddrDisc == PACAddrDisc`, as it would prevent passing raw,
  64-bit value as the new discriminator
* move the code computing `ShouldCheck` and `ShouldTrap` conditions to a
  separate function
DeltaFile
+73-45llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+67-10llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign-with-blend.ll
+140-552 files

LLVM/project 4a0d773llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp

Use enum instead of a pair of boolean variables
DeltaFile
+73-70llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+73-701 files

LLVM/project 4d37b5bllvm/test/Transforms/LoopVectorize nested-loops-scev-expansion.ll, llvm/test/Transforms/LoopVectorize/VPlan expand-scev.ll

[LV] Add additional SCEV expansion tests with AddRecs. (NFC) (#210159)

Add additional test coverage for SCEV expansion of AddRecs, including
cases where extends are needed, different start and steps, as well as
cases where the outer header is not the plan's entry block.
DeltaFile
+304-4llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
+81-0llvm/test/Transforms/LoopVectorize/nested-loops-scev-expansion.ll
+385-42 files

LLVM/project 41cde56clang/include/clang/Basic TargetID.h, clang/lib/Basic TargetID.cpp

Fix offload bundler usage of getConflictTargetIDCombination
DeltaFile
+14-9clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
+11-9clang/include/clang/Basic/TargetID.h
+12-2clang/lib/Driver/OffloadBundler.cpp
+9-4clang/lib/Driver/Driver.cpp
+2-3clang/lib/Basic/TargetID.cpp
+48-275 files

LLVM/project c884923clang/include/clang/Basic TargetID.h, clang/lib/Basic TargetID.cpp

clang: Use TargetID parsing from AMDGPUTargetParser

We had grown 2 parallel parsing implementations for
triple+gpu name+feature flag target ID strings. Mostly
eliminate the redundant clang version.

Co-authored-by: Claude (Opus 4.8)
DeltaFile
+29-165clang/lib/Basic/TargetID.cpp
+49-51clang/lib/Driver/ToolChains/AMDGPU.cpp
+27-41clang/lib/Driver/OffloadBundler.cpp
+7-33clang/include/clang/Basic/TargetID.h
+18-14clang/lib/Basic/Targets/AMDGPU.h
+17-14clang/lib/Basic/Targets/AMDGPU.cpp
+147-3185 files not shown
+172-34211 files

LLVM/project 9df8fdfllvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp

comment
DeltaFile
+2-1llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+2-11 files

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

AMDGPU: Remove now-unused splitTargetID

splitTargetID was a syntactic-only target-ID splitter used solely by
clang's getConflictTargetIDCombination, which now parses through the
canonical llvm::AMDGPU::TargetID::parse instead. With that last user
gone, drop the function, its declaration, and its unit test.
DeltaFile
+0-40llvm/unittests/TargetParser/TargetParserTest.cpp
+0-20llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+0-6llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+0-663 files

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

AMDGPU: Add TargetID::printCanonicalTargetIDString

Factor the canonical feature-string formatting into a raw_ostream print
method so callers can stream directly without a temporary std::string.
getCanonicalFeatureString now delegates to it.
DeltaFile
+6-2llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+5-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+11-22 files

LLVM/project 8e324e3llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.h

AMDGPU: Validate processor and features in TargetID parsing

TargetID::parseTargetIDString previously only checked that the string was
structurally a 4-component triple followed by a processor field. It
accepted unrecognized processors and silently ignored malformed or
unsupported feature modifiers. Work towards improving validation so in
the future clang's copy of TargetID can be replaced.

Co-authored-by: Claude (Opus 4.8)
DeltaFile
+128-46llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+149-0llvm/unittests/TargetParser/TargetParserTest.cpp
+20-2llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+7-3llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+5-3llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+3-1llvm/lib/Target/AMDGPU/GCNSubtarget.h
+312-551 files not shown
+313-567 files

LLVM/project 8377d59libsycl/src event.cpp, libsycl/unittests/event event.cpp

[libsycl] add explicit instantiations for event::get_profiling_info (#210118)

Assisted by GH Copilot.

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+22-0libsycl/unittests/event/event.cpp
+9-0libsycl/src/event.cpp
+31-02 files

LLVM/project e1e6c0elldb/unittests/Target ReExportedSymbolTest.cpp

fixup! Add unit tests for ELF filter-library symbol handling.
DeltaFile
+35-4lldb/unittests/Target/ReExportedSymbolTest.cpp
+35-41 files

LLVM/project 671c0a2clang/lib/Driver ToolChain.cpp, clang/test/Driver cygwin-print-file-name.c

[Clang][Driver] Fix compiler-rt library directory for cygwin (#208925)

If compiler-rt is built with `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF`,
its search directory is incorrect.

Specifically, `ToolChain::getOSLibName()` returns `windows` instead of
`cygwin` in a Cygwin environment, due to falling back to getOS(). This
results in a link error against compiler-rt.

This patch makes `getOSLibName()` return `cygwin`, ensuring that
compiler-rt is linked correctly.

---------

Signed-off-by: Takashi Yano <takashi.yano at nifty.ne.jp>
DeltaFile
+15-0clang/test/Driver/cygwin-print-file-name.c
+2-0clang/lib/Driver/ToolChain.cpp
+0-0clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/x86_64-pc-windows-cygnus/libclang_rt.builtins.a
+0-0clang/test/Driver/Inputs/resource_dir/lib/cygwin/libclang_rt.builtins-x86_64.a
+17-04 files

LLVM/project 3402737lldb/source/Plugins/ObjectFile/ELF ObjectFileELF.cpp, lldb/source/Symbol Symbol.cpp

fixup! [LLDB] Support Auxiliary library in ELF format
DeltaFile
+0-9lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+1-1lldb/source/Symbol/Symbol.cpp
+1-102 files

LLVM/project 9eec5a1clang/lib/CodeGen CGCall.cpp CodeGenTypes.h, clang/lib/CodeGen/Targets X86.cpp

Revert "[clang][CodeGen][X86_64] Honor per-function AVX ABI in C/C++ call pat…"

This reverts commit 464b46a73b7592c95222cf2e64b34ffe6f2cf251.
DeltaFile
+51-105clang/lib/CodeGen/CGCall.cpp
+15-128clang/unittests/CodeGen/CodeGenExternalTest.cpp
+0-121clang/test/CodeGenCXX/target-avx-method-abi.cpp
+0-71clang/test/CodeGen/target-avx-function-abi.c
+1-54clang/lib/CodeGen/Targets/X86.cpp
+13-24clang/lib/CodeGen/CodeGenTypes.h
+80-50322 files not shown
+123-62628 files

LLVM/project a4cad33llvm/lib/Support KnownBits.cpp, llvm/test/CodeGen/AArch64/GlobalISel knownbits-urem.mir

[KnownBits] Use X < Y identity and umin(MaxX, MaxY - 1) bound in urem (#210262)

Tightens `KnownBits::urem` with the two facts `ConstantRange::urem`
already uses:

- `L % R == L` when `MaxL < MinR`: return the LHS bits unchanged. This
can propagate known one bits, which the current leading-zeros-only
reasoning never produces.
- `L % R <= umin(MaxL, MaxR - 1)`, since a zero divisor is UB: keep that
bound's leading zeros. This is one bit stronger than the per-operand
leading-zero count when `MaxR` is a power of two, and together with
`remGetLowBits` it subsumes the power-of-two-constant special case,
which is removed.

Soundness is covered by the existing exhaustive unit test (widths 1 and
4; additionally brute-forced at width 5). Across all 6480 valid width-4
KnownBits pairs, non-optimal results drop from 3332 to 2090. The
residual is number-theoretic (e.g. the exact value of `10 % 3`), out of
reach of leading-bit/range reasoning, so `CheckOptimality` stays off for

    [2 lines not shown]
DeltaFile
+54-0llvm/test/CodeGen/AArch64/GlobalISel/knownbits-urem.mir
+14-12llvm/lib/Support/KnownBits.cpp
+24-0llvm/test/Transforms/InstCombine/known-bits.ll
+92-123 files

LLVM/project 2a006dfllvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64/GlobalISel knownbits-vashr.mir

[AArch64][GlobalISel] Add sign bits for G_VASHR (#210269)

Ports the `AArch64ISD::VASHR` case from
`ComputeNumSignBitsForTargetNode` to the GlobalISel hook: an arithmetic
right shift by K adds K copies of the sign bit, so the result has
`min(SignBits(Src) + K, ScalarSizeInBits)` sign bits. `G_VASHR`'s shift
amount is always an immediate in `[1, ElementBits]`.

Follow-up to #198314, which added the `G_FCM*` cases.

Assisted by Claude (Anthropic).
DeltaFile
+57-0llvm/test/CodeGen/AArch64/GlobalISel/knownbits-vashr.mir
+8-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+65-02 files

LLVM/project 2b2df26lld/COFF InputFiles.cpp Driver.cpp, lld/test/COFF link-dll-arm64x.s

Revert "[LLD] [COFF] Fix linking directly against an ARM64X DLL without import library (#210080)" (#210299)

This reverts commit a3bcc010c7b7d5fa43ab7928a88312841c4322dd, which
breaks in asan build.
DeltaFile
+0-81lld/test/COFF/link-dll-arm64x.s
+20-3lld/COFF/InputFiles.cpp
+1-15lld/COFF/Driver.cpp
+2-4lld/COFF/InputFiles.h
+23-1034 files

LLVM/project afa73e4llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination eq.ll ne.ll

[ConstraintElimination] Handle equality predicates with signed system (#205331)

Equality predicate solving has been supported for quite a while, eq/ne
facts were extended to the signed constraint system more recently
(7fb97bee9269f0d4239908ac8def70be696991c6). When solving
eq/ne conditions, query the signed system as well on inconclusive
answers from the unsigned one.

Fixes: https://github.com/llvm/llvm-project/issues/205282.
Fixes: https://github.com/llvm/llvm-project/issues/63505.
DeltaFile
+38-18llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+33-0llvm/test/Transforms/ConstraintElimination/eq.ll
+16-1llvm/test/Transforms/ConstraintElimination/ne.ll
+87-193 files

LLVM/project be5ca73llvm/test/CodeGen/AMDGPU div_i128.ll div_v2i128.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fshl.ll fshr.ll

GlobalISel: Use extended LLTs in lshr narrow combine
DeltaFile
+3,024-2,355llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+3,080-2,174llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+1,894-2,067llvm/test/CodeGen/AMDGPU/div_i128.ll
+1,365-1,378llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+1,625-788llvm/test/CodeGen/AMDGPU/itofp.i128.ll
+218-153llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
+11,206-8,91510 files not shown
+12,049-9,47316 files