LLVM/project 5cd21e8clang/lib/Driver/ToolChains SYCL.cpp, clang/test/Driver sycl-offload-jit-unix.cpp sycl-offload-jit.cpp

[libsycl][Driver] Move and rename the SYCL shared library (#188770)

Align the shared library with other runtime libraries:

- Rename from libsycl.so to libLLVMSYCL.so
- Make install dir include the host triple if
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR is ON.

Also updates the Clang driver to be aligned with the new location by
relanding https://github.com/llvm/llvm-project/pull/189053

---------

Co-authored-by: Srividya Sundaram <srividya.sundaram at intel.com>
DeltaFile
+19-6clang/lib/Driver/ToolChains/SYCL.cpp
+25-0clang/test/Driver/sycl-offload-jit-unix.cpp
+14-0clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
+0-14clang/test/Driver/Inputs/SYCL/libsycl.ll
+4-7clang/test/Driver/sycl-offload-jit.cpp
+2-2libsycl/src/CMakeLists.txt
+64-296 files not shown
+72-3712 files

LLVM/project 8810490llvm/test/Transforms/PhaseOrdering inline-store-to-load.ll

Add PhaseOrdering test mirroring missed optimization on empty std::set (#192840)

Adds a PhaseOrdering test mirroring missed optimization on empty
`std::set`. The `erase` in not inlined due to missing store-to-load
forwarding between inlining attempts, so inliner sees it as recursive.

Part of #183994
Addressed in #190607
DeltaFile
+113-0llvm/test/Transforms/PhaseOrdering/inline-store-to-load.ll
+113-01 files

LLVM/project 3606862llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp AMDGPUBaseInfo.h

[NFC][AMDGU] Remove an unused function
DeltaFile
+0-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+0-1llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+0-52 files

LLVM/project 39b87cfclang/lib/Frontend InitPreprocessor.cpp, clang/test/Lexer cxx-features.cpp

[Clang][C++20] Add full support to deduction guides
DeltaFile
+1-7clang/www/cxx_status.html
+1-2clang/test/Lexer/cxx-features.cpp
+1-2clang/lib/Frontend/InitPreprocessor.cpp
+3-113 files

LLVM/project 205ff02mlir/include/mlir/Dialect/SPIRV/IR SPIRVTosaOps.td SPIRVTosaTypes.td, mlir/test/Dialect/SPIRV/IR tosa-ops-verification.mlir

[mlir][spirv] Tighten types of SPIR-V TOSA op definitions (#192623)

Tighten the SPIR-V TOSA op definitions by introducing stricter named
type constraints and aligning verifier coverage with the new type
surface.

Remove implication checks that are now enforced directly by
operand/result type constraints.

Drop the corresponding negative tests that no longer exercise those
verifier paths.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
DeltaFile
+169-184mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
+47-173mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir
+65-35mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaTypes.td
+4-4mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp
+285-3964 files

LLVM/project 5262f00llvm/test/CodeGen/RISCV/GlobalISel/rvv variant-cc.ll

[RISCV][GISel] Add variant_cc test. NFC (#193036)

I couldn't add -global-isel RUN lines to the existing SDAG test because
GISel doesn't support fixed vector arguments yet.
DeltaFile
+43-0llvm/test/CodeGen/RISCV/GlobalISel/rvv/variant-cc.ll
+43-01 files

LLVM/project c4328ccclang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis SummaryAnalysis.h AnalysisBase.h, clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis AnalysisDriver.cpp

[clang][ssaf][NFC] Standardize getter naming to use `get/take` prefixes (#193031)

To make our APIs uniform, this change adds `get` prefix to instance
accessors, and `take` prefix to "move-out" methods. Removing `get`
prefix throughout turns out to be a bigger change, so I have chosen to
add the prefix to these methods instead.
DeltaFile
+15-15clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
+9-9clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/SummaryAnalysis.h
+7-7clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.cpp
+5-5clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisBase.h
+5-5clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
+5-5clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
+46-468 files not shown
+62-6014 files

LLVM/project b093e6fclang/unittests/ScalableStaticAnalysisFramework/Registries MockSerializationFormat.h

[clang][ssaf][NFC] Remove stale `ID` field from `MockSerializationFormat` (#192740)

This `ID` field was first introduced for LLVM-style RTTI but was missed
from deletion when we removed RTTI support.
DeltaFile
+0-2clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.h
+0-21 files

LLVM/project ed5b401llvm/test/tools/dsymutil embed-resource.test

[dsymutil] Add x86-registered-target requirement to embed-resource test (#193043)

The test uses an x86_64 Mach-O input and generates output which requires
the x86 backend.
DeltaFile
+2-0llvm/test/tools/dsymutil/embed-resource.test
+2-01 files

LLVM/project b0ff26boffload/tools/kernelreplay llvm-omp-kernel-replay.cpp

[offload] Cleanup of llvm-omp-kernel-replay tool (#192779)

This commit cleans up the llvm-omp-kernel-replay tool by simplifying the
JSON file reading code, improving the error checking, and switching to
llvm::Error.
DeltaFile
+212-121offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp
+212-1211 files

LLVM/project 5e9973dmlir/include/mlir/Dialect/SPIRV/IR SPIRVTosaOps.td

[mlir][spirv] Clarify SPIR-V TOSA op examples (#192952)

Improve the example sections in SPIRVTosaOps.td by adding short
clarifying notes where some tensor operands are not obvious from the
example alone.

The added notes focus on operands that affect the operation semantics,
such as shift amounts, padding, slice coordinates, gather/scatter
indices, resize parameters, table contents, and rescale parameters.

Also replace anonymous SSA names in examples with more descriptive
operand names, and clean up wording and formatting for readability.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
DeltaFile
+140-97mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
+140-971 files

LLVM/project 3886c34llvm/lib/Transforms/Vectorize VPlanRecipes.cpp VPlanTransforms.cpp

Add VPRecipeBase::isSafeToSpeculativelyExecute
DeltaFile
+16-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-6llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-0llvm/lib/Transforms/Vectorize/VPlan.h
+22-63 files

LLVM/project 30b315allvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Update llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Co-authored-by: Ramkumar Ramachandra <artagnon at tenstorrent.com>
DeltaFile
+3-5llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+3-51 files

LLVM/project bcbdf80llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Update llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Co-authored-by: Ramkumar Ramachandra <artagnon at tenstorrent.com>
DeltaFile
+2-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-41 files

LLVM/project 9b8635flibcxx/include __config CMakeLists.txt, libcxx/include/__configuration namespace.h diagnostic_suppression.h

[libc++][NFC] Move namespace macros into a detail header (#193003)

This is another step in splitting up `<__config>` to make it easier to
understand what's going on and have logically separate parts of the
configuration properly separated.
DeltaFile
+2-84libcxx/include/__config
+82-0libcxx/include/__configuration/namespace.h
+43-0libcxx/include/__configuration/diagnostic_suppression.h
+2-0libcxx/include/CMakeLists.txt
+2-0libcxx/include/module.modulemap.in
+131-845 files

LLVM/project 65de85eclang/tools/clang-sycl-linker ClangSYCLLinker.cpp

[clang-sycl-linker][NFC] Refactor for backend extensibility (#192886)

Use OutputFileNameExt variable for codegen output extension.
Avoid shadowing OffloadArch type name with local variable.
Simplify codegen loop to single SplitModules assignment.
DeltaFile
+12-10clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+12-101 files

LLVM/project 1a8e0baclang/test/CodeGen ptrauth-init-fini.c, llvm/lib/IR AutoUpgrade.cpp Verifier.cpp

[AArch64][PAC] Handle signing of init/fini pointers in AsmPrinter

Move signing of the contents of `@llvm.global_(ctors|dtors)` from
Clang frontend to the end of the backend pipeline, to AsmPrinter.

Signing of the pointers to init/fini functions in the backend fixes
registration of the constructors and destructors performed by the
optimizer or the backend.

This commit introduces two new module flags, `ptrauth-init-fini` and
`ptrauth-init-fini-address-discrimination`, mirroring corresponding
Clang options. The flags are semantically boolean, and the module
is allowed to have either none of these flags, only the first one,
or both. The particular constant discriminator to use is not
configurable via module flags and is hardcoded to the value 0xD9D4
in the `llvm/lib/Target/AArch64/AArch64PointerAuth.h` file.
DeltaFile
+143-0llvm/test/CodeGen/AArch64/ptrauth-init-fini-autoupgrade.ll
+93-4llvm/lib/IR/AutoUpgrade.cpp
+73-14llvm/test/CodeGen/AArch64/ptrauth-init-fini.ll
+47-11llvm/lib/IR/Verifier.cpp
+32-12llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+19-11clang/test/CodeGen/ptrauth-init-fini.c
+407-524 files not shown
+422-8710 files

LLVM/project 7247dd6llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

use VPWidenIntOrFpInductionRecipe for canonical IV bailouts
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-11 files

LLVM/project 3249623llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Use `post_order` directly as `vp_post_order_shallow` has been removed
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-21 files

LLVM/project 3d4b452clang/lib/CIR/CodeGen CIRGenCall.cpp CIRGenBuiltin.cpp, clang/test/CIR/CodeGenBuiltins setjmp.c

[CIR] Allow _setjmp and _setjmpex to fall through to library calls (#193021)

This change allows calls to _setjmp and _setjmpex to fall through the
builtin handling and be emitted as library calls when we are not
targeting OSMSVCRT. It also adds the code to set "returns_twice" on
functions matching an explicit list, as they are in classic codegen.
DeltaFile
+95-0clang/test/CIR/CodeGenBuiltins/setjmp.c
+15-2clang/lib/CIR/CodeGen/CIRGenCall.cpp
+7-1clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+117-33 files

LLVM/project de45a7cllvm/docs/CommandGuide dsymutil.rst, llvm/test/tools/dsymutil embed-resource.test cmdline.test

[dsymutil] Add --embed-resource to copy files into dSYM bundles. (#190663)

Add a new --embed-resource flag that copies files or directories into
the dSYM bundle's Contents/Resources/ directory during generation.

Projects often need to embed files such as LLDB Python scripts into dSYM
bundles, and this is usually done with a post dsym generation script,
which may race stripping and code signing steps.

rdar://50633614
DeltaFile
+65-0llvm/test/tools/dsymutil/embed-resource.test
+62-0llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
+26-0llvm/tools/dsymutil/dsymutil.cpp
+9-0llvm/tools/dsymutil/Options.td
+7-0llvm/docs/CommandGuide/dsymutil.rst
+4-0llvm/test/tools/dsymutil/cmdline.test
+173-02 files not shown
+179-08 files

LLVM/project 356ab40llvm/test/tools/llvm-nm special-syms-arm.test special-syms-csky.test, llvm/tools/llvm-nm llvm-nm.cpp

[llvm-nm] Drop STT_FILE/STT_SECTION from --special-syms (#192129)

The filter for SF_FormatSpecific symbols exempted all such symbols
for architectures having mapping symbols. This caused STT_FILE and
STT_SECTION symbols to appear with --special-syms on these targets
but not on x86_64. Narrow the exemption to only STT_NOTYPE symbols,
which are the actual mapping symbols ($d, $x, etc.).
DeltaFile
+14-11llvm/tools/llvm-nm/llvm-nm.cpp
+13-5llvm/test/tools/llvm-nm/special-syms-arm.test
+12-4llvm/test/tools/llvm-nm/special-syms-csky.test
+12-4llvm/test/tools/llvm-nm/special-syms-aarch64.test
+12-4llvm/test/tools/llvm-nm/special-syms-riscv.test
+63-285 files

LLVM/project 944f382clang/lib/CodeGen CGHLSLRuntime.cpp CGExpr.cpp, clang/lib/Sema SemaHLSL.cpp

[HLSL] Add codegen for accessing resource members of a struct (#187127)

Any expression that accesses a resource or resource array member of a global struct instance must be during codegen replaced by an access of the corresponding implicit global resource variable.

When codegen encounters a `MemberExpr` of a resource type, it traverses the AST to locate the parent struct declaration, building the expected global resource variable name along the way. If the parent declaration
is a non-static global struct instance, codegen searches its `HLSLAssociatedResourceDeclAttr` attributes to locate the matching global resource variable and then generates IR code to access the resource global in place of the member access.

Fixes #182989
DeltaFile
+146-10clang/lib/CodeGen/CGHLSLRuntime.cpp
+132-0clang/test/CodeGenHLSL/resources/resources-in-structs-inheritance.hlsl
+100-0clang/test/CodeGenHLSL/resources/resources-in-structs-array.hlsl
+83-0clang/test/CodeGenHLSL/resources/resources-in-structs.hlsl
+19-24clang/lib/Sema/SemaHLSL.cpp
+12-4clang/lib/CodeGen/CGExpr.cpp
+492-383 files not shown
+525-389 files

LLVM/project 43d4b7bllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Addressing code review comments
DeltaFile
+21-22llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+21-221 files

LLVM/project 99929c3llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Minor stylistic cleanup
DeltaFile
+12-12llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+12-121 files

LLVM/project a2bcfaellvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Just use `vputils::onlyFirstLaneUsed`
DeltaFile
+1-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-71 files

LLVM/project a2907d6llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Extend post_order's lifetime
DeltaFile
+5-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+5-31 files

LLVM/project 32b0750llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Use `reverse`/`IsaPred`
DeltaFile
+2-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-41 files

LLVM/project 0779995llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlanTransforms.h

Don't pass RecipeBuilder

Legacy calls `setRecipe` on all processed recipes but really queries `getRecipe`
for memory operations only, that we don't touch in the scalarization as that
happens after all memory recipes has been processed.
DeltaFile
+1-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-2llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+1-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-63 files

LLVM/project 6271936llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlanTransforms.h, llvm/test/Transforms/LoopVectorize/AArch64 binop-costs.ll

[VPlan] Scalarize to first-lane-only directly on VPlan

This is needed to enable subsequent https://github.com/llvm/llvm-project/pull/182595.

I don't think we can fully port all scalarization logic from the legacy
path to VPlan-based right now because that would require us to introduce
interleave groups much earlier in VPlan pipeline, and without that we
can't really `assert` this new decision matches the previous CM-based
one. And without those `assert`s it's really hard to ensure we properly
port all the previous logic.

As such, I decided just to implement something much simpler that would
be enough for #182595. However, we perform this transformation before
delegating to the old CM-based decision, so it **is** effective
immediately and taking precedence even for consecutive loads/stores
right away.

Depends on https://github.com/llvm/llvm-project/pull/182592 but is stacked on
top of https://github.com/llvm/llvm-project/pull/182594 to enable linear
stacking for https://github.com/llvm/llvm-project/pull/182595.
DeltaFile
+65-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+5-5llvm/test/Transforms/LoopVectorize/AArch64/binop-costs.ll
+6-0llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+4-2llvm/test/Transforms/LoopVectorize/X86/funclet.ll
+2-2llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
+3-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+85-93 files not shown
+88-119 files