LLVM/project afcb953utils/bazel MODULE.bazel.lock MODULE.bazel

[bazel] Fix bzlmod reference to @vulkan_sdk (#168767)

vulkan_sdk_setup is the name of the method that configures it, but the
repo itself has the name vulkan_sdk

This was caught by enabling the bzlmod flag for CI. The GH action runs
`blaze test @llvm-project/...` but the target is tagged manual, so it's
excluded. The buildkite CI runs `bazel query | xargs bazel test` which
will include manual targets.
DeltaFile
+2-2utils/bazel/MODULE.bazel.lock
+1-1utils/bazel/MODULE.bazel
+1-1utils/bazel/extensions.bzl
+4-43 files

LLVM/project 5611268clang/lib/CIR/CodeGen CIRGenExprScalar.cpp, clang/test/CIR/CodeGen defaultarg.cpp

[CIR] Handle default arguments in ctors (#168649)

This adds the scalar expression visitor needed to handle default
arguments being passed to constructors.
DeltaFile
+22-0clang/test/CIR/CodeGen/defaultarg.cpp
+4-0clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+26-02 files

LLVM/project 13e09eblld/ELF Relocations.cpp Target.h, lld/ELF/Arch AArch64.cpp

ELF: Add support for relocating R_AARCH64_FUNCINIT64.

R_AARCH64_FUNCINIT64 is a dynamic relocation type for relocating
word-sized data in the output file using the return value of
a function. An R_AARCH64_FUNCINIT64 shall be relocated as an
R_AARCH64_IRELATIVE with the target symbol address if the target
symbol is non-preemptible, and it shall be a usage error to relocate an
R_AARCH64_FUNCINIT64 with a preemptible or STT_GNU_IFUNC target symbol.

The initial use case for this relocation type shall be for emitting
global variable field initializers for structure protection. With
structure protection, the relocation value computation is tied to the
compiler implementation in such a way that it would not be reasonable to
define a relocation type for it (for example, it may involve computing
a hash using a compiler-determined algorithm), hence the need for the
computation to be implemented as code in the binary.

Part of the AArch64 psABI extension:
https://github.com/ARM-software/abi-aa/issues/340

    [6 lines not shown]
DeltaFile
+19-2lld/ELF/Relocations.cpp
+19-0lld/test/ELF/aarch64-funcinit64.s
+18-0lld/test/ELF/aarch64-funcinit64-invalid.s
+4-1lld/ELF/Arch/AArch64.cpp
+1-0lld/ELF/Target.h
+61-35 files

LLVM/project 60a2795clang/docs ReleaseNotes.rst, clang/lib/CodeGen CGExprComplex.cpp

[Clang][CodeGen] Use EmitLoadOfLValue instead of EmitLoadOfScalar to get LHS for complex compound assignment (#166798)

- Fixes https://github.com/llvm/llvm-project/issues/166512
- `ComplexExprEmitter::EmitCompoundAssignLValue` is calling
`EmitLoadOfScalar(LValue, SourceLocation)` to load the LHS value in the
case that it's non-complex, however this function requires that the
value is a simple LValue - issue occurred because the LValue in question
was a bitfield LValue. I changed it to use this function which seems to
handle all of the different cases (deferring to the original
`EmitLoadOfScalar` if it's a simple LValue)
DeltaFile
+25-0clang/test/CodeGen/complex-compound-assign-bitfield.c
+2-2clang/lib/CodeGen/CGExprComplex.cpp
+1-0clang/docs/ReleaseNotes.rst
+28-23 files

LLVM/project fb8155cllvm/utils/gn/secondary/llvm/lib/Support BUILD.gn

[gn build] Port 8fce476c8122
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
+1-01 files

LLVM/project 06f0d30llvm/utils/gn/secondary/llvm/lib/Target/ARM BUILD.gn, llvm/utils/gn/secondary/llvm/unittests/Target/ARM BUILD.gn

[gn] port 0ae2bccde45 more
DeltaFile
+4-1llvm/utils/gn/secondary/llvm/lib/Target/ARM/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/unittests/Target/ARM/BUILD.gn
+5-12 files

LLVM/project fc95558llvm/utils/TableGen RegisterInfoEmitter.cpp

[TableGen] Use size_t for SubRegIndicesSize (NFC) (#168728)

This patch changes the type of SubRegIndicesSize to size_t.  The
original type deduced for "auto" is a signed type, but size_t, an
unsigned type, is safe here according to the usage.
DeltaFile
+2-2llvm/utils/TableGen/RegisterInfoEmitter.cpp
+2-21 files

LLVM/project 36f9d5aclang/docs AddressSanitizer.rst, compiler-rt/include/sanitizer common_interface_defs.h

[ASan] Document define to disable container overflow checks at compile time. (#163468)

Document a define to allow library developers to support disabling 
AddressSanitizer's container overflow detection in template code at 
compile time.

The primary motivation is to reduce false positives in environments
where
libraries and frameworks that cannot be recompiled with sanitizers
enabled
are called from application code. This supports disabling checks when
the
runtime environment cannot be reliably controlled to use ASAN_OPTIONS.

Key changes:
- Use the define `__SANITIZER_DISABLE_CONTAINER_OVERFLOW__` to disable
  instrumentation at compile time
- Implemented redefining the container overflow APIs in
common_interface_defs.h

    [16 lines not shown]
DeltaFile
+118-0compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.cpp
+52-0clang/docs/AddressSanitizer.rst
+52-0compiler-rt/include/sanitizer/common_interface_defs.h
+50-0compiler-rt/test/asan/TestCases/disable_container_overflow_checks.cpp
+9-5compiler-rt/lib/asan/asan_errors.cpp
+281-55 files

LLVM/project a757c4ellvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp

CodeGen: Add subtarget to TargetLoweringBase constructor (#168620)

Currently LibcallLoweringInfo is defined inside of TargetLowering,
which is owned by the subtarget. Pass in the subtarget so we can
construct LibcallLoweringInfo with the subtarget. This is a temporary
step that should be revertable in the future, after LibcallLoweringInfo
is moved out of TargetLowering.
DeltaFile
+16-14llvm/unittests/Target/AArch64/AArch64SelectionDAGTest.cpp
+4-2llvm/include/llvm/CodeGen/TargetLowering.h
+3-2llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+3-2llvm/unittests/CodeGen/MFCommon.inc
+3-2llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+4-0llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+33-2225 files not shown
+62-4931 files

LLVM/project 1233c4bclang/test/Driver crash-ir-repro.cpp

Minor fix of reproducer in #165572 (#168751)

DeltaFile
+1-2clang/test/Driver/crash-ir-repro.cpp
+1-21 files

LLVM/project 5a7467aclang/lib/Sema SemaPPC.cpp

Use unsigned literals for FC value checking
DeltaFile
+3-2clang/lib/Sema/SemaPPC.cpp
+3-21 files

LLVM/project d2c7c60llvm/test/Transforms/InstSimplify/ConstProp vector-calls.ll

[InstSimplify] Add whitespace to struct declarations in vector-calls.ll. NFC

This matches how IR is printed.
DeltaFile
+12-12llvm/test/Transforms/InstSimplify/ConstProp/vector-calls.ll
+12-121 files

LLVM/project 3adcfd2llvm/utils/gn/secondary/llvm/lib/Target/NVPTX BUILD.gn

[gn] port e47e9f3b7b136 (nvptx SDNodeInfo)
DeltaFile
+7-0llvm/utils/gn/secondary/llvm/lib/Target/NVPTX/BUILD.gn
+7-01 files

LLVM/project f6a508eclang-tools-extra/clang-doc BitcodeReader.cpp BitcodeReader.h

[clang-doc] Remove uses of consumeError

In BitcodeReader, we were using consumeError(), which drops the error
and hides it from normal usage. To avoid that, we can just slightly
tweak the API to return an Expected<T>, and propagate the error
accordingly.
DeltaFile
+20-26clang-tools-extra/clang-doc/BitcodeReader.cpp
+1-1clang-tools-extra/clang-doc/BitcodeReader.h
+21-272 files

LLVM/project bc5f3d2llvm/utils/gn/secondary/llvm/lib/Target/ARM BUILD.gn

[gn] port 0ae2bccde45 (arm SDNodeInfo)
DeltaFile
+7-0llvm/utils/gn/secondary/llvm/lib/Target/ARM/BUILD.gn
+7-01 files

LLVM/project 1f34550llvm/utils/gn/secondary/lldb/tools/lldb-server BUILD.gn

[gn] port 2675dcd72d02ee1ac (lldb-server PlatformOptions.inc)
DeltaFile
+6-0llvm/utils/gn/secondary/lldb/tools/lldb-server/BUILD.gn
+6-01 files

LLVM/project 746aee7llvm/lib/Transforms/Utils LoopPeel.cpp

Add assert
DeltaFile
+1-0llvm/lib/Transforms/Utils/LoopPeel.cpp
+1-01 files

LLVM/project bbcc307llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp

Update TargetLowering.cpp

Co-authored-by: Sergei Barannikov <barannikov88 at gmail.com>
DeltaFile
+2-2llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+2-21 files

LLVM/project 214d716llvm/include/llvm/MC MCDirectives.h, llvm/lib/MC MCGOFFStreamer.cpp MCAsmStreamer.cpp

Replace MCSA_Code/Data

Use MCSA_ELF_TypeFunction/TypeObject instead.
DeltaFile
+5-4llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+2-4llvm/lib/MC/MCGOFFStreamer.cpp
+2-4llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
+0-2llvm/lib/MC/MCAsmStreamer.cpp
+0-2llvm/lib/MC/MCMachOStreamer.cpp
+0-2llvm/include/llvm/MC/MCDirectives.h
+9-181 files not shown
+9-207 files

LLVM/project 98b1708mlir/docs/Dialects NVVMDialect.md, mlir/include/mlir/Dialect/LLVMIR CMakeLists.txt

[MLIR][NVVM] Doc fixes (#168716)

DeltaFile
+1-6mlir/docs/Dialects/NVVMDialect.md
+1-1mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
+2-72 files

LLVM/project 71dee8bllvm/lib/Target/AMDGPU SIRegisterInfo.h SIRegisterInfo.td, llvm/test/CodeGen/AMDGPU regalloc-spill-wmma-scale.ll

[AMDGPU] Prioritize allocation of low 256 VGPR classes

If we have 1024 VGPRs available we need to give priority to the
allocation of these registers where operands can only use low 256.
That is noteably scale operands of V_WMMA_SCALE instructions.
Otherwise large tuples will be allocated first and take all low
registers, so we would have to spill to get a room for these
scale registers.

Allocation priority itself does not eliminate spilling completely
in large kernels, although helps to some degree. Increasing spill
weight of a restricted class on top of it helps.
DeltaFile
+11-0llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+2-3llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
+1-1llvm/lib/Target/AMDGPU/SIRegisterInfo.td
+14-43 files

LLVM/project ddbdc9allvm/test/CodeGen/AMDGPU regalloc-spill-wmma-scale.ll

[AMDGPU] Add baseline test to show spilling of wmma scale. NFC (#168163)

This is to show the spilling of WMMA scale values which are limited
to low 256 VGPRs. We have free registers, just RA allocates low 256
first.
DeltaFile
+131-0llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
+131-01 files

LLVM/project 2635f43llvm/include/llvm/Analysis TargetLibraryInfo.def TargetLibraryInfo.td, llvm/lib/Analysis TargetLibraryInfo.cpp

[Analysis] Move TargetLibraryInfo data to TableGen

The collection of library function names in TargetLibraryInfo faces
similar challenges as RuntimeLibCalls in the IR component. The number
of function names is large, there are numerous customizations based
on the triple (including alternate names), and there is a lot of
replicated data in the signature table.

The ultimate goal would be to capture all lbrary function related
information in a .td file. This PR brings the current .def file to
TableGen, almost as a 1:1 replacement. However, there are some
improvements which are not possible in the current implementation:

- the function names are now stored as a long string together with
  an offset table.
- the table of signatures is now deduplicated, using an offset table
  for access.

The size of the object file decreases about 34kB with these changes.

    [6 lines not shown]
DeltaFile
+0-2,728llvm/include/llvm/Analysis/TargetLibraryInfo.def
+1,697-0llvm/include/llvm/Analysis/TargetLibraryInfo.td
+186-0llvm/utils/TableGen/Basic/TargetLibraryInfoEmitter.cpp
+115-0llvm/test/TableGen/TargetLibraryInfo.td
+18-52llvm/lib/Analysis/TargetLibraryInfo.cpp
+44-0llvm/include/llvm/Analysis/TargetLibraryInfoImpl.td
+2,060-2,78013 files not shown
+2,101-2,80719 files

LLVM/project a4456a5utils/bazel MODULE.bazel.lock .bazelrc

[bazel] Flip --enable_bzlmod to true (#168555)

Switches to the config added in #164891

Fixes #55924
DeltaFile
+14-14utils/bazel/MODULE.bazel.lock
+1-3utils/bazel/.bazelrc
+15-172 files

LLVM/project 869f085llvm/utils/TableGen/Common CodeGenDAGPatterns.cpp CodeGenDAGPatterns.h

[TableGen] Eliminate the dependency on SDNode definition order

Fix CodeGenDAGPatterns::ParseDefaultOperands() not to depend on the
first SDNode defined being usable as an output pattern operator.

Presently, each `OperandWithDefaultOps` record is processed by
constructing an instance of TreePattern from its `DefaultOps` argument
that has the form `(ops ...)`. Nevertheless the result of processing
the root operator of that DAG is not inspected by `ParseDefaultOperands()`
function itself, that operator has to be parseable by the underlying
`TreePattern::ParseTreePattern()` function. For that reason, a temporary
DAG is created by replacing the root operator of `DefaultOps` argument
from `ops` to the first SDNode defined, which is usually `def imm : ...`
defined in `TargetSelectionDAG.td` file.

This results in misleading errors being reported when defining new
`SDNode` types, if the new definition happens to be added before the
`def imm : ...` line. The error is reported by several test cases
executed by `check-llvm` target, as well as if one of the targets

    [8 lines not shown]
DeltaFile
+23-10llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+6-0llvm/utils/TableGen/Common/CodeGenDAGPatterns.h
+29-102 files

LLVM/project 6f8e87bllvm/utils/gn/secondary/clang/include/clang/Sema BUILD.gn, llvm/utils/gn/secondary/clang/lib/Sema BUILD.gn

[gn] port 22a2cae5d6735 (AttrIsTypeDependent.inc)
DeltaFile
+5-0llvm/utils/gn/secondary/clang/include/clang/Sema/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/lib/Sema/BUILD.gn
+6-02 files

LLVM/project 0f615dc.github/workflows build-metrics-container.yml

[Github] Make metrics container build use common actions (#168667)

This patch makes the metrics container build/push job use the common
container build/push actions to simplify the workflow by quite a bit.
DeltaFile
+15-37.github/workflows/build-metrics-container.yml
+15-371 files

LLVM/project 8ab7b60.github/workflows/containers/github-action-ci Dockerfile, .github/workflows/containers/github-action-ci-windows Dockerfile

[Github] Bump Runner Version in CI Containers

To ensure we stay ahead of the ~6 month time horizon. This new version
seems to be mostly small version bumps and minor fixes that probably are
not too relevant to us.
DeltaFile
+1-1.github/workflows/containers/github-action-ci-windows/Dockerfile
+1-1.github/workflows/containers/github-action-ci/Dockerfile
+2-22 files

LLVM/project 3890a4allvm/test/tools/llvm-mca/RISCV/SpacemitX60 rvv-arithmetic.s rvv-bitwise.s

[RISCV] Update X60 ReleaseAtCycles for Vector Integer Arithmetic Instructions (#152557)

This PR updates the ReleaseAtCycles for all instructions described in
Section 11 of the RVV Spec: Vector Integer Arithmetic Instructions. The
data used comes from camel-cdr.
DeltaFile
+1,177-1,177llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-arithmetic.s
+937-937llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-bitwise.s
+753-753llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-mul-div.s
+721-721llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-comparison.s
+521-521llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-fma.s
+289-289llvm/test/tools/llvm-mca/RISCV/SpacemitX60/rvv-minmax.s
+4,398-4,3983 files not shown
+4,733-4,7179 files

LLVM/project 0c7d826lldb/include/lldb/Host/common DiagnosticsRendering.h, lldb/include/lldb/Utility DiagnosticsRendering.h

[NFC][lldb] move DiagnosticsRendering to Host (#168696)

NFC patch which moves `DiagnosticsRendering` from `Utility` to `Host`.

This refactoring is needed for
https://github.com/llvm/llvm-project/pull/168603. It adds a method to
check whether the current terminal supports Unicode or not. This will be
OS dependent and a better fit for `Host`. Since `Utility` cannot depend
on `Host`, `DiagnosticsRendering` must live in `Host` instead.
DeltaFile
+235-0lldb/source/Host/common/DiagnosticsRendering.cpp
+0-235lldb/source/Utility/DiagnosticsRendering.cpp
+99-0lldb/unittests/Host/common/DiagnosticsRenderingTest.cpp
+0-99lldb/unittests/Utility/DiagnosticsRenderingTest.cpp
+81-0lldb/include/lldb/Host/common/DiagnosticsRendering.h
+0-81lldb/include/lldb/Utility/DiagnosticsRendering.h
+415-41513 files not shown
+425-42519 files