SuccessChanges

Summary

  1. LNT CTMark: Update default SUBMIT_NAME and add SUBMIT_ORDER (details)
  2. jenkins/jobs: Move the lnt-ctmark-* jobs to green-dragon-12 (details)
Commit 1e8d9e10ded4e03db4e13a26b74e1247f4b5312a by Azharuddin Mohammed
LNT CTMark: Update default SUBMIT_NAME and add SUBMIT_ORDER

- Include the node name in the SUBMIT_NAME
- Add SUBMIT_ORDER (based on GIT_DISTANCE)
The file was modifiedtasks/lnt-ctmark.sh (diff)
Commit 76a1ebd3ccf61650f80f2787d65b5f69cb51485d by Azharuddin Mohammed
jenkins/jobs: Move the lnt-ctmark-* jobs to green-dragon-12
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-O3-flto (diff)
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-O0-g (diff)
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-Os (diff)
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-Oz (diff)

Summary

  1. [ObjCARC][NewPM] Port objc-arc-contract to NPM (details)
  2. [SCEV] Add additional max BTC tests with loop guards. (details)
  3. ImplicitNullChecks.cpp - use auto const& iterators in for-range loops to avoid copies. NFCI. (details)
  4. [SLP] simplify interface for gather(); NFC (details)
  5. The wrong placement of add pass with optimizations led to -funique-internal-linkage-names being disabled. (details)
  6. [lldb/Commands] Fix outdated `breakpoint command add` help string (details)
  7. [cmake] Centralize LLVM_ENABLE_WARNINGS option (details)
  8. [SLP] Use for-range loops across ValueLists. NFCI. (details)
  9. [NFC][SCEV] Add tests for @llvm.abs intrinsic (details)
  10. [SCEV] Recognize @llvm.abs as smax(x, -x) (details)
  11. [NFC][SCEV] Add tests for @llvm.*.sat intrinsics (details)
  12. [SCEV] Recognize @llvm.usub.sat as `%x - (umin %x, %y)` (details)
  13. [SCEV] Recognize @llvm.uadd.sat as `%y + umin(%x, (-1 - %y))` (details)
  14. [OpenMP] Protect unrecogonized CUDA error code (details)
  15. [IRBuilder][VectorCombine] make and use a convenience function for unary shuffle; NFC (details)
  16. [SLP] use unary shuffle creator to reduce code duplication; NFC (details)
  17. [AIX][Clang][Driver] Add handling of shared option (details)
  18. [ObjCARC] Initialize return value (details)
  19. [AMDGPU] Adding mutex to guard lld::elf::link interface use (details)
  20. [MS] On x86_32, pass overaligned, non-copyable arguments indirectly (details)
  21. [AMDGPU] Fixed typo in intrinsic comment. NFC. (details)
  22. [ELF][test] Delete large temporary files and make some temporary files smaller with two text segments (details)
  23. [NFC][SCEV] Cleanup lowering of @llvm.uadd.sat, (-1 - V) is just ~V (details)
  24. [DIE] Remove DeadInstEliminationPass (details)
Commit 024979b7b657d0946b791798994f070a24265cb8 by aeubanks
[ObjCARC][NewPM] Port objc-arc-contract to NPM

Similar to https://reviews.llvm.org/D86178.

This is a module pass instead of a function pass since
ARCRuntimeEntryPoints can lazily add function declarations.

Reviewed By: ahatanak

Differential Revision: https://reviews.llvm.org/D87806
The file was modifiedllvm/test/Transforms/ObjCARC/contract.ll
The file was modifiedllvm/include/llvm/Transforms/ObjCARC.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARC.cpp
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
Commit 3cbdfe424fec923b5ac1912742c62c22f856fb29 by flo
[SCEV] Add additional max BTC tests with loop guards.
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
Commit 6a0ed57a2259263d4f5923ff5c61850b8a731322 by llvm-dev
ImplicitNullChecks.cpp - use auto const& iterators in for-range loops to avoid copies. NFCI.
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp
Commit 46075e0b78c33be79c6c1ae5547a78ef87ddb374 by spatel
[SLP] simplify interface for gather(); NFC

The implementation of gather() should be reduced too,
but this change by itself makes things a little clearer:
we don't try to gather to a different type or
number-of-values than whatever is passed in as the value
list itself.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 6950db36d33d85d18e3241ab6c87494c05ebe0fb by tmsriram
The wrong placement of add pass with optimizations led to -funique-internal-linkage-names being disabled.

Fixed the placement of the MPM.addpass for UniqueInternalLinkageNames to make
it work correctly with -O2 and new pass manager. Updated the tests to
explicitly check O0 and O2.

Previously, the addPass was placed before BackendUtil.cpp#L1373 which is wrong
as MPM gets assigned at this point and any additions to the pass vector before
this is wrong. This change just moves it after MPM is assigned and places it at
a point where O0 and O0+ can share it.

Differential Revision: https://reviews.llvm.org/D87921
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/test/CodeGen/unique-internal-linkage-names.cpp
Commit 3b3b9ba1c7d89afe4909a42e2a795354bb79e062 by davelee.com
[lldb/Commands] Fix outdated `breakpoint command add` help string

Update the some examples in the help string for `breakpoint command add`.

Python breakpoint commands have different output than what's shown in the help string.

Notes:
  * Removed an example containing an inner function, as it seems more about a Python technique than about `command script add`
  * Updated `print x` to `print(x)` to be python 2/3 agnostic

Differential Revision: https://reviews.llvm.org/D87807
The file was modifiedlldb/source/Commands/CommandObjectBreakpointCommand.cpp
Commit b36bdfe5ca0c2b863248f327b03d41516b38dc11 by davelee.com
[cmake] Centralize LLVM_ENABLE_WARNINGS option

Configure default value of `LLVM_ENABLE_WARNINGS` in `HandleLLVMOptions.cmake`.

`LLVM_ENABLE_WARNINGS` is documented as ON by default, but `HandleLLVMOptions` assumes the default has been set somewhere else. If it has not been explicitly set, then `HandleLLVMOptions` implicitly uses OFF as a default.

This removes the various `option()` declarations in favor of a single declaration in `HandleLLVMOptions`. This will prevent the unwanted use of `-w` that is mentioned in a couple of the comments.

Reviewed By: DavidTruby, #libunwind, JDevlieghere, compnerd

Differential Revision: https://reviews.llvm.org/D87243
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in
The file was modifiedlibunwind/CMakeLists.txt
The file was modifiedllvm/runtimes/CMakeLists.txt
The file was modifiedflang/CMakeLists.txt
The file was modifiedclang/CMakeLists.txt
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 005f826a0546eb11890b7bd36fea6b8b1c5e3fc4 by llvm-dev
[SLP] Use for-range loops across ValueLists. NFCI.

Also rename some existing loops that used a 'j' iterator to consistently use 'V'.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 83c2d10d3cae57f71e23193d62989725b9b9f2f2 by lebedev.ri
[NFC][SCEV] Add tests for @llvm.abs intrinsic
The file was addedllvm/test/Analysis/ScalarEvolution/abs-intrinsic.ll
Commit 1bb7ab8c4a324aa380bddfc75069e24c19e2bdd0 by lebedev.ri
[SCEV] Recognize @llvm.abs as smax(x, -x)

As per alive2 (ignoring undef):

----------------------------------------
define i32 @src(i32 %x, i1 %y) {
%0:
  %r = abs i32 %x, 0
  ret i32 %r
}
=>
define i32 @tgt(i32 %x, i1 %y) {
%0:
  %neg_x = mul i32 %x, 4294967295
  %r = smax i32 %x, %neg_x
  ret i32 %r
}
Transformation seems to be correct!

----------------------------------------
define i32 @src(i32 %x, i1 %y) {
%0:
  %r = abs i32 %x, 1
  ret i32 %r
}
=>
define i32 @tgt(i32 %x, i1 %y) {
%0:
  %neg_x = mul nsw i32 %x, 4294967295
  %r = smax i32 %x, %neg_x
  ret i32 %r
}
Transformation seems to be correct!
The file was modifiedllvm/test/Analysis/ScalarEvolution/abs-intrinsic.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 0592de550f5c9ca9de44ed2c5c549f6a3b1c32b7 by lebedev.ri
[NFC][SCEV] Add tests for @llvm.*.sat intrinsics
The file was addedllvm/test/Analysis/ScalarEvolution/saturating-intrinsics.ll
Commit fedc9549d50d80f74169ecce4d0d0648a62249f0 by lebedev.ri
[SCEV] Recognize @llvm.usub.sat as `%x - (umin %x, %y)`

----------------------------------------
define i32 @src(i32 %x, i32 %y) {
%0:
  %r = usub_sat i32 %x, %y
  ret i32 %r
}
=>
define i32 @tgt(i32 %x, i32 %y) {
%0:
  %t0 = umin i32 %x, %y
  %r = sub nuw i32 %x, %t0
  ret i32 %r
}
Transformation seems to be correct!
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/saturating-intrinsics.ll
Commit 64e2cb7e9605995d2efb625203cbd96db1404812 by lebedev.ri
[SCEV] Recognize @llvm.uadd.sat as `%y + umin(%x, (-1 - %y))`

----------------------------------------
define i32 @src(i32 %x, i32 %y) {
%0:
  %r = uadd_sat i32 %x, %y
  ret i32 %r
}
=>
define i32 @tgt(i32 %x, i32 %y) {
%0:
  %t0 = sub nsw nuw i32 4294967295, %y
  %t1 = umin i32 %x, %t0
  %r = add nuw i32 %t1, %y
  ret i32 %r
}
Transformation seems to be correct!

The alternative, naive, lowering could be the following,
although i don't think it's better,
thought it will likely be needed for sadd/ssub/*shl:

----------------------------------------
define i32 @src(i32 %x, i32 %y) {
%0:
  %r = uadd_sat i32 %x, %y
  ret i32 %r
}
=>
define i32 @tgt(i32 %x, i32 %y) {
%0:
  %t0 = zext i32 %x to i33
  %t1 = zext i32 %y to i33
  %t2 = add nuw i33 %t0, %t1
  %t3 = zext i32 4294967295 to i33
  %t4 = umin i33 %t2, %t3
  %r = trunc i33 %t4 to i32
  ret i32 %r
}
Transformation seems to be correct!
The file was modifiedllvm/test/Analysis/ScalarEvolution/saturating-intrinsics.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 03111e5e7a8690300966a39f0aa2e4f2b4ec919a by tianshilei1992
[OpenMP] Protect unrecogonized CUDA error code

If an error code can not be recognized by cuGetErrorString, errStr remains null and causes crashing at DP() printing.
Protect this case.

Reviewed By: jhuber6, tianshilei1992

Differential Revision: https://reviews.llvm.org/D87980
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp
Commit 1e6b240d7d336a36856268db5349468560e28a0e by spatel
[IRBuilder][VectorCombine] make and use a convenience function for unary shuffle; NFC

This reduces code duplication for common construct.
Follow-ups can use this in SLP, LoopVectorizer, and other passes.
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
Commit a44238cb443f13c1e9fd42f6269f019d505ff5dd by spatel
[SLP] use unary shuffle creator to reduce code duplication; NFC
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit d8540427419ec0c4b9bc02f432ef39c01898e826 by daltenty
[AIX][Clang][Driver] Add handling of shared option

Reviewed By: jasonliu

Differential Revision: https://reviews.llvm.org/D87914
The file was modifiedclang/test/Driver/aix-ld.c
The file was modifiedclang/lib/Driver/ToolChains/AIX.cpp
Commit 746a2c3775658c4485a8e71a7d46ee55c30615b8 by aeubanks
[ObjCARC] Initialize return value

Mistakenly removed initialization of `Changed` in https://reviews.llvm.org/D87806.
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
Commit f87ceb63eb011e5cd653218af619097b58bf568f by zhuoryin
[AMDGPU] Adding mutex to guard lld::elf::link interface use

check-mlir target run tests simultaneously with multiple threads. This caused multiple threads to invoke the `lld::elf::link()` interface at the same time. Since the interface does not have a thread-safe implementation, add a metex to prevent multi-threaded access.

I discovered this by looking the the failure stack trace. lld/ELF/symbolTable.cpp, SymbolTable::insert() hit into an assert with related to Epoch Trackers. The root cause is to due to there is no protection around the symMap (update) which is implemented in non-thread safe data structure: denseMap.

Differential Revision: https://reviews.llvm.org/D88038
The file was modifiedmlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp
Commit 3b3a16548568f5b6c4146ca5129eb6af5000e4ff by rnk
[MS] On x86_32, pass overaligned, non-copyable arguments indirectly

This updates the C++ ABI argument classification code to use the logic
from D72114, fixing an ABI incompatibility with MSVC.

Part of PR44395.

Differential Revision: https://reviews.llvm.org/D87923
The file was modifiedclang/test/CodeGenCXX/inalloca-overaligned.cpp
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
Commit e8951474b1940bd81bc3bac8d506e08880ee35ea by Stanislav.Mekhanoshin
[AMDGPU] Fixed typo in intrinsic comment. NFC.
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
Commit 6d637fa560f0196b93e377b98489661ecd7a1af0 by i
[ELF][test] Delete large temporary files and make some temporary files smaller with two text segments

Large files are cumbersome on some filesystems and can more easily trigger ENOSPC.

Some tests use two text sections with output section addresses to test branch ranges.
Use two text segments to prevent LLD from filling the gap and unnecessarily increasing the output size.

With this change, there is no test/ELF temporary file larger than 100MiB.

Reviewed By: psmith

Differential Revision: https://reviews.llvm.org/D88037
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-large.s
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-thunk-range.s
The file was modifiedlld/test/ELF/aarch64-thunk-pi.s
The file was modifiedlld/test/ELF/arm-thumb-plt-range-thunk-os.s
The file was modifiedlld/test/ELF/aarch64-thunk-section-location.s
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-large2.s
The file was modifiedlld/test/ELF/aarch64-thunk-script.s
Commit 0ab99bb314203d8f3b40e805ffea03857ca5c21e by lebedev.ri
[NFC][SCEV] Cleanup lowering of @llvm.uadd.sat, (-1 - V) is just ~V
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit f4f7df037e71fa77b06a37d86f2596db47d583d0 by aeubanks
[DIE] Remove DeadInstEliminationPass

This pass is like DeadCodeEliminationPass, but only does one pass
through a function instead of iterating on users of eliminated
instructions.

DeadCodeEliminationPass should be used in all cases.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87933
The file was modifiedllvm/test/Feature/optnone-opt.ll
The file was modifiedllvm/test/Transforms/DeadArgElim/2008-06-23-DeadAfterLive.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/rle-addrspace-cast.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/phi.ll
The file was modifiedllvm/test/Transforms/InstCombine/deadcode.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/2002-09-03-SetCC-Bools.ll
The file was modifiedllvm/test/Transforms/Reassociate/vaarg_movable.ll
The file was modifiedllvm/include/llvm/LinkAllPasses.h
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/logicaltest.ll
The file was modifiedllvm/test/Transforms/Reassociate/otherops.ll
The file was modifiedllvm/test/Transforms/Reassociate/inverses.ll
The file was modifiedllvm/test/Transforms/NewGVN/rle.ll
The file was modifiedllvm/lib/Transforms/Scalar/Scalar.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DCE.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/basictest.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/rle.ll
The file was modifiedllvm/include/llvm/Transforms/Scalar.h
The file was modifiedllvm/test/Transforms/DeadArgElim/deadretval2.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/remtest.ll

Summary

  1. LNT CTMark: Update default SUBMIT_NAME and add SUBMIT_ORDER (details)
  2. jenkins/jobs: Move the lnt-ctmark-* jobs to green-dragon-12 (details)
Commit 1e8d9e10ded4e03db4e13a26b74e1247f4b5312a by Azharuddin Mohammed
LNT CTMark: Update default SUBMIT_NAME and add SUBMIT_ORDER

- Include the node name in the SUBMIT_NAME
- Add SUBMIT_ORDER (based on GIT_DISTANCE)
The file was modifiedtasks/lnt-ctmark.sh
Commit 76a1ebd3ccf61650f80f2787d65b5f69cb51485d by Azharuddin Mohammed
jenkins/jobs: Move the lnt-ctmark-* jobs to green-dragon-12
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-O3-flto
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-O0-g
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-Oz
The file was modifiedzorg/jenkins/jobs/jobs/lnt-ctmark-aarch64-Os