Changes

Summary

  1. [PowerPC] Implement a TestSuiteBuilder (details)
Commit 9d4301d25f098f5efcf2a56c9c5d16645e3957d5 by albionapc
[PowerPC] Implement a TestSuiteBuilder

This patch implements TestSuiteBuilder, which utilises
UnifiedTreeBuilder to build with ninja, and then checks
out llvm-test-suite, builds it and runs it.

The patch also changes the PPC RHEL bot to this new builder.

Differential revision: https://reviews.llvm.org/D109628
The file was addedzorg/buildbot/builders/TestSuiteBuilder.py
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [SCEV] Add some asserts on availability of arguments of isLoopEntryGuardedByCond (details)
  2. GlobalISel/Utils: Refactor constant splat match functions (details)
  3. [SCEV] Use isAvailableAtLoopEntry in the asserts (details)
  4. [AArch64] Regenerate test lines in sve-implicit-zero-filling.ll (details)
  5. [AMDGPU] Prefer v_fmac over v_fma only when no source modifiers are used (details)
  6. [AMDGPU] Prefer fmac over fma when selecting FMA_W_CHAIN (details)
  7. tsan: fix debug format strings (details)
  8. tsan: rearrange thread state callbacks (NFC) (details)
  9. tsan: simplify thread context setting (details)
  10. [CodeGen] SDDbgValue::getSDNodes() - use const-ref to avoid unnecessary copies. NFCI. (details)
  11. RewriteStatepointsForGC - Use const-ref iterator in for-range loops. NFCI. (details)
  12. [CodeGen] SelectionDAGBuilder - Use const-ref iterator in for-range loops. NFCI. (details)
  13. [InstCombine] foldConstantInsEltIntoShuffle - bail if we fail to find constant element (PR51824) (details)
  14. [AArch64] Improve schedule modelling on the Cortex-A55 (details)
  15. [VectorCombine] Add tests which require DT to use info from assumes. (details)
  16. [SystemZ]  Emit EXRL target instructions before text section is ended. (details)
  17. [llvm] Pass LLVM_CHECK_ENABLED_PROJECTS through in cross builds (details)
  18. [IR] Add the constructor of ShuffleVector for one-input-vector. (details)
  19. [AMDGPU][MC][GFX10] Enabled dlc for FLAT and GLOBAL atomics (details)
  20. [InstCombine] add tests for mask-shift with trunc; NFC (details)
Commit 4d5d72542839b11455a0c261b66a0426c1530d52 by mkazantsev
[SCEV] Add some asserts on availability of arguments of isLoopEntryGuardedByCond

The logic in howManyLessThans is fishy. It first checks invariance of
RHS, and then uses OrigRHS as argument for isLoopEntryGuardedByCond, which
is, strictly saying, a different thing. We are seeing a very rare intermittent
failure of availability checks, and it looks like this precondition is
sometimes broken. Before we can figure out what's going on, adding asserts
that all involved values that may possibly to to isLoopEntryGuardedByCond
are available at loop entry.

If either of these asserts fails (OrigRHS is the most likely suspect), it
means that the logic here is flawed.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 8bc71856681c235a3192813947308a19577c9236 by petar.avramovic
GlobalISel/Utils: Refactor constant splat match functions

Add generic helper function that matches constant splat. It has option to
match constant splat with undef (some elements can be undef but not all).
Add util function and matcher for G_FCONSTANT splat.

Differential Revision: https://reviews.llvm.org/D104410
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
The file was modifiedllvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
Commit cd166fb2ef9c8fde374cb5de9c57802536d9b79e by mkazantsev
[SCEV] Use isAvailableAtLoopEntry in the asserts

This is what is supposed to be there.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit e83629280f32102cd93a216490188922843af06c by david.green
[AArch64] Regenerate test lines in sve-implicit-zero-filling.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-implicit-zero-filling.ll
Commit 86dcb592069f2d18a183fa1daa611029ae80ef4c by jay.foad
[AMDGPU] Prefer v_fmac over v_fma only when no source modifiers are used

v_fmac with source modifiers forces VOP3 encoding, but it is strictly
better to use the VOP3-only v_fma instead, because $dst and $src2 are
not tied so it gives the register allocator more freedom and avoids a
copy in some cases.

This is the same strategy we already use for v_mad vs v_mac and
v_fma_legacy vs v_fmac_legacy.

Differential Revision: https://reviews.llvm.org/D110070
The file was modifiedllvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/udiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/dagcombine-fma-fmad.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/strict_fma.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fdiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmad-formation-fmul-distribute-denormal-mode.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/strict_fma.f32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fma.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fma.s32.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/mad-mix.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fma.f64.ll
Commit 598bebeaa645049d13f1d3d1c8b8b821bb97283f by jay.foad
[AMDGPU] Prefer fmac over fma when selecting FMA_W_CHAIN

FMA_W_CHAIN is used when lowering fdiv f32. Prefer to select it to fmac
if there are no source modifiers, just like we do for other mad/mac and
fma/fmac cases.

Differential Revision: https://reviews.llvm.org/D110074
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/fdiv.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
Commit 6fe35ef419391215e21e51b859f74e6b7b8819d4 by dvyukov
tsan: fix debug format strings

Some of the DPrintf's currently produce -Wformat warnings if enabled.
Fix these format strings.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D110131
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_mman.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_java.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
Commit 908256b0ea3e3ba3b80dbe9c81fc68a1ee35ac33 by dvyukov
tsan: rearrange thread state callbacks (NFC)

Thread state functions are split into 2 parts:
tsan entry function (e.g. ThreadStart) and thread registry
state change callback (e.g. OnStart). Currently these
pairs of functions are located far from each other and
in reverse order. This makes it hard to read and follow the logic.
Reorder the code so that OnFoo directly follows ThreadFoo.
No other code changes.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D110132
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
Commit 9d7b7350c9e00e2a43585328e875bec11c8c8c17 by dvyukov
tsan: simplify thread context setting

Currently we set thr->tctx after OnStarted callback
taking thread registry mutex again and searching for the context.
But OnStarted already runs under the thread registry mutex
and has access to the context, so set it in the OnStarted.
This makes code simpler and faster.

Depends on D110132.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D110133
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
Commit 0f83456cf5bfaa731f9d5aa2500a5f10dd9de1b7 by llvm-dev
[CodeGen] SDDbgValue::getSDNodes() - use const-ref to avoid unnecessary copies. NFCI.

Reported by MSVC static analyzer.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
Commit f5d23d36de87f0cef3117df657d4f1d9133749c0 by llvm-dev
RewriteStatepointsForGC - Use const-ref iterator in for-range loops. NFCI.

Avoid unnecessary copies, reported by MSVC static analyzer.
The file was modifiedllvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
Commit 20b58855e0cfc263d609e8bb59e692024ecb42aa by llvm-dev
[CodeGen] SelectionDAGBuilder - Use const-ref iterator in for-range loops. NFCI.

Avoid unnecessary copies, reported by MSVC static analyzer.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit fc8f1e4419d338a347bade7cfc76f73052f00739 by llvm-dev
[InstCombine] foldConstantInsEltIntoShuffle - bail if we fail to find constant element (PR51824)

If getAggregateElement() returns null for any element, early out as otherwise we will assert when creating a new constant vector

Fixes PR51824 + ; OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38057
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was addedllvm/test/Transforms/InstCombine/pr51824.ll
Commit 9e4d72675f476386cf6555cd5a1014cdd8d9facb by nicholas.guy
[AArch64] Improve schedule modelling on the Cortex-A55

Enables the FuseAddress feature in the Cortex-A55 scheduling model

Differential Revision: https://reviews.llvm.org/D109323
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
The file was addedllvm/test/CodeGen/AArch64/a55-fuse-address.mir
Commit ea27dd74972e95e513fefcf96067522364f4e3d7 by flo
[VectorCombine] Add tests which require DT to use info from assumes.
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll
The file was modifiedllvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
Commit a48b43f9816aa3a3ccc9ca13e7767ccf70756729 by paulsson
[SystemZ]  Emit EXRL target instructions before text section is ended.

SystemZ adds the EXRL target instructions in the end of each file. This must
be done before debug info emission since that may end the text section, and
therefore this is now done in emitConstantPools() (instead of in
emitEndOfAsmFile).

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D109513
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetStreamer.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZAsmPrinter.h
The file was addedllvm/test/CodeGen/SystemZ/memset-06.ll
The file was modifiedllvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
Commit e9ea03c62ccc1ed4e3ed4f20e37640cfdd76cbcf by thakis
[llvm] Pass LLVM_CHECK_ENABLED_PROJECTS through in cross builds
The file was modifiedllvm/cmake/modules/CrossCompile.cmake
Commit 043733d677310d6b0ac465b938e82733a9f4cfce by gusrb406
[IR] Add the constructor of ShuffleVector for one-input-vector.

One of the two inputs of the Shufflevector is often a placeholder.
Previously, there were cases where the placeholder was undef, and there were cases where it was poison.
I added these constructors to create a placeholder consistently.

Changing to use the newly added constructor will be written in a separate patch.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D110146
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
Commit b8e7f5320825812fc4b597ee5df3dccc53fe78bb by dmitry.preobrazhensky
[AMDGPU][MC][GFX10] Enabled dlc for FLAT and GLOBAL atomics

Differential Revision: https://reviews.llvm.org/D109614
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_flat.s
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
Commit af1c5312d76000bf134d8b81cdb7343607c6ee64 by spatel
[InstCombine] add tests for mask-shift with trunc; NFC
The file was modifiedllvm/test/Transforms/InstCombine/and-narrow.ll

Summary

  1. Fixed relative address in LNT profile control-flow graph. (details)
  2. [LNT] Fixed incomplete feature for submit JSON to a local instance (details)
  3. Added missed spaces in log messages, NFC (details)
Commit 953e0f220fed1aa8230a88bab1f39690d4c5395f by thomasp
Fixed relative address in LNT profile control-flow graph.

It seems the relative address in AArch64 disassembly is dec, not hex.

Reviewed By: tnfchris

Differential Revision: https://reviews.llvm.org/D110141
The file was modifiedlnt/server/ui/static/lnt_profile.js (diff)
Commit 4f49f39d8167add7d3a4edb46f3f23081bc0103f by kosov.pavel
[LNT] Fixed incomplete feature for submit JSON to a local instance

LNT parses the test suite from the specified url for the submit command. But the suite is always default (nts) in case of using a local path to the instance instead of the url. This patch allows to specify the test suite in the submit command.

Reviewed By: thopre

Differential Revision: https://reviews.llvm.org/D109578
The file was modifiedlnt/lnttool/main.py (diff)
The file was modifiedlnt/util/ServerUtil.py (diff)
Commit b4db71089b2ab669e4071dc6cdc3c60959ddc1d5 by kosov.pavel
Added missed spaces in log messages, NFC
The file was modifiedlnt/server/db/rules/rule_update_fixed_regressions.py (diff)