LLVM/project 76cffd3.ci generate_test_report_lib_test.py generate_test_report_lib.py

[CI] Tweak wording for builds with passing tests and build errors (#171436)

"All tests passed" is too easily interpreted as every possible test was
run and was fine. A lot of the time it means all the tests that didn't
fail to build ran and were fine.

Maybe the wording is still too subtle but at least it hints to the idea
that the tests run might be fewer than if the build had no compilation
errors.
DeltaFile
+4-4.ci/generate_test_report_lib_test.py
+2-2.ci/generate_test_report_lib.py
+6-62 files

LLVM/project c61a481llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize hoist-predicated-loads-with-predicated-stores.ll

[VPlan] Use SCEV to prove non-aliasing for stores at different offsets. (#170347)

Extend the logic add in https://github.com/llvm/llvm-project/pull/168771
to also allow sinking stores past stores in the same noalias set by
checking if we can prove no-alias via the distance between accesses,
checked via SCEV.

PR: https://github.com/llvm/llvm-project/pull/170347
DeltaFile
+81-15llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+18-30llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
+99-452 files

LLVM/project 1a66474clang/test/CodeGen/AArch64 fmv-explicit-priority.c

[clang][FMV][AArch64] Remove O3 from failing test (#171457)

This fixes the buildbot failures from
https://github.com/llvm/llvm-project/pull/150267.

I could not reproduce them locally but my intuition suggests that the
-O3 option on the RUN line behaves incosistently on different hosts
judging from the error logs.

My intention was to run an integration test which will use llvm's
globalopt pass, but there's no need actually. We have unittests in place
for it.
DeltaFile
+76-134clang/test/CodeGen/AArch64/fmv-explicit-priority.c
+76-1341 files

LLVM/project d922bd8flang/test/Lower/OpenMP do-simd-firstprivate-lastprivate.f90, llvm/lib/Target/Hexagon HexagonVectorCombine.cpp

Merge branch 'main' into users/kparzysz/dims-modifier
DeltaFile
+261-0llvm/test/Transforms/InstCombine/AArch64/tbl.ll
+215-0llvm/test/Transforms/InstCombine/ARM/tbl.ll
+113-23llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+89-0flang/test/Lower/OpenMP/do-simd-firstprivate-lastprivate.f90
+0-65llvm/test/Transforms/InstCombine/AArch64/tbl1.ll
+12-43llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
+690-13123 files not shown
+801-25329 files

LLVM/project 7f2bbballvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine/AArch64 tbl.ll tbl1.ll

[AArch64][ARM] Optimize more `tbl`/`tbx` calls into `shufflevector` (#169748)

Resolves #169701.

This PR extends the existing InstCombine operation which folds `tbl1`
intrinsics to `shufflevector` if the mask operand is constant. Before
this change, it only handled 64-bit `tbl1` intrinsics with no
out-of-bounds indices. I've extended it to support both 64-bit and
128-bit vectors, and it now handles the full range of `tbl1`-`tbl4` and
`tbx1`-`tbx4`, as long as at most two of the input operands are actually
indexed into.

For the purposes of `tbl`, we need a dummy vector of zeroes if there are
any out-of-bounds indices, and for the purposes of `tbx`, we use the
"fallback" operand. Both of those take up an operand for the purposes of
`shufflevector`.

This works a lot like https://github.com/llvm/llvm-project/pull/169110,
with some added complexity because we need to handle multiple operands.

    [11 lines not shown]
DeltaFile
+261-0llvm/test/Transforms/InstCombine/AArch64/tbl.ll
+215-0llvm/test/Transforms/InstCombine/ARM/tbl.ll
+113-23llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+0-65llvm/test/Transforms/InstCombine/AArch64/tbl1.ll
+0-35llvm/test/Transforms/InstCombine/ARM/tbl1.ll
+589-1235 files

LLVM/project c66eb25llvm/bindings/ocaml/llvm llvm_ocaml.c

[OCaml] Fix build

Fix a mistake introduced in https://github.com/llvm/llvm-project/pull/163979:

We should stick with the deprecated LLVMGetGlobalContext() API
in this file, as getGlobalContextForCAPI() is a C++ API that is
not available here.
DeltaFile
+1-1llvm/bindings/ocaml/llvm/llvm_ocaml.c
+1-11 files

LLVM/project b3a5870llvm/docs ReleaseNotes.md

[llvm][docs] Add a release note for LLDB "version -v"

Added by #170772.
DeltaFile
+4-0llvm/docs/ReleaseNotes.md
+4-01 files

LLVM/project 6b58449clang/utils/ClangVisualizers clang.natvis

Update the NATVIS file

ElaboratedType is no longer a thing.
DeltaFile
+0-14clang/utils/ClangVisualizers/clang.natvis
+0-141 files

LLVM/project b2ddb90libcxx/src/include refstring.h

[libc++] Don't try to be compatible with libstdc++ in __libcpp_refstring on iOS (#170816)

iOS doesn't provide a libstdc++ dylib anymore, so we can remove the
compatiblity check whether we can load the dylib.
DeltaFile
+2-2libcxx/src/include/refstring.h
+2-21 files

LLVM/project 51d928fbolt/test/runtime/AArch64 pacret-synchronous-unwind.cpp

[BOLT] Fix pacret-synchronous-unwind.cpp test (#171395)

The test case build a binary from C++, and checks for the number of
functions the PointerAuthCFIFixup pass runs on.
This can change based on the platform. To account for this, the patch
changes the number to a regex.

The test failed when running on RHEL 9.
DeltaFile
+9-6bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
+9-61 files

LLVM/project 1007280bolt/test/runtime/AArch64 pacret-synchronous-unwind.cpp

format
DeltaFile
+6-4bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
+6-41 files

LLVM/project 86dcae3bolt/test/runtime/AArch64 pacret-synchronous-unwind.cpp

Update bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
DeltaFile
+1-1bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
+1-11 files

LLVM/project 5dd6504bolt/test/runtime/AArch64 pacret-synchronous-unwind.cpp

Update bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
DeltaFile
+1-1bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
+1-11 files

LLVM/project fdd416dbolt/test/runtime/AArch64 pacret-synchronous-unwind.cpp

[BOLT] Fix pacret-synchronous-unwind.cpp test

The test case build a binary from C++, and checks for the number of
functions the PointerAuthCFIFixup pass runs on.
This can change based on the platform. To account for this, the patch
changes the number to a regex.
DeltaFile
+5-4bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
+5-41 files

LLVM/project 4afc92elld/ELF Relocations.cpp Symbols.h

[NFC][ELF] Remove pointless NEEDS_TLSGD_TO_IE (#171046)

NEEDS_TLSGD_TO_IE is only ever set when the symbol is preeptible, in
which case addTpOffsetGotEntry will just add the symbol to the GOT and
emit a symbolic tlsGotRel anyway, so there is no need to give it its own
special case.

As well as simplifying the code upstream, this is useful downstream for
Morello, which doesn't really have a proper GD/IE-to-LE relaxation, and
so for GD-to-IE can benefit from being able to use the optimisations
addTpOffsetGotEntry has for non-preemptible symbols, rather than having
to reimplement them here.
DeltaFile
+2-7lld/ELF/Relocations.cpp
+2-2lld/ELF/Symbols.h
+4-92 files

LLVM/project 6960b63llvm/lib/Transforms/Scalar LoopStrengthReduce.cpp

[LSR] Use getSigned() for negated immediate
DeltaFile
+1-1llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+1-11 files

LLVM/project 005ef5c.github/workflows libc-overlay-tests.yml

[libc][CI] update macOS version in workflow configuration (#171228)

upgrade macOS version to latest stable version in github action. We run
into a problem that timed `os_sync` API only becomes available in 14.4+.
DeltaFile
+2-2.github/workflows/libc-overlay-tests.yml
+2-21 files

LLVM/project cf9ba40llvm/lib/Transforms/Utils BypassSlowDivision.cpp

[BypassSlowDivision] Explicitly create bit mask

Explicitly create the high bit mask using getBitsSetFrom() instead
of inverting an integer. This avoids relying on implicit
truncation.
DeltaFile
+4-4llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
+4-41 files

LLVM/project b0bd8bdllvm/lib/CodeGen AtomicExpandPass.cpp

[AtomicExpand] Use getSigned() for negative value
DeltaFile
+2-2llvm/lib/CodeGen/AtomicExpandPass.cpp
+2-21 files

LLVM/project 80fc9bcllvm/lib/Target/Hexagon HexagonISelLowering.cpp

[Hexagon] Use getSigned() for signed value
DeltaFile
+1-1llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
+1-11 files

LLVM/project 7854c9allvm/lib/Target/AArch64 AArch64InstrGISel.td, llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp AArch64RegisterBankInfo.cpp

[GlobalISel][AArch64] Added support for sli intrinsic

sli intrinsic now lowers correctly for all vector types.
DeltaFile
+0-10llvm/test/CodeGen/AArch64/arm64-vshift.ll
+8-1llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+7-0llvm/lib/Target/AArch64/AArch64InstrGISel.td
+2-0llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+17-114 files

LLVM/project 748e7afflang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Integration/OpenMP do-simd-firstprivate-lastprivate-runtime.f90

[flang][OpenMP] Fix firstprivate not working with lastprivate in DO SIMD (#170163)

This fixes a bug where firstprivate was ignored when the same variable
had both firstprivate and lastprivate clauses in a do simd construct.

What was broken:
```
integer :: a
a = 10
!$omp do simd firstprivate(a) lastprivate(a)
do i = 1, 1
   print *, a  ! Should print 10, but printed garbage/0
   a = 20
end do
!$omp end do simd
print *, a  ! Correctly prints 20
```

Inside the loop, [a] wasn't being initialized from the firstprivate

    [25 lines not shown]
DeltaFile
+89-0flang/test/Lower/OpenMP/do-simd-firstprivate-lastprivate.f90
+48-0flang/test/Integration/OpenMP/do-simd-firstprivate-lastprivate-runtime.f90
+8-12flang/lib/Lower/OpenMP/OpenMP.cpp
+2-7flang/test/Lower/OpenMP/wsloop-simd.f90
+4-4flang/test/Lower/OpenMP/order-clause.f90
+151-235 files

LLVM/project f4a1182flang/include/flang/Parser parse-tree.h, flang/lib/Parser openmp-parsers.cpp

[flang][OpenMP] Frontend support for DIMS modifier

Add parsing and semantic checks for DIMS modifier on NUM_TEAMS,
NUM_THREADS, and THREAD_LIMIT.
DeltaFile
+93-0flang/test/Parser/OpenMP/dims-modifier.f90
+76-3flang/lib/Semantics/check-omp-structure.cpp
+51-0flang/include/flang/Parser/parse-tree.h
+34-0flang/lib/Semantics/openmp-modifiers.cpp
+30-3flang/lib/Parser/openmp-parsers.cpp
+26-0flang/test/Semantics/OpenMP/dims-modifier.f90
+310-66 files not shown
+358-1512 files

LLVM/project db59defllvm/lib/Target/ARM ThumbRegisterInfo.cpp

[ThumbRegisterInfo] Use getSigned() for constant pool loads

To match the signed int parameter for the value.
DeltaFile
+4-4llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
+4-41 files

LLVM/project 53ce850llvm/lib/Bitcode/Reader BitcodeReader.cpp

[Bitcode] Use ConstantInt::getSigned()

This is encoded as a signed value, so use getSigned().
DeltaFile
+1-1llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+1-11 files

LLVM/project bd8c063llvm/lib/CodeGen SjLjEHPrepare.cpp

[SjLjEHPrepare] Use getSigned() for call site number

This may be -1.
DeltaFile
+1-1llvm/lib/CodeGen/SjLjEHPrepare.cpp
+1-11 files

LLVM/project 45267ecllvm/lib/Target/X86 X86ISelLoweringCall.cpp

[X86] Use getSigned() for segment offset

The offset here is a signed quantity.
DeltaFile
+1-1llvm/lib/Target/X86/X86ISelLoweringCall.cpp
+1-11 files

LLVM/project a6fa720llvm/lib/Target/Hexagon HexagonGenWideningVecInstr.cpp

[Hexagon] Simplify creation of splat value (NFC)

ConstantInt::get() already knows how to create splats, no need to
do it manually.
DeltaFile
+3-5llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
+3-51 files

LLVM/project b1591d7llvm/lib/Target/AArch64 AArch64InstrGISel.td, llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp AArch64RegisterBankInfo.cpp

[GlobalISel][AArch64] Added support for sli intrinsic

sli intrinsic now lowers correctly for all vector types.
DeltaFile
+0-10llvm/test/CodeGen/AArch64/arm64-vshift.ll
+7-0llvm/lib/Target/AArch64/AArch64InstrGISel.td
+6-1llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+2-0llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+15-114 files

LLVM/project bf41fd7llvm/lib/Target/Hexagon HexagonGenWideningVecInstr.cpp

[Hexagon] Avoid unnecessary by reference passing (NFC)

SplatVal is not modified in these functions, so pass it by value.
This was probably a copy&paste mistake from checkConstantVector(),
which does modify SplatVal.
DeltaFile
+5-6llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
+5-61 files