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 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

LLVM/project 06effa5llvm/lib/IR Verifier.cpp, llvm/test/Verifier matrix-intrinsics.ll

[LLVM][Verifier] Remove constant-only matrix stride check (#207665)

Remove the verifier check requiring constant column-major matrix
load/store strides to be greater than or equal to the row count.

The stride operand is not an immarg, so the verifier must not enforce
constraints that only apply when the argument happens to be constant.
DeltaFile
+6-9llvm/lib/IR/Verifier.cpp
+2-4llvm/test/Verifier/matrix-intrinsics.ll
+8-132 files

LLVM/project d444e3eclang/docs ReleaseNotes.md, clang/lib/AST ExprCXX.cpp

[Clang][Sema] Fix crash in UnresolvedMemberExpr check (#209792)

This closes https://github.com/llvm/llvm-project/issues/209427

The test currently crashes because while iterating over the candidate
members of an unresolved member expression, `decl` is a `UsingShadowDecl`
with underlying decl as `UnresolvedUsingValueDecl`.

The current `isa<UnresolvedUsingValueDecl>(decl)` guard only checks the
outer `UsingShadowDecl` and misses the unresolved-using decl hidden
inside it, so `getAsFunction()` returns nullptr and
`cast<CXXMethodDecl>(nullptr)` asserts.
 
This patch checks the `UnresolvedUsingValueDecl` inside by calling
`getUnderlyingDecl()` before the guard.

This used to happen before a2794f9f363361f87a3538b90b78ff13381d5ce1.
DeltaFile
+11-0clang/test/SemaCXX/using-decl-templates.cpp
+2-3clang/lib/AST/ExprCXX.cpp
+3-0clang/docs/ReleaseNotes.md
+16-33 files

LLVM/project e8f9589clang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Clang.cpp

[Driver][DirectX] Add `/Qstrip_debug` flag (#204832)

Add the flag that removes ILDB part from the main DXContainer.
DeltaFile
+13-0llvm/test/CodeGen/DirectX/ContainerData/ContainerFlags.ll
+7-3llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
+4-1llvm/lib/MC/MCDXContainerWriter.cpp
+4-0clang/lib/Driver/ToolChains/Clang.cpp
+3-0clang/include/clang/Options/Options.td
+2-0clang/test/Driver/dxc_debug.hlsl
+33-46 files

LLVM/project 2ab3593llvm/lib/Target/AMDGPU AMDGPUWaitcntTracking.cpp

Fix merge
DeltaFile
+2-2llvm/lib/Target/AMDGPU/AMDGPUWaitcntTracking.cpp
+2-21 files

LLVM/project 6cafa88lldb/source/Plugins/SymbolFile/NativePDB UdtRecordCompleter.cpp, lldb/test/Shell/SymbolFile/NativePDB static-class-constants.cpp globals-fundamental.cpp

[lldb][NativePDB] Use active bits for constant width (#196104)

Static constants with bit widths less than 16 (e.g. char/unsigned char)
in classes were not available. These constants are still encoded with 16
bits
([here](https://github.com/llvm/llvm-project/blob/dd145eb8997878143f648a7601741f6409330963/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp#L341-L343))
even though they only need less bits. When we tried to create an
initializer for them, we'd check if the bit width (=16) was small enough
to fit into the target (<16). This would fail.

This was a problem in the following code:
```cpp
struct Foo {
  // width(unsigned char) = 8, but 255 was encoded and read as 16 bit
  static constexpr unsigned char u8_max = 255;
};
```

This PR fixes the issue by using `APSInt::getActiveBits` for unsigned

    [2 lines not shown]
DeltaFile
+109-0lldb/test/Shell/SymbolFile/NativePDB/static-class-constants.cpp
+20-0lldb/test/Shell/SymbolFile/NativePDB/globals-fundamental.cpp
+13-5lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
+6-1lldb/test/Shell/SymbolFile/NativePDB/Inputs/globals-fundamental.lldbinit
+148-64 files

LLVM/project 5fcab35llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU amdhsa-kernel-prologue.s hsa-gfx1250-v4.s

[AMDGPU] Add assembler check for GFX1250 unclaused vmem workaround (#209517)

Warn if an entrypoint does not start with the standard workaround
sequence.
DeltaFile
+49-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+28-0llvm/test/MC/AMDGPU/amdhsa-kernel-prologue.s
+12-0llvm/test/MC/AMDGPU/hsa-gfx1250-v4.s
+12-0llvm/test/MC/AMDGPU/hsa-gfx1251-v4.s
+101-04 files