LLVM/project 930066futils/bazel MODULE.bazel.lock MODULE.bazel, utils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Add explicit dep on protobuf (#168928)

This is required for correctly loading the protobuf rules. It's
possible we could drop the version here to a lower version, as long as
that version supports the versions of bazel we support. I picked this
because it is the current version being used by bazel 8.0.0 (which is
defined in the .bazelversion). Users can override this in their project
anyways if they need an older one
DeltaFile
+349-0utils/bazel/MODULE.bazel.lock
+9-8utils/bazel/MODULE.bazel
+2-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+360-83 files

LLVM/project d015af2clang/include/clang/CIR/Sema CIRAnalysisKind.h FallThroughWarning.h, clang/lib/CIR/FrontendAction CIRGenAction.cpp

Skeleton
DeltaFile
+170-0clang/lib/CIR/Sema/FallThroughWarning.cpp
+117-0clang/include/clang/CIR/Sema/CIRAnalysisKind.h
+67-0clang/lib/CIR/Sema/CIRAnalysisKind.cpp
+66-0clang/include/clang/CIR/Sema/FallThroughWarning.h
+36-0clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+19-0clang/lib/CIR/Sema/CMakeLists.txt
+475-04 files not shown
+485-010 files

LLVM/project 01a4177llvm/include/llvm/Frontend/Directive DirectiveBase.td, llvm/include/llvm/Frontend/OpenMP OMP.td

[OpenMP] Introduce "loop sequence" as directive association

OpenMP 6.0 introduced a `fuse` directive, and with it a "loop sequence"
as the associated code. What used to be "loop association" has become
"loop-nest association".

Rename Association::Loop to LoopNest, add Association::LoopSeq to
represent the "loop sequence" association.

Change the association of fuse from "block" to "loop sequence".
DeltaFile
+12-12llvm/include/llvm/Frontend/OpenMP/OMP.td
+10-9llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
+3-2llvm/include/llvm/Frontend/Directive/DirectiveBase.td
+3-2llvm/test/TableGen/directive1.td
+3-2llvm/test/TableGen/directive2.td
+2-2llvm/lib/Frontend/OpenMP/OMP.cpp
+33-293 files not shown
+38-349 files

LLVM/project 88055b3clang-tools-extra/clang-doc ClangDoc.cpp Representation.h

[clang-doc][NFC] Remove unused headers (#168806)

Removes unused headers or replaces them with headers that directly
provide the symbol instead. For example, `Serialize.h` included `AST.h`,
but it was actually `Serialize.cpp` that needed concept expressions, so
now it includes just `ExprConcepts.h`.
DeltaFile
+0-4clang-tools-extra/clang-doc/ClangDoc.cpp
+1-3clang-tools-extra/clang-doc/Representation.h
+0-4clang-tools-extra/clang-doc/BitcodeWriter.h
+0-3clang-tools-extra/clang-doc/Serialize.h
+2-0clang-tools-extra/clang-doc/Serialize.cpp
+0-2clang-tools-extra/clang-doc/ClangDoc.h
+3-165 files not shown
+4-2311 files

LLVM/project be8c7c9llvm/lib/Target/AMDGPU SIISelLowering.cpp AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel irtranslator-amdgpu_kernel.ll regbankselect-widen-scalar-loads.mir

AMDGPU: Use ConstantPool as source value for DAG lowered kernarg loads

This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.
DeltaFile
+216-216llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
+76-76llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-widen-scalar-loads.mir
+73-73llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir
+22-9llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+20-7llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+8-8llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
+415-3894 files not shown
+433-39110 files

LLVM/project 954dc93llvm/lib/Target/AMDGPU SIISelLowering.cpp

AMDGPU: Handle invariant when lowering global loads

Global with invariant should be treated identically to
constant.
DeltaFile
+1-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1-11 files

LLVM/project 7acfbc2llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlan.h, llvm/test/Transforms/LoopVectorize pointer-induction-index-width-smaller-than-iv-width.ll

[VPlan] Remove PtrIV::IsScalarAfterVectorization, use VPlan analysis. (#168289)

Remove `VPWidenPointerInductionRecipe::IsScalarAfterVectorization` and
replace it with `onlyScalarValuesUsed`. This removes the need to carry
state from the legacy cost model through VPlan, and the VPlan-based
analysis gives more accurate results, avoiding a number of extracts.

PR: https://github.com/llvm/llvm-project/pull/168289
DeltaFile
+11-18llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
+10-7llvm/test/Transforms/LoopVectorize/pointer-induction-index-width-smaller-than-iv-width.ll
+5-10llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-8llvm/lib/Transforms/Vectorize/VPlan.h
+4-7llvm/test/Transforms/LoopVectorize/X86/interleave-opaque-pointers.ll
+1-5llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll
+34-552 files not shown
+36-588 files

LLVM/project 155a7d8llvm/include/llvm/Support JSON.h

[Support] Add vector::erase to JSON::Array (#168835)

DeltaFile
+2-0llvm/include/llvm/Support/JSON.h
+2-01 files

LLVM/project 1c8ddb0llvm/test/CodeGen/AMDGPU load-global-invariant.ll

AMDGPU: Add baseline test for split/widen invariant loads
DeltaFile
+70-0llvm/test/CodeGen/AMDGPU/load-global-invariant.ll
+70-01 files

LLVM/project b3d1e92compiler-rt/test/asan/TestCases stack_container_dynamic_lib.cpp disable_container_overflow_checks.cpp

[ASAN] Disable broken __SANITIZER_DISABLE_CONTAINER_OVERFLOW__ tests on iOS/Android (#168821)

The tests added by #163468 appear to be broken due to lack of libcxx support (?).

Marking unsupported everywhere for now since it passes on some platforms and fails on others, and
I don't know the full list.

Android fail: https://lab.llvm.org/buildbot/#/builders/186/builds/14106
DeltaFile
+2-0compiler-rt/test/asan/TestCases/stack_container_dynamic_lib.cpp
+1-0compiler-rt/test/asan/TestCases/disable_container_overflow_checks.cpp
+3-02 files

LLVM/project bd003aallvm/lib/Transforms/Instrumentation BoundsChecking.cpp

correct logic

Created using spr 1.3.7
DeltaFile
+1-1llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
+1-11 files

LLVM/project 54d9d4dllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 commutable-node-with-non-sched-parent.ll

[SLP]Check if the non-schedulable phi parent node has unique operands

Need to check if the non-schedulable phi parent node has unique
operands, if the incoming node has copyables, and the node is
commutative. Otherwise, there might be issues with the correct
calculation of the dependencies.

Fixes #168589
DeltaFile
+54-0llvm/test/Transforms/SLPVectorizer/X86/commutable-node-with-non-sched-parent.ll
+28-8llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+82-82 files

LLVM/project 777935cutils/bazel WORKSPACE

[bazel] Delete WORKSPACE file (#168926)

This has been replaced by the MODULE.bazel file. Users can still use
their own WORKSPACE files, but they didn't inherit this file anyways.
Users should migrate to bzlmod as with bazel 9.x that is required.
DeltaFile
+0-215utils/bazel/WORKSPACE
+0-2151 files

LLVM/project 0041660llvm/lib/Transforms/Instrumentation BoundsChecking.cpp

undo stray change

Created using spr 1.3.7
DeltaFile
+1-2llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
+1-21 files

LLVM/project 827ff2cllvm/test/Transforms/LoopVectorize/AArch64 fold-tail-low-trip-count.ll, llvm/test/Transforms/LoopVectorize/X86 fold-tail-low-trip-count.ll induction-costs.ll

[LV] Add tests for loops with low trip counts requiring tail-folding.

Add extra tests for over-eager tail-folding for tiny trip-count loops.

Reduced from https://github.com/llvm/llvm-project/issues/167858.
DeltaFile
+116-0llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
+99-0llvm/test/Transforms/LoopVectorize/X86/fold-tail-low-trip-count.ll
+44-28llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
+56-10llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
+19-36llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
+334-745 files

LLVM/project c90fb56compiler-rt/test lit.common.cfg.py

Revert "[compiler-rt] Default to Lit's Internal Shell (#168232)"

This reverts commit b725bdba1faf256c725f5fd12c581acb381bf0d3.

This is still causing Darwin failures. There are six tests that are
still failing:
AddressSanitizer-x86_64-darwin.TestCases/Posix.deep_call_stack.cpp
AddressSanitizer-x86_64-darwin.TestCases.scariness_score_test.cpp
AddressSanitizer-x86_64h-darwin.TestCases/Posix.deep_call_stack.cpp
ORC-x86_64-darwin.TestCases/Darwin/x86-64.objc-imageinfo.S
UBSan-Minimal-x86_64-darwin.TestCases.test-darwin-interface.c
UBSan-Minimal-x86_64h-darwin.TestCases.test-darwin-interface.c

There are a couple failure modes:
1. deep_call_stack.cpp and scariness_score_test.cpp are failing due to
   ulimit issues that we have observed previously.
2. objc-imageinfo.S is failing in the x86 variant because I only updated
   the AArch64 variant.
3. test-darwin-interface.c is using subshells, so obviously fails with

    [2 lines not shown]
DeltaFile
+7-4compiler-rt/test/lit.common.cfg.py
+7-41 files

LLVM/project b5c0fcdcompiler-rt/test/sanitizer_common/TestCases/Posix posix_spawn.c

[sanitizer_common] posix_spawn test should forward DYLD_LIBRARY_PATH (#168795)

This test explicitly sets the environment for a spawned process. Without
DYLD_LIBRARY_PATH, the spawned process may use a ASAN runtime other than
the one that was used by the parent process That other runtime library
may not work at all, or may not be in the default search path. Either
case can cause the spawned process to die before it makes it to main,
thus failing the test. The compiler-rt lit config sets the library path
variable
[here](https://github.com/llvm/llvm-project/blob/main/compiler-rt/test/lit.common.cfg.py#L84)
(i.e. to ensure that just-built runtimes are used for tests, in the case
of a standalone compiler-rt build), and that is currently used by the
parent process but not the spawned ones.

My change only forwards the variable for Darwin (DYLD_LIBRARY_PATH), but
we **_ought_** to also forward the variable for other platforms.
However, it's not clear that there's any good way to plumb this into the
test, since some platforms actually have multiple library path variables
which would need to be forwarded (see: SunOS

    [3 lines not shown]
DeltaFile
+16-1compiler-rt/test/sanitizer_common/TestCases/Posix/posix_spawn.c
+16-11 files

LLVM/project 30d3db8clang/lib/AST ASTContext.cpp, clang/test/SemaOpenCL builtins-extended-image-param-gfx1100-err.cl builtins-extended-image-param-gfx942-err.cl

[AMDGPU] Treating HIP/C++ _Float16 same as OpenCL's half
DeltaFile
+15-0clang/lib/AST/ASTContext.cpp
+1-1clang/test/SemaOpenCL/builtins-extended-image-param-gfx1100-err.cl
+1-1clang/test/SemaOpenCL/builtins-extended-image-param-gfx942-err.cl
+17-23 files

LLVM/project 6ff15f4. pyproject.toml

[lldb] Configure pyright to the documented minimum python version (#162952)

Pyright is an MIT-licensed static type checker and can be found at
    https://github.com/microsoft/pyright
there are also various integrations to use it as an LSP server in
various editors which is the main way I use it.

It's useful on our python scripts to detect issues such as where
functions are called with unexpected types or it's possible to access
obj.attr on an object that doesn't have that attribute. It can be used
without any configuration this config setting causes it to also report
issues with type hints that do not meet our python 3.8 minimum such as
this one from dap_server.py:
```
        init_commands: list[str],
```
subscripting the builtin type like that requires python 3.9 while the
3.8 equivalent is:
```

    [17 lines not shown]
DeltaFile
+5-0pyproject.toml
+5-01 files

LLVM/project 4100845mlir/lib/Interfaces ValueBoundsOpInterface.cpp

[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in ValueBoundsOpInterface.cpp (NFC)
DeltaFile
+1-1mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
+1-11 files

LLVM/project bfbd191mlir/include/mlir/IR PDLPatternMatch.h.inc, mlir/lib/Rewrite ByteCode.cpp ByteCode.h

[mlir] Replace `llvm::OwningArrayRef` with `std::vector` (#168803)

There are several places where we use `llvm::OwningArrayRef`. The
interface to this requires us to first construct temporary storage, then
allocate space and set the allocated memory to 0, then copy the values
we actually want into that memory, then move the array into place.
Instead we can just do it all inline in a single pass by using
`std::vector`. In one case we actually allocate a completely separate
container and then allocate + copy the data over because
`llvm::OwningArrayRef` does not (and can't) support `push_back`.

Note that `llvm::SmallVector` is not a suitable replacement here because
we rely on reference stability on move construction: when the outer
container reallocates, we need the the contents of the inner containers
to be fixed in memory, and `llvm::SmallVector` does not give us that
guarantee.
DeltaFile
+26-34mlir/lib/Rewrite/ByteCode.cpp
+4-8mlir/include/mlir/IR/PDLPatternMatch.h.inc
+3-4mlir/lib/Rewrite/ByteCode.h
+33-463 files

LLVM/project 01e5e4fllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[DAGCombiner] Remove unneeded m_BitReverse from visitBITREVERSE. NFC (#168918)

We already know we're looking at BITREVERSE, we can match on the source
operand.
DeltaFile
+2-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+2-21 files

LLVM/project 6d52efc.github/workflows bazel-checks.yml

[Github] Error on HTTP 4xx Errors (#168919)

When downloading bazelisk/buildifier, we use curl, which still returns
exit code zero on HTTP 4xx errors unless we pass --fail. This patch adds
--fail flags so that error messages are more clear.
DeltaFile
+2-2.github/workflows/bazel-checks.yml
+2-21 files

LLVM/project e79c7c1llvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp, llvm/test/CodeGen/AMDGPU invariant-load-no-alias-store.ll

AMDGPU: Handle invariant loads when considering if a load can be scalar (#168787)

DeltaFile
+14-1llvm/test/CodeGen/AMDGPU/invariant-load-no-alias-store.ll
+2-1llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+16-22 files

LLVM/project 62deee4lldb/bindings/interface SBFrameExtensions.i

[LLDB] Add a child property to compliment the existing parent property (#168619)

I've been working on some scripts that evaluate the parent and child
frame. It's been very annoying that the parent frame has a property but
not the child. So I've added this to the extensions, I would've
preferred to return None, but because the existing impl returns an
invalid SBFrame, so I'm conforming to that API.

```
(lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
>>> lldb.frame
frame #0: 0x0000555555555200 fib.out`main
>>> lldb.frame.parent
frame #1: 0x00007ffff782a610 libc.so.6`__libc_start_call_main + 128
>>> lldb.frame.parent.child
frame #0: 0x0000555555555200 fib.out`main
```
DeltaFile
+8-0lldb/bindings/interface/SBFrameExtensions.i
+8-01 files

LLVM/project f163081llvm/test/tools/dsymutil/AArch64 stmt-seq-macho.test dwarf5-str-offsets-base-strx.test, llvm/test/tools/dsymutil/ARM stmt-seq-macho.test dwarf5-str-offsets-base-strx.test

[llvm][dsymutil][test] Create dedicated AArch64 directory (#168895)

Currently the tests for LLVM targets `AArch64` and `ARM` were in the
same directory. But if you only configured LLVM for one target (e.g.,
just `AArch64`, which is how I ran into this), then all tests under the
ARM directory are marked `UNSUPPORTED`.

This patch moves all the tests that are capable of running on
`AArch64`-only targets into a dedicated `AArch64` directory. The tests
that expected a plain `ARM` target were kept in the `ARM` directory.

Drive-by:
* Rename the `dummy-debug-map-amr64.map` to `dummy-debug-map-arm64.map`
(note the typo in `amr64`)
DeltaFile
+2,069-0llvm/test/tools/dsymutil/AArch64/stmt-seq-macho.test
+0-2,069llvm/test/tools/dsymutil/ARM/stmt-seq-macho.test
+433-0llvm/test/tools/dsymutil/AArch64/dwarf5-str-offsets-base-strx.test
+0-433llvm/test/tools/dsymutil/ARM/dwarf5-str-offsets-base-strx.test
+236-0llvm/test/tools/dsymutil/AArch64/dwarf5-dwarf4-combination-macho.test
+0-236llvm/test/tools/dsymutil/ARM/dwarf5-dwarf4-combination-macho.test
+2,738-2,73853 files not shown
+3,803-3,79359 files

LLVM/project e96cc99cross-project-tests/debuginfo-tests/clang_llvm_roundtrip simplified_template_names.test, llvm/include/llvm/DebugInfo/DWARF DWARFTypePrinter.h

[llvm][DebugInfo] Unwrap template parameters that are typedefs when reconstructing DIE names (#168734)

Depends on: 
* https://github.com/llvm/llvm-project/pull/168725

When compiling with `-glldb`, we repoint the `DW_AT_type` of a DIE to be
a typedef that refers to the `preferred_name`. I.e.,:
```
template <typename T> structure t7;
using t7i = t7<int>;
template <typename T> struct __attribute__((__preferred_name__(t7i))) t7 {};
template <typename... Ts> void f1()

int main() { f1<t7i>(); }
```
would produce following (minified) DWARF:
```
DW_TAG_subprogram
  DW_AT_name      ("_STN|f1|<t7<int> >")

    [21 lines not shown]
DeltaFile
+19-3llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h
+0-1cross-project-tests/debuginfo-tests/clang_llvm_roundtrip/simplified_template_names.test
+19-42 files

LLVM/project ccdb719lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints TestSimpleHWBreakpoints.py

[lldb] Fix a test if hardware breakpoints are not supported (#168813)

If `HardwareBreakpointTestBase.supports_hw_breakpoints()` returns False,
`SimpleHWBreakpointTest.does_not_support_hw_breakpoints()` returns None,
so the test runs and fails. However, it should be skipped instead.

The test was added in #146602, while `supports_hw_breakpoints()` was
changed in #146609, which was landed earlier despite having a bigger
number.
DeltaFile
+10-19lldb/test/API/functionalities/breakpoint/hardware_breakpoints/simple_hw_breakpoints/TestSimpleHWBreakpoints.py
+10-191 files

LLVM/project f914426clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp Origins.cpp

lifetime-safety-multi-origin
DeltaFile
+217-96clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+94-53clang/lib/Analysis/LifetimeSafety/Origins.cpp
+104-23clang/test/Sema/warn-lifetime-safety.cpp
+86-19clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+19-50clang/lib/Sema/CheckExprLifetime.cpp
+31-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+551-24111 files not shown
+605-28317 files

LLVM/project 66ddc9boffload/include/Shared Debug.h, offload/libomptarget OffloadRTL.cpp PluginManager.cpp

[OFFLOAD] Add support for more fine grained debug messages control (#165416)

This PR introduces new debug macros that allow a more fined control of
which debug message to output and introduce C++ stream style for debug
messages.

Changing existing messages (except a few that I changed for testing)
will come in subsequent PRs.

I also think that we should make debug enabling OpenMP agnostic but, for
now, I prioritized maintaing the current libomptarget behavior for now,
and we might need more changes further down the line as we we decouple
libomptarget.
DeltaFile
+281-0offload/include/Shared/Debug.h
+1-1offload/libomptarget/OffloadRTL.cpp
+1-1offload/libomptarget/PluginManager.cpp
+2-0offload/plugins-nextgen/host/src/rtl.cpp
+285-24 files