Changes

Summary

  1. [PowerPC] Change RHEL buildbot to unifiedtreebuilder (details)
Commit 69c601cb34aecc7e2dcb112cd112b6fa9a105d7f by albionapc
[PowerPC] Change RHEL buildbot to unifiedtreebuilder

The patch switches the RHEL buildbot to utilise more jobs when building, as
well as UnifiedTreeBuilder (ie, with cmake and Ninja).

Differential: https://reviews.llvm.org/D101199
The file was modifiedbuildbot/osuosl/master/config/workers.py (diff)
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. [Coroutines] Salvege Debug.values (details)
  2. Add some warnings when debugserver is running in translation (details)
  3. [JITLink] Add a transferDefinedSymbol operation. (details)
  4. [JITLink] Expose x86-64 pointer jump stub block construction. (details)
  5. [GC][NFC] Move GCStrategy from CodeGen to IR (details)
  6. [gn build] Port d8b37de8a478 (details)
  7. [mlir] Support masks in TransferOpReduceRank and TransferReadPermutationLowering (details)
  8. [clang-repl] Recommit "Land initial infrastructure for incremental parsing" (details)
  9. [clang-repl] Add exhaustive list of libInterpreter dependencies. (details)
  10. Use an allow list on reserved macro identifiers (details)
  11. [FPEnv][X86] Implement lowering of llvm.set.rounding (details)
  12. Revert "[SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch" (details)
  13. [NFC] Add GetInferiorAddrSize method, unify code to compute (details)
  14. [libcxx] NFC. Fix misprint unodered -> unordered (details)
  15. [clang-repl] Add final set of missing library dependencies. (details)
  16. [TSAN] Honor failure memory orders in AtomicCAS (details)
  17. [SCEV] Apply guards to max with non-unitary steps. (details)
  18. [PowerPC] Provide doubleword vector predicate form comparisons on Power7 (details)
  19. [Utils] Use whoami to get username for arcanist warning message (details)
  20. [clang-repl] Fix ClangReplInterpreterTests unittest dependency. (details)
  21. [Passes] Use MemorySSA for LICM during LTO. (details)
  22. [RISCV][NFC] Simplify test run lines (details)
  23. [Passes] Run GlobalsAA before LICM during LTO in new PM. (details)
  24. [Passes] Use regex to match GlobalsAA line in test. (details)
  25. [X86] VZeroUpperInserter::insertVZeroUpper - avoid DebugLoc creation by embedding in the BuildMI calls. NFCI. (details)
  26. [X86] X86InstrInfo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI. (details)
  27. [X86] X86ExpandPseudo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI. (details)
  28. [VPlan] Adjust assert in splitBlock to allow splitting at end. (details)
  29. [PowerPC] Handle inline assembly clobber of link regsiter (details)
  30. [clang-tidy] Fix test that requires Windows platofrm (details)
  31. [gn build] (manually) port 92f9852fc99b, clang-repl (details)
  32. [mlir] Do not use pass labels in unrolled ProgressiveVectorToSCF (details)
  33. [AIX] XFAIL CodeGen/Generic/externally_available.ll (details)
  34. Add entry about Hexagon V68 support to the release notes (details)
  35. Revert "[CMake][ELF] Add -fno-semantic-interposition and -Bsymbolic-functions" (details)
  36. Fix section title underlining in the release notes (details)
  37. [mlir] Migrate vector-to-loops.mlir to ProgressiveVectorToSCF (details)
  38. Reapply [ConstantFold] Fold more operations to poison (details)
  39. [TableGen] Make the NUL character invalid in .td files (details)
  40. [mlir][linalg] Remove IndexedGenericOp support from DropUnitDims... (details)
  41. [mlir] Replace vector-to-scf with progressive-vector-to-scf (details)
  42. [mlir][linalg] Remove IndexedGenericOp support from FusionOnTensors... (details)
  43. [AArch64][SVE] Fix missed immediate selection due to mishandling of signedness (details)
  44. Parse vector bool when stdbool.h and altivec.h are included (details)
  45. [HIP] Add __builtin_amdgcn_groupstaticsize (details)
  46. [AMDGPU] Only allow global fp atomics with unsafe option (details)
  47. [OpenMP] Test unified shared memory tests only on systems that support it. (details)
  48. [InstSimplify] Remove redundant {insert,extract}_vector intrinsic chains (details)
  49. [mlir] Add python test for shape dialect (details)
  50. [libomptarget][amdgpu] Convert an assert to print and offload_fail (details)
  51. [libomptarget][amdgpu] Fix truncation error for partial wavefront (details)
  52. [PowerPC] Add clang option -m[no-]prefixed (details)
  53. [libcxx][ranges] Fix `ranges::empty` when begin, end, and empty members are provided. (details)
  54. Modules: Remove ModuleLoader::OtherUncachedFailure, NFC (details)
  55. [pstl] Use logical operator for loop condition in tests (details)
  56. [analyzer][solver] Prevent use of a null state (details)
  57. [mlir][spirv] Define spv.ImageQuerySize operation (details)
  58. Modules: Rename ModuleBuildFailed => DisableGeneratingGlobalModuleIndex, NFC (details)
  59. [lldb] Fixup more code addresses (details)
  60. [lldb] Fixup indirect symbols as they are signed. (details)
  61. [ARM] Constrain CMPZ shift combine to a single use (details)
  62. [NFC][Clang][Codegen] Add tests with wrong attributes on this/return of thunks (details)
  63. [Clang][Codegen] Do not annotate thunk's this/return types with align/deref/nonnull attrs (details)
  64. Return "[CGCall] Annotate `this` argument with alignment" (details)
  65. Modules: Simplify how DisableGeneratingGlobalModuleIndex is set, likely NFC (details)
  66. [flang] Implement DOT_PRODUCT in the runtime (details)
  67. [PowerPC] Add ROP Protection to prologue and epilogue (details)
  68. [NFC] Try to fix CodeGenCXX/thunk-wrong-this.cpp test (details)
  69. Support unwinding from inline assembly (details)
  70. [NFC] Try to fix CodeGenCXX/thunk-wrong-return-type.cpp test (details)
  71. [flang] (NFC) Expose internal idiom as utility API (details)
  72. [NFC] Delete two newly-added test cases (details)
  73. [ASTMatchers] NFC: Fix formatting around forFunction(). (details)
  74. [ASTMatchers] Add forCallable(), a generalization of forFunction(). (details)
  75. [clang-tidy] bugprone-infinite-loop: forFunction() -> forCallable(). (details)
  76. [clang-tidy] bugprone-infinite-loop: React to ObjC ivars and messages. (details)
  77. [AMDGPU] Add gfx1034 target (details)
  78. [libcxx][docs] Update the One Ranges PRoposal Status with open revisions. (details)
  79. [libcxx][docs] Add two locks: transform_view and take_view. (details)
  80. [flang] Support legacy extension OPEN(ACCESS='APPEND') (details)
  81. [HIP] Clean up llvm intrinsics using __asm (details)
  82. [flang][OpenMP] Add semantic check for close nesting of `master` regions (details)
  83. [libc] Add x86_64 implementations of double precision cos, sin and tan. (details)
  84. [libc][NFC] Instead of erroring, skip math targets with missing implementations. (details)
  85. [llvm-nm] Support the -V option, print that the tool is compatible with GNU nm (details)
  86. [mlir][NFC] Add helper for common pattern of replaceAllUsesExcept (details)
  87. [mlir][tosa] Add tosa.div integer lowering to linalg.generic. (details)
  88. [OpenMP] Prevent Attributor from deleting functions in OpenMPOptCGSCC pass (details)
  89. [CMake][ELF] Link libLLVM.so and libclang-cpp.so with -Bsymbolic-functions (details)
  90. [libc] Enable fmaf and fma on x86_64. (details)
  91. [mlir][tosa] Add lowering to tosa.abs for integer cases (details)
  92. [NFC][X86][MCA] AMD Zen 3: add same-reg SSE XMM XORPS test (details)
  93. [X86] AMD Zen 3: same-reg SSE XMM XORPS is a 1-cycle(!) dep-breaking one-idiom (details)
  94. Revert "[X86] X86TTIImpl::getInterleavedMemoryOpCostAVX2(): use getMemoryOpCost()" (details)
  95. Revert "[X86][CostModel] X86TTIImpl::getMemoryOpCost(): rewrite vector handling again" (details)
  96. [AA] Use isIdentifiedFunctionLocal() (NFC) (details)
  97. [CaptureTracking] Use isIdentifiedFunctionLocal() (NFC) (details)
  98. [clang-repl] Temporarily disable the execute.cpp test on ppc64. (details)
  99. [docs] Add page on opaque pointer types (details)
  100. Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue (PR39439) (details)
  101. [Clang][OpenMP] Allow unified_shared_memory for Pascal-generation GPUs. (details)
  102. [IR] Introduce the opaque pointer type (details)
  103. Widen `name` stencil to support `TypeLoc` nodes. (details)
  104. [mlir][Linalg] Add ComprehensiveBufferize for functions(step 1/n) (details)
  105. [mlir][Linalg] Add support for vector.transfer ops to comprehensive bufferization (2/n). (details)
  106. AMDGPU/GlobalISel: Implement tail calls (details)
  107. AMDGPU/GlobalISel: Don't hardcode stack alignment in assert message (details)
  108. [gn] Don't pass -fprofile-instr-generate to linker on Windows (details)
  109. [mlir][openacc][NFC] add anonymous namespace around LegalizeDataOpForLLVMTranslation class (details)
  110. [AArch64][GlobalISel] Fix a crash during unsuccessful G_CTPOP <2 x s64> legalization. (details)
  111. [Debug-Info] make DIE attributes generation under strict DWARF control (details)
  112. [sanitizer] Use size_t on g_tls_size to fix build on x32 (details)
  113. [test] Fix new-pm-lto-defaults.ll to work on all platforms (details)
  114. scudo: Check for UAF in ring buffer before OOB in more distant blocks. (details)
  115. scudo: Fix MTE error reporting for zero-sized allocations. (details)
  116. [Debug-Info] change Tag type to dwarf::Tag for createAndAddDIE; NFC (details)
  117. [mlir] VectorToSCF target rank is a pass option (details)
  118. [ORC] Remove some stale unit test utils. (details)
  119. [ORC] Remove unused RTDyldObjectLinkingLayerExecutionTest class from unit test. (details)
  120. [ORC] Remove the OrcExecutionTest class. It is no longer used. (details)
  121. [MLIR] Fix build failures due to unused variables in non-debug builds. (details)
  122. [mlir] VectorToSCF cleanup (details)
  123. [COFF] Remove a truncation assertion from setRVA (details)
  124. Use enum comparison instead of generated switch/case, NFC (details)
  125. [AMDGPU] Do not clause NSA instructions (details)
  126. [sanitizer] Simplify __sanitizer::BufferedStackTrace::UnwindImpl implementations (details)
  127. [JITLink] Fix missing 'static' keyword in unit test. (details)
  128. [ORC] Add support for adding LinkGraphs directly to ObjectLinkingLayer. (details)
  129. [gn build] Port 0fda4c4745b8 (details)
  130. [ORC] Add JITLink dependence for ObjectLinkingLayerTest. (details)
Commit c1359ef07e8240b4350802b4998aedc1239a91d0 by yedeng.yd
[Coroutines] Salvege Debug.values

Summary: The previous implementation of coro-split didn't collect values
used by dbg instructions into the spills which made a log debug info
unavailable with optimization on.
This patch tries to collect these uses which are used by dbg.values. In
this way, the debugbility of coroutine could be as powerful as normal
functions with optimization on.

To avoid enlarging the coroutine frame, this patch only collects
`dbg.value` whose value is already in the coroutine frame. This decision
may make some debug info getting unavailable. But if we are with
optimization on, the performance issue should be considered first. And
this patch would make the debugbility of coroutine to be better only
without changing the layout of the frame.

Test-plan: check-llvm

Reviewed By: aprantl, lxfind

Differential Revision: https://reviews.llvm.org/D97673
The file was addedllvm/test/Transforms/Coroutines/coro-debug-dbg.values-not_used_in_frame.ll
The file was addedllvm/test/Transforms/Coroutines/coro-debug-dbg.values.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroInternal.h
Commit 0c443e92d3b9bc5a25214f2c8418b72501a15a00 by Jason Molenda
Add some warnings when debugserver is running in translation

A debugserver launched x86_64 cannot control an arm64/arm64e
process on an Apple Silicon system.  Warn when this situation
has happened and return an error for the most common case of
attach.  I think there will be refinements to this in the
future, but start out by making it easy to spot the problem
when it happens.

rdar://76630595
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
The file was modifiedlldb/tools/debugserver/source/debugserver.cpp
The file was modifiedlldb/tools/debugserver/source/RNBRemote.cpp
The file was modifiedlldb/tools/debugserver/source/DNB.h
Commit 4b0f5edd36c685333985698d1a288d2eb641b910 by Lang Hames
[JITLink] Add a transferDefinedSymbol operation.

The transferDefinedSymbol operation updates a Symbol's target block, offset,
and size. This can be convenient when you want to redefine the content of some
symbol(s) pointing at a block, while retaining the original block in the graph.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
The file was modifiedllvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
Commit 2f21a272af69321555cdc2794664b5eba8fc3276 by Lang Hames
[JITLink] Expose x86-64 pointer jump stub block construction.

This can be useful for clients who want to define their own symbol for the
stub, or re-use some existing symbol.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
Commit d8b37de8a478c1b1532e45b0bfd82ecf1c964d9a by mkazantsev
[GC][NFC] Move GCStrategy from CodeGen to IR

We want it to be available in analyzes so that we could use the
CodeGen notion in middle-end passes (for example, to check if
a GC may free some particular pointer).

This is a preparatory patch that simply moves the files around.

Note: if this causes some build issues, this patch must just be reverted.

Differential Revision: https://reviews.llvm.org/D100557
Reviewed By: reames
The file was modifiedllvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was addedllvm/lib/IR/GCStrategy.cpp
The file was addedllvm/include/llvm/IR/BuiltinGCs.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
The file was addedllvm/lib/IR/BuiltinGCs.cpp
The file was removedllvm/lib/CodeGen/GCStrategy.cpp
The file was addedllvm/include/llvm/IR/GCStrategy.h
The file was modifiedllvm/lib/IR/CMakeLists.txt
The file was removedllvm/include/llvm/CodeGen/GCStrategy.h
The file was removedllvm/lib/CodeGen/BuiltinGCs.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/include/llvm/CodeGen/GCMetadata.h
The file was modifiedllvm/include/llvm/CodeGen/LinkAllCodegenComponents.h
The file was modifiedllvm/lib/CodeGen/GCRootLowering.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
The file was modifiedllvm/lib/CodeGen/GCMetadata.cpp
The file was removedllvm/include/llvm/CodeGen/BuiltinGCs.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
Commit 9bf17619750494ee971c66782039d4102d805c07 by llvmgnsyncbot
[gn build] Port d8b37de8a478
The file was modifiedllvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 60da33c2d4b2cd744c70259088b2ab89eb858f33 by springerm
[mlir] Support masks in TransferOpReduceRank and TransferReadPermutationLowering

These two patterns allow for more efficient codegen in VectorToSCF.

Differential Revision: https://reviews.llvm.org/D102222
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-lowering.mlir
Commit 92f9852fc99b0a18e8d1329341f36f1708343f05 by v.g.vassilev
[clang-repl] Recommit "Land initial infrastructure for incremental parsing"

Original commit message:

  In http://lists.llvm.org/pipermail/llvm-dev/2020-July/143257.html we have
  mentioned our plans to make some of the incremental compilation facilities
  available in llvm mainline.

  This patch proposes a minimal version of a repl, clang-repl, which enables
  interpreter-like interaction for C++. For instance:

  ./bin/clang-repl
  clang-repl> int i = 42;
  clang-repl> extern "C" int printf(const char*,...);
  clang-repl> auto r1 = printf("i=%d\n", i);
  i=42
  clang-repl> quit

  The patch allows very limited functionality, for example, it crashes on invalid
  C++. The design of the proposed patch follows closely the design of cling. The
  idea is to gather feedback and gradually evolve both clang-repl and cling to
  what the community agrees upon.

  The IncrementalParser class is responsible for driving the clang parser and
  codegen and allows the compiler infrastructure to process more than one input.
  Every input adds to the “ever-growing” translation unit. That model is enabled
  by an IncrementalAction which prevents teardown when HandleTranslationUnit.

  The IncrementalExecutor class hides some of the underlying implementation
  details of the concrete JIT infrastructure. It exposes the minimal set of
  functionality required by our incremental compiler/interpreter.

  The Transaction class keeps track of the AST and the LLVM IR for each
  incremental input. That tracking information will be later used to implement
  error recovery.

  The Interpreter class orchestrates the IncrementalParser and the
  IncrementalExecutor to model interpreter-like behavior. It provides the public
  API which can be used (in future) when using the interpreter library.

  Differential revision: https://reviews.llvm.org/D96033
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp
The file was addedclang/lib/Interpreter/Interpreter.cpp
The file was addedclang/test/Interpreter/execute.cpp
The file was addedclang/test/Interpreter/sanity.c
The file was modifiedclang/include/clang/CodeGen/CodeGenAction.h
The file was modifiedclang/test/lit.cfg.py
The file was addedclang/tools/clang-repl/CMakeLists.txt
The file was modifiedclang/include/clang/Frontend/FrontendAction.h
The file was removedclang/unittests/CodeGen/IncrementalProcessingTest.cpp
The file was addedclang/lib/Interpreter/IncrementalParser.h
The file was modifiedclang/lib/Frontend/FrontendAction.cpp
The file was addedclang/unittests/Interpreter/IncrementalProcessingTest.cpp
The file was modifiedclang/tools/CMakeLists.txt
The file was modifiedclang/unittests/CodeGen/CMakeLists.txt
The file was addedclang/include/clang/Interpreter/Interpreter.h
The file was addedclang/unittests/Interpreter/CMakeLists.txt
The file was modifiedclang/lib/CMakeLists.txt
The file was addedclang/lib/Interpreter/IncrementalExecutor.h
The file was addedclang/lib/Interpreter/IncrementalParser.cpp
The file was modifiedclang/test/CMakeLists.txt
The file was addedclang/lib/Interpreter/CMakeLists.txt
The file was addedclang/unittests/Interpreter/InterpreterTest.cpp
The file was addedclang/include/clang/Interpreter/Transaction.h
The file was addedclang/lib/Interpreter/IncrementalExecutor.cpp
The file was addedclang/tools/clang-repl/ClangRepl.cpp
The file was modifiedclang/unittests/CMakeLists.txt
Commit 3f4c5185926ad2a07a642b8b0b7a4accffeb7e36 by v.g.vassilev
[clang-repl] Add exhaustive list of libInterpreter dependencies.

This patch should appease the bots building with -DBUILD_SHARED_LIBS=On,
resolving the regression introduced in 92f9852fc99b.
The file was modifiedclang/lib/Interpreter/CMakeLists.txt
Commit 6045cb89e5e8223eea4d7f9c3a3e0d8d25ff909f by sguelton
Use an allow list on reserved macro identifiers

The allow list is based on various official sources (see in-code comment).

This fixes https://bugs.llvm.org/show_bug.cgi?id=50248

Differential Revision: https://reviews.llvm.org/D102168
The file was modifiedclang/test/Preprocessor/macro-reserved.c
The file was modifiedclang/lib/Lex/PPDirectives.cpp
Commit 12537ab77227db8f2b42e6172b24313d8f442e97 by sepavloff
[FPEnv][X86] Implement lowering of llvm.set.rounding

Differential Revision: https://reviews.llvm.org/D74730
The file was modifiedllvm/lib/Target/X86/X86InstrFPStack.td
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was addedllvm/test/CodeGen/X86/fpenv.ll
Commit 107d19eb017ff6734986af077eb2e9f6600114a9 by jingu.kang
Revert "[SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch"

This reverts commit 88b259c01463c08ac2575b4432c07ea7751946b5.

It needs to fix below bugs.

https://bugs.llvm.org/show_bug.cgi?id=50279
https://bugs.llvm.org/show_bug.cgi?id=50302
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
The file was modifiedllvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch.ll
The file was removedllvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-mssa-threshold.ll
The file was removedllvm/test/Transforms/SimpleLoopUnswitch/partial-unswitch-update-memoryssa.ll
Commit afee09751d2d744a753ef4d3e8d83857dcd0f682 by Jason Molenda
[NFC] Add GetInferiorAddrSize method, unify code to compute

MachProcess.mm has a sequence to get the address size in
the inferior in three places; and I'm about to add a fourth
in a future patch.  Not a fan.
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
Commit 8a86787847d92c0b428171d9de748c1cf91b3159 by kbessonova
[libcxx] NFC. Fix misprint unodered -> unordered

Differential Revision: https://reviews.llvm.org/D102354
The file was modifiedlibcxx/include/__hash_table
Commit b2186a69c169c7e39c2a769ba859f656aa4cef1b by v.g.vassilev
[clang-repl] Add final set of missing library dependencies.
The file was modifiedclang/tools/clang-repl/CMakeLists.txt
Commit fd184c062c1a1b4727ddf0452ebab11fb8834880 by bruno.cardoso
[TSAN] Honor failure memory orders in AtomicCAS

LLVM has lifted strong requirements for CAS failure memory orders in 431e3138a and 819e0d105e84.

Add support for honoring them in `AtomicCAS`.

https://github.com/google/sanitizers/issues/970

Differential Revision: https://reviews.llvm.org/D99434
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp
The file was addedcompiler-rt/test/tsan/compare_exchange.cpp
The file was modifiedllvm/test/Instrumentation/ThreadSanitizer/atomic.ll
Commit e2759f110b6e9a33db449ebdf428480f46db67b8 by flo
[SCEV] Apply guards to max with non-unitary steps.

We already apply loop-guards when computing the maximum with unitary
steps. This extends the code to also do so when dealing with non-unitary
steps.

This allows us to infer a tighter maximum in some cases.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D102267
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
Commit 39e4676ca798d9aba58823515ac9d48eb64863be by nemanja.i.ibm
[PowerPC] Provide doubleword vector predicate form comparisons on Power7

There are two reasons this shouldn't be restricted to Power8 and up:
1. For XL compatibility
2. Because clang will expand comparison operators to these intrinsics*

*Without this patch, the following causes a selection error:

int test(vector signed long a, vector signed long b) {
  return a < b;
}

This patch provides the handling for the intrinsics in the back
end and removes the Power8 guards from the predicate functions
(vec_{all|any}_{eq|ne|gt|ge|lt|le}).
The file was modifiedclang/lib/Headers/altivec.h
The file was modifiedclang/test/CodeGen/builtins-ppc-p8vector.c
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrVSX.td
The file was modifiedclang/test/CodeGen/builtins-ppc-vsx.c
The file was addedllvm/test/CodeGen/PowerPC/vec_cmpd_p7.ll
Commit 0326d4667ab116588e6f987ceed151e709d263c2 by david.spickett
[Utils] Use whoami to get username for arcanist warning message

959eec1fddc83c90c208789f20cb6573b2a20642 changed the message
to show the local username with "$user" but this is not always set.

Some systems will have USER/USERNAME/LOGNAME, so just use "whoami"
instead.
The file was modifiedutils/arcanist/clang-format.sh
Commit 4624412367f9b591fe90ecec8feed7209cd222ac by v.g.vassilev
[clang-repl] Fix ClangReplInterpreterTests unittest dependency.
The file was modifiedclang/unittests/Interpreter/CMakeLists.txt
Commit 3eaf2358556d377ae5a8f2c942d92af1c1521cfc by flo
[Passes] Use MemorySSA for LICM during LTO.

Split off from D102345 to commit this separately from other changes in
the patch. This aligns the behavior of the new PM with the legacy PM
for LTO, with respect to running LICM.

Together with the remaining changes in D102345, this fixes new PM
regressions where we fail to vectorize loops that are vectorized with
the legacy PM.
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
Commit 797e580db9837839ab11711733b5de52249f187c by fraser
[RISCV][NFC] Simplify test run lines

Several tests had -verify-machineinstrs twice, and several tests were
explicitly specifying the default FileCheck prefix of CHECK.
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctpop.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-load-store.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-vrgather.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-subvector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-int.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-logic.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-splat.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-buildvec.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-vrgather.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/stepvector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-setcc.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-splat.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vnsra-vnsrl.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-i1.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-conv.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-splat.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/extractelt-i1.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-int.ll
Commit 860b37526ae188d02e2dbf68a006eb26f936b5eb by flo
[Passes] Run GlobalsAA before LICM during LTO in new PM.

This patch adjusts the LTO pipeline in the new PM to run GlobalsAA
before LICM to match the legacy PM.

This fixes a regression where the new PM failed to vectorize loops that
require hoisting/sinking by LICM depending on GlobalsAA info.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D102345
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
Commit ffc157ea825f75c7b143fdaf23283194c5d829cf by flo
[Passes] Use regex to match GlobalsAA line in test.

On some platforms/compiler combinations, it appears the output is
slightly different. Update the test to use a regex, as is done at other
places in the new-pm-*default.ll tests to address buildbot failures.
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
Commit 9dfc4ac41cedd8d7a79d7954b5a54ab33cfca05d by llvm-dev
[X86] VZeroUpperInserter::insertVZeroUpper - avoid DebugLoc creation by embedding in the BuildMI calls. NFCI.

Try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies.
The file was modifiedllvm/lib/Target/X86/X86VZeroUpper.cpp
Commit 4956655640c19190264b07740499e56ccb33c61f by llvm-dev
[X86] X86InstrInfo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI.
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit ba0ec1be2916eae1798ad4c56480f471a65f7ce9 by llvm-dev
[X86] X86ExpandPseudo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI.
The file was modifiedllvm/lib/Target/X86/X86ExpandPseudo.cpp
Commit bdada7546e6b4a189a22c7ba9ce2d1b507b9c22e by flo
[VPlan] Adjust assert in splitBlock to allow splitting at end.

SplitAt should only be dereferenced in the assert if it does not point
to the end of the block. This fixes a crash in the added test case.
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit 15051f0b4a2e0a0af9da7cd5e5cfaabb9f6aaa3d by stefanp
[PowerPC] Handle inline assembly clobber of link regsiter

This patch adds the handling of clobbers of the link register LR for inline
assembly.

This patch is to fix:
https://bugs.llvm.org/show_bug.cgi?id=50147

Reviewed By: nemanjai, #powerpc

Differential Revision: https://reviews.llvm.org/D101657
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.td
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
Commit e07753c8814dba100dcae44e2b47947b340ad0e8 by jubnzv
[clang-tidy] Fix test that requires Windows platofrm

This commit fixes the cppcoreguidelines-pro-type-vararg test when it
runs on a Windows host, but the toolchain is targeted a non-Windows
platform.

Reviewed By: njames93

Differential Revision: https://reviews.llvm.org/D102337
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-vararg-ms.cpp
Commit 9310840cc249ae1aec427948fb09b8056e7094c0 by thakis
[gn build] (manually) port 92f9852fc99b, clang-repl
The file was modifiedllvm/utils/gn/secondary/clang/unittests/CodeGen/BUILD.gn
The file was addedllvm/utils/gn/secondary/clang/lib/Interpreter/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/unittests/BUILD.gn
The file was addedllvm/utils/gn/secondary/clang/unittests/Interpreter/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
The file was addedllvm/utils/gn/secondary/clang/tools/clang-repl/BUILD.gn
Commit bf068e1077a44fcb52fdf2aeb8f03f80517b64ab by springerm
[mlir] Do not use pass labels in unrolled ProgressiveVectorToSCF

Do not rely on pass labels to detect if the pattern was already applied in the past (which allows for more some extra optimizations to avoid extra InsertOps and ExtractOps). Instead, check if these optimizations can be applied on-the-fly.

This also fixes a bug, where vector.insert and vector.extract ops sometimes disappeared in the middle of the pass because they get folded away, but the next application of the pattern expected them to be there.

Differential Revision: https://reviews.llvm.org/D102206
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-3d.mlir
The file was modifiedmlir/lib/Conversion/VectorToSCF/ProgressiveVectorToSCF.cpp
Commit b1509d067e426bb8451bba789e34c4e65a168aba by Jinsong Ji
[AIX] XFAIL CodeGen/Generic/externally_available.ll

    Globals with “available_externally” linkage should never be emitted into the
    object file corresponding to the LLVM module.

    However, AIX system assembler default print error for undefined reference .
    so AIX chose to emit the available externally symbols into .s,
    so that users won't run into errors in situations like:

    clang -target powerpc-ibm-aix -xc -<<<$'extern inline
    __attribute__((__gnu_inline__)) void foo() {}\nvoid bar() { foo(); }' -O
    -Xclang -disable-llvm-passes

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D102377
The file was modifiedllvm/test/CodeGen/Generic/externally_available.ll
Commit 4dea3487315ed2870134c303c550152965a0580b by kparzysz
Add entry about Hexagon V68 support to the release notes
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 92260d7a186425510e96b7036b467a6889d08d97 by oliver.stannard
Revert "[CMake][ELF] Add -fno-semantic-interposition and -Bsymbolic-functions"

This reverts commit 3bf1acab5b454ad7fb2074b34663108b53620695.

This is causing the test `gcov-shared-flush.c' to fail on the 2-stage
aarch64 buildbots (https://lab.llvm.org/buildbot/#/builders/7/builds/2720).
The file was modifiedclang/tools/clang-shlib/CMakeLists.txt
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
The file was modifiedllvm/tools/llvm-shlib/CMakeLists.txt
Commit 2b20dee59bc8829182235964b02777d54f53bb62 by kparzysz
Fix section title underlining in the release notes
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit d020dd2b21be85b60f935980ab8e93caee7a661a by springerm
[mlir] Migrate vector-to-loops.mlir to ProgressiveVectorToSCF

Create a copy of vector-to-loops.mlir and adapt the test for
ProgressiveVectorToSCF. Fix a small bug in getExtractOp() triggered by
this test.

Differential Revision: https://reviews.llvm.org/D102388
The file was addedmlir/test/Conversion/VectorToSCF/progressive-vector-to-loops.mlir
The file was modifiedmlir/lib/Conversion/VectorToSCF/ProgressiveVectorToSCF.cpp
Commit 395607af3cb80f25ee05420ea5ae0ad0be948533 by nikita.ppv
Reapply [ConstantFold] Fold more operations to poison

This was reverted to mitigate mitigate miscompiles caused by
the logical and/or to bitwise and/or fold. Reapply it now that
the underlying issue has been fixed by D101191.

-----

This patch folds more operations to poison.

Alive2 proof: https://alive2.llvm.org/ce/z/mxcb9G (it does not contain tests about div/rem because they fold to poison when raising UB)

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D92270
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/cast.ll
The file was modifiedllvm/test/Transforms/SROA/select-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-shl-lshr-to-masking.ll
The file was modifiedllvm/unittests/IR/ConstantsTest.cpp
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-e.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/poison.ll
The file was modifiedllvm/test/Transforms/InstSimplify/undef.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-a.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fold-binop-select.ll
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vscale.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-c.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/shift.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-a.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-b.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-d.ll
The file was modifiedllvm/test/Transforms/InstSimplify/div.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/InsertElement-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/InsertElement.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vector-undef-elts-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-of-bittest.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-b.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vscale-inseltpoison.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedclang/test/Frontend/fixed_point_unary.c
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vector-undef-elts.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-ashr-shl-to-masking.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-e.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-c.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/shift-add.ll
The file was modifiedllvm/test/Transforms/InstSimplify/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-lshr-shl-to-masking.ll
The file was modifiedllvm/test/Transforms/InstCombine/shift-add-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SROA/phi-gep.ll
Commit fe9101c3d8db4d054aade400efae45857f0840da by Paul C. Anagnostopoulos
[TableGen] Make the NUL character invalid in .td files

Now uses tr instead of sed.

Differential Revision: https://reviews.llvm.org/D102254
The file was modifiedllvm/lib/TableGen/TGLexer.cpp
The file was addedllvm/test/TableGen/nul-char.td
Commit f358c372094599bf2a9246a0d2145cd949b4c62d by gysit
[mlir][linalg] Remove IndexedGenericOp support from DropUnitDims...

after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612).

Differential Revision: https://reviews.llvm.org/D102235
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
Commit 0f24163870e1a633c1d79377fdd188fe03769dd8 by springerm
[mlir] Replace vector-to-scf with progressive-vector-to-scf

Depends On D102388

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D102101
The file was modifiedmlir/test/Conversion/VectorToSCF/unrolled-vector-to-loops.mlir
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was removedmlir/lib/Conversion/VectorToSCF/ProgressiveVectorToSCF.cpp
The file was modifiedmlir/lib/Conversion/VectorToSCF/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-to-loops.mlir
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-2d.mlir
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-3d.mlir
The file was removedmlir/include/mlir/Conversion/VectorToSCF/ProgressiveVectorToSCF.h
The file was removedmlir/test/Conversion/VectorToSCF/progressive-vector-to-loops.mlir
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir
The file was modifiedmlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-1d.mlir
Commit cf194da1bbf79d392688dba0c74875829e9873f2 by gysit
[mlir][linalg] Remove IndexedGenericOp support from FusionOnTensors...

after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612).

Differential Revision: https://reviews.llvm.org/D102163
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/test/Dialect/Linalg/reshape_linearization_fusion.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/Dialect/Linalg/reshape_fusion.mlir
Commit b1a074951ff78bf06a2d944c01ca0a0fcd63dd33 by bradley.smith
[AArch64][SVE] Fix missed immediate selection due to mishandling of signedness

The complex selection pattern for add/sub shifted immediates is
incorrect in it's handling of incoming constant values, in that it
does not properly anticipate the values to be signed extended to
32-bits.

Co-authored-by: Graham Hunter <graham.hunter@arm.com>

Differential Revision: https://reviews.llvm.org/D101833
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-int-imm.ll
Commit 8fa168fc50ba4f63b79773c947ef5b3e43d5c02f by zarko
Parse vector bool when stdbool.h and altivec.h are included

Currently when including stdbool.h and altivec.h declaration of `vector bool` leads to
errors due to `bool` being expanded to '_Bool`. This patch allows the parser
to recognize `_Bool`.

Reviewed By: hubert.reinterpretcast, Everybody0523

Differential Revision: https://reviews.llvm.org/D102064
The file was addedclang/test/Parser/altivec-zvector-bool.c
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/lib/Parse/ParseDecl.cpp
Commit 6a67e05a26eb5f58665bd6d063b9f389e7dd28a7 by enye.shi
[HIP] Add __builtin_amdgcn_groupstaticsize

Differential Revision: https://reviews.llvm.org/D102403
The file was modifiedclang/test/CodeGenOpenCL/builtins-amdgcn-ci.cl
The file was modifiedclang/test/CodeGenOpenCL/builtins-amdgcn-gfx10.cl
The file was modifiedclang/test/CodeGenOpenCL/builtins-amdgcn-vi.cl
The file was modifiedclang/test/CodeGenOpenCL/builtins-amdgcn-gfx9.cl
The file was modifiedclang/include/clang/Basic/BuiltinsAMDGPU.def
Commit 8f98356bb53dca07a86bf098556d446e0d5af6fe by Stanislav.Mekhanoshin
[AMDGPU] Only allow global fp atomics with unsafe option

Previously we were allowing to use FP atomics without
-amdgpu-unsafe-fp-atomics option if a scope is less then
system. This is not safe just as well if we have UC memory.

This change only allows global and flat FP atomics with
the unsafe option. Consequentially that makes a check for
denorm mode redundant since we skip it with the unsafe
option and do not have a way to produce these instructions
without it anyway.

Differential Revision: https://reviews.llvm.org/D102347
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 34ed3e63378e34f93ada56a19cebc68cf1498092 by llvm-project
[OpenMP] Test unified shared memory tests only on systems that support it.

Add a `REQUIRES: unified_shared_memory` option to tests that use `#pragma omp requires unified_shared_memory`.

For CUDA, the feature tag is derived from LIBOMPTARGET_DEP_CUDA_ARCH which itself is derived using [[ https://cmake.org/cmake/help/latest/module/FindCUDA.html#commands | cuda_select_nvcc_arch_flags ]]. The latter determines which compute capability the GPU in the system supports. To ensure that this is the CUDA arch being used, we could also set the `-Xopenmp-target -march=` flag.
In the absence of an NVIDIA GPU, LIBOMPTARGET_DEP_CUDA_ARCH will be 35. That is, in that case we are assuming unified_shared_memory is not available. CUDA plugin testing could be disabled entirely in this case, but this currently depends on `LIBOMPTARGET_CAN_LINK_LIBCUDA OR LIBOMPTARGET_FORCE_DLOPEN_LIBCUDA`, not on whether the hardware is actually available.

For all other targets, nothing changes and we are assuming unified shared memory is available. This might need refinement if not the case.

This tries to fix the [[ http://meinersbur.de:8011/#/builders/143 | OpenMP Offloading Buildbot ]] that, although brand-new, only has a Pascal-generation (sm_61) GPU installed. Hence, tests that require unified shared memory are currently failing. I wish I had known in advance.

Reviewed By: protze.joachim, tianshilei1992

Differential Revision: https://reviews.llvm.org/D101498
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/shared_update.c
The file was modifiedopenmp/libomptarget/test/lit.site.cfg.in
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/close_manual.c
The file was modifiedopenmp/libomptarget/test/mapping/present/unified_shared_memory.c
The file was modifiedopenmp/libomptarget/test/lit.cfg
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/close_enter_exit.c
The file was modifiedopenmp/libomptarget/test/unified_shared_memory/close_modifier.c
Commit 2ed7db0d206b6af2fffa4cb2704264b76ca61266 by joe.ellis
[InstSimplify] Remove redundant {insert,extract}_vector intrinsic chains

This commit removes some redundant {insert,extract}_vector intrinsic
chains by implementing the following patterns as instsimplifies:

   (insert_vector _, (extract_vector X, 0), 0) -> X
   (extract_vector (insert_vector _, X, 0), 0) -> X

Reviewed By: peterwaller-arm

Differential Revision: https://reviews.llvm.org/D101986
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
The file was addedllvm/test/Transforms/InstSimplify/insert-vector.ll
The file was addedllvm/test/Transforms/InstSimplify/extract-vector.ll
Commit 3f2891db6dd5684ee743055c0e86d0d3dd66c90b by jpienaar
[mlir] Add python test for shape dialect

Add basic test for shape.const_shape op as start.

Differential Revision: https://reviews.llvm.org/D102341
The file was addedmlir/test/python/dialects/shape.py
Commit b049870d3b47a93b0c53f3ad69b11c4731b39d7f by jonathanchesterfield
[libomptarget][amdgpu] Convert an assert to print and offload_fail

[libomptarget][amdgpu] Convert an assert to print and offload_fail

The kernel launched is supposed to be present in the binary, but a not yet
diagnosed bug means it is missing for some of the qmcpack test cases. Changing
from assert to print and offload_fail should help diagnose that and similar bugs.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102378
The file was modifiedopenmp/libomptarget/plugins/amdgpu/src/rtl.cpp
Commit 10de21720989166a6b51cbf48b21efacbb913f23 by jonathanchesterfield
[libomptarget][amdgpu] Fix truncation error for partial wavefront

[libomptarget][amdgpu] Fix truncation error for partial wavefront

The partial barrier implementation involves one wavefront resetting and N-1
waiting. This change future proofs against launching with a number of threads
that is not a multiple of the wavefront size.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102407
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.hip
Commit 9469ff15b77905245e26fe7f166fc127d813a0c0 by lei
[PowerPC] Add clang option -m[no-]prefixed

Add user-facing front end option to turn off power10 prefixed instructions.

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D102191
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Basic/Targets/PPC.h
The file was modifiedclang/lib/Basic/Targets/PPC.cpp
The file was addedclang/test/Driver/ppc-prefixed.cpp
Commit 98e4fd0701d0c65229db876ce338c723231d8cb4 by zoecarver
[libcxx][ranges] Fix `ranges::empty` when begin, end, and empty members are provided.

Before this commit, we'd get a compilation error because the operator() overload was ambiguous.

Differential Revision: https://reviews.llvm.org/D102263
The file was modifiedlibcxx/test/std/ranges/range.access/range.prim/empty.pass.cpp
The file was modifiedlibcxx/include/__ranges/empty.h
Commit 7c2afd5899df876eaf5ffb485194dc58e92daf89 by Duncan P. N. Exon Smith
Modules: Remove ModuleLoader::OtherUncachedFailure, NFC

5cca622310c10fdf6f921b6cce26f91d9f14c762 refactored
CompilerInstance::loadModule, splitting out
findOrCompileModuleAndReadAST, but was careful to avoid making any
functional changes. It added ModuleLoader::OtherUncachedFailure to
facilitate this and left behind FIXMEs asking why certain failures
weren't cached.

After a closer look, I think we can just remove this and simplify the
code. This changes the behaviour of the following (simplified) code from
CompilerInstance::loadModule, causing a failure to be cached more often:

```
  if (auto MaybeModule = MM.getCachedModuleLoad(*Path[0].first))
    return *MaybeModule;
  if (ModuleName == getLangOpts().CurrentModule)
    return MM.cacheModuleLoad(PP.lookupModule(...));
  ModuleLoadResult Result = findOrCompileModuleAndReadAST(...);
  if (Result.isNormal()) // This will be 'true' more often.
    return MM.cacheModuleLoad(..., Module);
  return Result;
```

`MM` here is a ModuleMap owned by the Preprocessor. Here are the cases
where `findOrCompileModuleAndReadAST` starts returning a "normal" failed
result:
- Emitted `diag::err_module_not_found`, where there's no module map
  found.
- Emitted `diag::err_module_build_disabled`, where implicitly building
  modules is disabled.
- Emitted `diag::err_module_cycle`, which detects module cycles in the
  implicit modules build system.
- Emitted `diag::err_module_not_built`, which avoids building a module
  in this CompilerInstance if another one tried and failed already.
- `compileModuleAndReadAST()` was called and failed to build.

The four errors are all fatal, and last item also reports a fatal error,
so it this extra caching has no functionality change... but even if it
did, it seems fine to cache these failed results within a ModuleMap
instance (note that each CompilerInstance has its own Preprocessor and
ModuleMap).

Differential Revision: https://reviews.llvm.org/D101667
The file was modifiedclang/include/clang/Lex/ModuleLoader.h
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit 7f607ac6af0e2ee8a7d721d3ba427536deffcd3f by zoecarver
[pstl] Use logical operator for loop condition in tests

Fix a probable typo in two PSTL tests that causes warnings with GCC.

Patch by Jonathan Wakely (jwakely).

Reviewed By: zoecarver

Differential Revision: https://reviews.llvm.org/D102327
The file was modifiedpstl/test/std/algorithms/alg.nonmodifying/search_n.pass.cpp
The file was modifiedpstl/test/std/algorithms/alg.nonmodifying/find_end.pass.cpp
Commit 45212dec01b9be90596d8d6fa7586ce8c84e2622 by vsavchenko
[analyzer][solver] Prevent use of a null state

rdar://77686137

Differential Revision: https://reviews.llvm.org/D102240
The file was addedclang/test/Analysis/PR50268.c
The file was modifiedclang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
Commit cd0eeb52ad37d8f55407c548f93f42a0d5b2d08b by weiwei.li1
[mlir][spirv] Define spv.ImageQuerySize operation

Support OpImageQuerySize in spirv dialect

co-authored-by: Alan Liu <alanliu.yf@gmail.com>

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D102029
The file was modifiedmlir/test/Dialect/SPIRV/IR/image-ops.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/test/Target/SPIRV/image-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVImageOps.td
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
Commit 23e9146fba298d38142337b615e17067fb8ccb91 by Duncan P. N. Exon Smith
Modules: Rename ModuleBuildFailed => DisableGeneratingGlobalModuleIndex, NFC

Rename CompilerInstance's ModuleBuildFailed field to
DisableGeneratingGlobalModuleIndex, which more precisely describes its
role. Otherwise, it's hard to suss out how it's different from
ModuleLoader::HadFatalFailure, and what sort of code simplifications are
safe.

Differential Revision: https://reviews.llvm.org/D101670
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit ce12b52de2fb3f319ff18effc4ea9ff4d369f328 by Jonas Devlieghere
[lldb] Fixup more code addresses

The Swift async task pointers are signed on arm64e and we need to fixup
the addresses in the CFA and DWARF expressions.
The file was modifiedlldb/source/Expression/DWARFExpression.cpp
The file was modifiedlldb/source/Target/RegisterContextUnwind.cpp
Commit f93e9c12bf482dbfe3d4d00fcf8bbc251500dd99 by Jonas Devlieghere
[lldb] Fixup indirect symbols as they are signed.

This fixes a bunch of test failures in Apple Silicon (arm64e).
The file was modifiedlldb/source/Target/Process.cpp
Commit 1011d4ed60d9d32d53e20cbe72e47c9eecb84f49 by david.green
[ARM] Constrain CMPZ shift combine to a single use

We currently prefer t2CMPrs over t2CMPri when the node contains a shift.
This can introduce more nodes if the shift has multiple uses though, as
value from the shift will be needed anyway, and in the case of a t2CMPri
compared with zero will more readily be removed entirely.

Differential Revision: https://reviews.llvm.org/D101688
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vldst4.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/while-loops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
Commit 70aa4623de9fe2f609eab8969d7ef76b4c80084b by lebedev.ri
[NFC][Clang][Codegen] Add tests with wrong attributes on this/return of thunks

From https://reviews.llvm.org/D100388
The file was addedclang/test/CodeGenCXX/thunk-wrong-this.cpp
The file was addedclang/test/CodeGenCXX/thunk-wrong-return-type.cpp
Commit a624cec56d4bf61c1f3cb7daf2d27dac59c56fa4 by lebedev.ri
[Clang][Codegen] Do not annotate thunk's this/return types with align/deref/nonnull attrs

As it was discovered in post-commit feedback
for 0aa0458f1429372038ca6a4edc7e94c96cd9a753,
we handle thunks incorrectly, and end up annotating
their this/return with attributes that are valid
for their callees, not for thunks themselves.

While it would be good to fix this properly,
and keep annotating them on thunks,
i've tried doing that in https://reviews.llvm.org/D100388
with little success, and the patch is stuck for a month now.

So for now, as a stopgap measure, subj.
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/test/CodeGenCXX/constructor-destructor-return-this.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-thunks.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-return-type.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-this.cpp
The file was modifiedclang/test/CodeGenCXX/thunks-ehspec.cpp
The file was modifiedclang/lib/CodeGen/CGNonTrivialStruct.cpp
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/thunks.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-returning-memptr.cpp
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-structors.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit 16d03818412415c56efcd482d18c0cbdf712524c by lebedev.ri
Return "[CGCall] Annotate `this` argument with alignment"

The original change was reverted because it was discovered
that clang mishandles thunks, and they receive wrong
attributes for their this/return types - the ones for the function
they will call, not the ones they have.

While i have tried to fix this in https://reviews.llvm.org/D100388
that patch has been up and stuck for a month now,
with little signs of progress.

So while it will be good to solve this for real,
for now we can simply avoid introducing the bug,
by not annotating this/return for thunks.

This reverts commit 6270b3a1eafaba4279e021418c5a2c5a35abc002,
relanding 0aa0458f1429372038ca6a4edc7e94c96cd9a753.
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/tile_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/for_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/threadprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/single_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/single_private_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_for_linear_codegen.cpp
The file was modifiedclang/test/OpenMP/for_linear_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_codegen.cpp
The file was modifiedclang/test/CodeGenCXX/attr-musttail.cpp
The file was modifiedclang/test/OpenMP/parallel_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_num_threads_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
The file was modifiedclang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/task_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/sections_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_simd_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/task_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
The file was modifiedclang/test/CodeGen/attr-nomerge.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_thread_limit_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_private_codegen.cpp
The file was modifiedclang/test/OpenMP/sections_private_codegen.cpp
The file was modifiedclang/test/OpenMP/for_private_codegen.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/for_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/single_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_copyin_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/for_lastprivate_codegen.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-this.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
The file was modifiedclang/test/OpenMP/target_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/irbuilder_for_iterator.cpp
The file was modifiedclang/test/OpenMP/target_parallel_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/reduction_compound_op.cpp
The file was modifiedclang/test/OpenMP/teams_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/taskloop_simd_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_codegen.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/sections_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/irbuilder_for_rangefor.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_collapse_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/distribute_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_private_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_num_teams_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/for_reduction_codegen_UDR.cpp
The file was modifiedclang/test/OpenMP/nvptx_lambda_capturing.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/nvptx_target_codegen.cpp
The file was modifiedclang/test/OpenMP/sections_firstprivate_codegen.cpp
The file was modifiedclang/test/CodeGenCXX/this-nonnull.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
The file was modifiedclang/test/OpenMP/taskloop_in_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_if_codegen.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
The file was modifiedclang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
Commit 7c57a9bd7d4c976b7a824472c427433359200e02 by Duncan P. N. Exon Smith
Modules: Simplify how DisableGeneratingGlobalModuleIndex is set, likely NFC

DisableGeneratingGlobalModuleIndex was being set by
CompilerInstance::findOrCompileModuleAndReadAST most of (but not all of)
the times it returned `nullptr` as a "normal" failure. Pull that up to
the caller, CompilerInstance::loadModule, to simplify the code. This
resolves a number of FIXMEs added during the refactoring in
5cca622310c10fdf6f921b6cce26f91d9f14c762.

The extra cases where this is set are all some version of a fatal error,
and the only client of the field, shouldBuildGlobalModuleIndex, seems
to be unreachable in that case. Even if there is some corner case where
this has an effect, it seems like the right/consistent behaviour.

Differential Revision: https://reviews.llvm.org/D101672
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit 50e0b2985e43baf61617c9734df71e949113f911 by pklausler
[flang] Implement DOT_PRODUCT in the runtime

API, implementation, and basic tests for the transformational
reduction intrinsic function DOT_PRODUCT in the runtime support
library.

Differential Revision: https://reviews.llvm.org/D102351
The file was modifiedflang/runtime/reduction.cpp
The file was modifiedflang/runtime/CMakeLists.txt
The file was modifiedflang/runtime/complex-reduction.c
The file was addedflang/runtime/dot-product.cpp
The file was modifiedflang/runtime/tools.h
The file was modifiedflang/runtime/reduction.h
The file was modifiedflang/runtime/complex-reduction.h
The file was modifiedflang/unittests/RuntimeGTest/Reduction.cpp
Commit 54310fc176fde539b15f3cc95d4a3555df446ff6 by stefanp
[PowerPC] Add ROP Protection to prologue and epilogue

Added hashst to the prologue and hashchk to the epilogue.
The hash for the prologue and epilogue must always be stored as the first
element in the local variable space on the stack.

Reviewed By: nemanjai, #powerpc

Differential Revision: https://reviews.llvm.org/D99377
The file was modifiedllvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was addedllvm/test/CodeGen/PowerPC/ppc64-rop-protection.ll
Commit 9d3eb7885d916b22bc673334f71a10e3b2835174 by lebedev.ri
[NFC] Try to fix CodeGenCXX/thunk-wrong-this.cpp test
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-this.cpp
Commit 8ec9fd483949ca3b23053effcac226dcc56e7a95 by amanieu
Support unwinding from inline assembly

I've taken the following steps to add unwinding support from inline assembly:

1) Add a new `unwind` "attribute" (like `sideeffect`) to the asm syntax:

```
invoke void asm sideeffect unwind "call thrower", "~{dirflag},~{fpsr},~{flags}"()
    to label %exit unwind label %uexit
```

2.) Add Bitcode writing/reading support + LLVM-IR parsing.

3.) Emit EHLabels around inline assembly lowering (SelectionDAGBuilder + GlobalISel) when `InlineAsm::canThrow` is enabled.

4.) Tweak InstCombineCalls/InlineFunction pass to not mark inline assembly "calls" as nounwind.

5.) Add clang support by introducing a new clobber: "unwind", which lower to the `canThrow` being enabled.

6.) Don't allow unwinding callbr.

Reviewed By: Amanieu

Differential Revision: https://reviews.llvm.org/D95745
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/unwind-inline-asm.ll
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/include/llvm/Bitcode/LLVMBitCodes.h
The file was modifiedllvm/bindings/go/llvm/ir.go
The file was modifiedclang/lib/Basic/TargetInfo.cpp
The file was modifiedllvm/lib/IR/Core.cpp
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was addedllvm/test/CodeGen/X86/no-seh-unwind-inline-asm-codegen.ll
The file was modifiedclang/lib/Sema/SemaStmtAsm.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-unwind-inline-asm.ll
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was addedllvm/test/CodeGen/X86/unwind-inline-asm-codegen.ll
The file was modifiedllvm/include/llvm/IR/InlineAsm.h
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-unwind-inline-asm.ll
The file was addedclang/test/CodeGenCXX/unwind-inline-asm.cpp
The file was modifiedllvm/include/llvm-c/Core.h
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/Transforms/Inline/no-unwind-inline-asm.ll
The file was modifiedllvm/lib/IR/AsmWriter.cpp
The file was modifiedllvm/lib/IR/InlineAsm.cpp
The file was addedllvm/test/CodeGen/X86/no-unwind-inline-asm-codegen.ll
The file was addedllvm/test/CodeGen/X86/sjlj-unwind-inline-asm-codegen.ll
The file was addedllvm/test/Transforms/InstCombine/unwind-inline-asm.ll
The file was addedllvm/test/CodeGen/X86/seh-unwind-inline-asm-codegen.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was addedllvm/test/Transforms/Inline/unwind-inline-asm.ll
The file was addedllvm/test/Transforms/InstCombine/no-unwind-inline-asm.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modifiedllvm/lib/IR/ConstantsContext.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/Utils/ValueMapper.cpp
Commit ecc4e9e8f4cb7581cbc447bc838943176715695c by lebedev.ri
[NFC] Try to fix CodeGenCXX/thunk-wrong-return-type.cpp test
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-this.cpp
The file was modifiedclang/test/CodeGenCXX/thunk-wrong-return-type.cpp
Commit 6829bd3ed0515e17c84c5e72fe1742bd20ee61e5 by pklausler
[flang] (NFC) Expose internal idiom as utility API

Add overloads to AsGenericExpr() in Evaluate/tools.h to take care
of wrapping an untyped DataRef or bare Symbol in a typed Designator
wrapped up in a generic Expr<SomeType>.  Use the new overloads to
replace a few instances of code that was calling TypedWrapper<>()
with a dynamic type.

This new tool will be useful in lowering to drive some code that
works with typed expressions (viz., list-directed I/O list items)
when starting with only a bare Symbol (viz., NAMELIST).

Differential Revision: https://reviews.llvm.org/D102352
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was modifiedflang/lib/Evaluate/fold-designator.cpp
Commit 0d8f91d2a9994619bb62c548a81eb605f0e768f7 by lebedev.ri
[NFC] Delete two newly-added test cases

Failing on bots in unobvious ways.
The file was removedclang/test/CodeGenCXX/thunk-wrong-this.cpp
The file was removedclang/test/CodeGenCXX/thunk-wrong-return-type.cpp
Commit dd98ea528c0c23f5fee6d3dbafc261b81cca9f0d by Artem Dergachev
[ASTMatchers] NFC: Fix formatting around forFunction().

Differential Revision: https://reviews.llvm.org/D102303
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
Commit 6a079dfdc992706408f2bde84c48bf76e52c4311 by Artem Dergachev
[ASTMatchers] Add forCallable(), a generalization of forFunction().

The new matcher additionally covers blocks and Objective-C methods.

This matcher actually makes sure that the statement truly belongs
to that declaration's body. forFunction() incorrectly reported that
a statement in a nested block belonged to the surrounding function.

forFunction() is now deprecated due to the above footgun, in favor of
forCallable(functionDecl()) when only functions need to be considered.

Differential Revision: https://reviews.llvm.org/D102213
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Commit 46c6c08c9428a36bdf88f51b1a14164aa4cbb93e by Artem Dergachev
[clang-tidy] bugprone-infinite-loop: forFunction() -> forCallable().

Take advantage of the new ASTMatcher added in D102213 to fix massive false negatives of the infinite loop checker on Objective-C.

Differential Revision: https://reviews.llvm.org/D102214
The file was modifiedclang-tools-extra/clang-tidy/utils/Aliasing.h
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-infinite-loop.mm
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-infinite-loop.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/Aliasing.cpp
The file was modifiedclang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
Commit 5ad2eeeadaf15856332f66ed7c244d52a86b0be7 by Artem Dergachev
[clang-tidy] bugprone-infinite-loop: React to ObjC ivars and messages.

If the loop condition is a value of an instance variable, a property value,
or a message result value, it's a good indication that the loop is not infinite
and we have a really hard time proving the opposite so suppress the warning.

Differential Revision: https://reviews.llvm.org/D102294
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-infinite-loop.mm
The file was modifiedclang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
Commit 464e4dc50f4e6e058e12a7020385d5bf29fd1df6 by aakanksha555
[AMDGPU] Add gfx1034 target

Differential Revision: https://reviews.llvm.org/D102306
The file was modifiedclang/lib/Basic/Cuda.cpp
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_new.s
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx1030_dasm_new.txt
The file was modifiedllvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
The file was modifiedllvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl
The file was modifiedclang/include/clang/Basic/Cuda.h
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/MC/AMDGPU/gfx1011_dlops.s
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx1011_dasm_dlops.txt
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/get_elf_mach_gfx_name.cpp
The file was modifiedllvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_err.s
The file was modifiedllvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
The file was modifiedclang/test/Driver/amdgpu-macros.cl
Commit 3ac9ff5577f1d4b032a64aea1c46e95c8a5b8f68 by zoecarver
[libcxx][docs] Update the One Ranges PRoposal Status with open revisions.

1. Moves the names into the names column.
2. Changes the names to reflect who's actually working on what.
3. Adds open revisions.
The file was modifiedlibcxx/docs/OneRangesProposalStatus.csv
Commit fe319a8848f2343829925850a3969861d8d6a64c by zoecarver
[libcxx][docs] Add two locks: transform_view and take_view.

Assign myself both of these views.
The file was modifiedlibcxx/docs/OneRangesProposalStatus.csv
Commit 72abc199772c30ea2cffaa5dd4a8aa2bb2b7f18c by pklausler
[flang] Support legacy extension OPEN(ACCESS='APPEND')

It should of course be POSITION='APPEND' but Sun Fortran
supported it on ACCESS=.

Differential Revision: https://reviews.llvm.org/D102350
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/runtime/io-api.cpp
The file was modifiedflang/include/flang/Common/Fortran-features.h
The file was modifiedflang/lib/Semantics/check-io.cpp
Commit a249ffa42137431d44d7db1d04f122300bc51533 by enye.shi
[HIP] Clean up llvm intrinsics using __asm

Instead of using inline asm, use clang builtins
for llvm intrinsics.

Differential Revision: https://reviews.llvm.org/D102427
The file was modifiedclang/lib/Headers/__clang_hip_libdevice_declares.h
Commit b766576d38d304c630de5430053d06dfc7784628 by arnamoy.bhattacharyya
[flang][OpenMP] Add semantic check for close nesting of `master` regions

This patch implements the following semantic check:
```
A master region may not be closely nested inside a work-sharing, loop, atomic, task, or taskloop region.
```

Adds a test case and also modifies a couple of existing test cases to include the check.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D100228
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was addedflang/test/Semantics/omp-nested-master.f90
The file was modifiedflang/test/Semantics/omp-ordered-simd.f90
Commit 861dc75906829a177dc2e5249747771aa3866a06 by sivachandra
[libc] Add x86_64 implementations of double precision cos, sin and tan.

The implementations use the x86_64 FPU instructions. These instructions
are extremely slow compared to a polynomial based software
implementation. Also, their accuracy falls drastically once the input
goes beyond 2PI. To improve both the speed and accuracy, we will be
taking the following approach going forward:
1. As a follow up to this CL, we will implement a range reduction algorithm
which will expand the accuracy to the entire double precision range.
2. After that, we will replace the HW instructions with a polynomial
implementation to improve the run time.

After step 2, the implementations will be accurate, performant and target
architecture independent.

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D102384
The file was addedlibc/src/math/tan.h
The file was modifiedlibc/test/src/math/CMakeLists.txt
The file was addedlibc/test/src/math/sin_test.cpp
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.h
The file was addedlibc/test/src/math/cos_test.cpp
The file was addedlibc/src/math/cos.h
The file was modifiedlibc/src/math/CMakeLists.txt
The file was addedlibc/src/math/x86_64/tan.cpp
The file was addedlibc/test/src/math/tan_test.cpp
The file was addedlibc/src/math/sin.h
The file was addedlibc/src/math/x86_64/CMakeLists.txt
The file was addedlibc/src/math/x86_64/cos.cpp
The file was addedlibc/src/math/x86_64/sin.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was modifiedlibc/spec/stdc.td
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.cpp
Commit 7deb5ef44f2865f1b34cff98176a1a723107cf08 by sivachandra
[libc][NFC] Instead of erroring, skip math targets with missing implementations.

Fixes Aarch64 bot.
The file was modifiedlibc/src/math/CMakeLists.txt
Commit b42fb6811e25322f7e55d3f76fe13a6829202219 by martin
[llvm-nm] Support the -V option, print that the tool is compatible with GNU nm

This unlocks some codepaths in libtool.

Differential Revision: https://reviews.llvm.org/D102321
The file was modifiedllvm/tools/llvm-nm/llvm-nm.cpp
The file was modifiedllvm/docs/CommandGuide/llvm-nm.rst
The file was addedllvm/test/tools/llvm-nm/libtool-version.test
Commit 12874e93a15219ccfaff42a0536b2b5368c6f304 by silvasean
[mlir][NFC] Add helper for common pattern of replaceAllUsesExcept

This covers the extremely common case of replacing all uses of a Value
with a new op that is itself a user of the original Value.

This should also be a little bit more efficient than the
`SmallPtrSet<Operation *, 1>{op}` idiom that was being used before.

Differential Revision: https://reviews.llvm.org/D102373
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/lib/IR/Value.cpp
The file was modifiedmlir/lib/Dialect/SCF/Transforms/ParallelLoopTiling.cpp
The file was modifiedmlir/include/mlir/IR/Value.h
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineLoopNormalize.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
Commit 0831793ed962105b51057c02df413abef4767e7c by rob.suderman
[mlir][tosa] Add tosa.div integer lowering to linalg.generic.

Lowering div elementwise op to the linalg dialect. Since tosa only supports integer division, that is the only version that is currently implemented.

Reviewed By: rsuderman

Differential Revision: https://reviews.llvm.org/D102430
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Commit 8b57ed09bd238b00b5d096f9be7ef9f831428044 by huberjn
[OpenMP] Prevent Attributor from deleting functions in OpenMPOptCGSCC pass

Summary:
This patch prevents the Attributor instances made in the CGSCC pass from
deleting functions. This prevents the attributor from changing the call
graph while OpenMPOpt is working with it.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102363
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 4f05f4c8e66bc76b1d94f5283494404382e3bacd by i
[CMake][ELF] Link libLLVM.so and libclang-cpp.so with -Bsymbolic-functions

llvm-dev message: https://lists.llvm.org/pipermail/llvm-dev/2021-May/150465.html

In an ELF shared object, a default visibility defined symbol is preemptible by
default. This creates some missed optimization opportunities.
-Bsymbolic-functions is more aggressive than our current -fvisibility-inlines-hidden
(present since 2012) as it applies to all function definitions.  It can

* avoid PLT for cross-TU function calls && reduce dynamic symbol lookup
* reduce dynamic symbol lookup for taking function addresses and optimize out GOT/TOC on x86-64/ppc64

In a -DLLVM_TARGETS_TO_BUILD=X86 build, the number of JUMP_SLOT decreases from 12716 to 1628, and the number of GLOB_DAT decreases from 1918 to 1313
The built clang with `-DLLVM_LINK_LLVM_DYLIB=on -DCLANG_LINK_CLANG_DYLIB=on` is significantly faster.
See the Linux kernel build result https://bugs.archlinux.org/task/70697

Note: the performance of -fno-semantic-interposition -Bsymbolic-functions
libLLVM.so and libclang-cpp.so is close to a PIE binary linking against
`libLLVM*.a` and `libclang*.a`. When the host compiler is Clang,
-Bsymbolic-functions is the major contributor.  On x86-64 (with GOTPCRELX) and
ppc64 ELFv2, the GOT/TOC relocations can be optimized.

Some implication:

Interposing a subset of functions is no longer supported.
(This is fragile on ELF and unsupported on Mach-O at all. For Mach-O we don't
use `ld -interpose` or `-flat_namespace`)

Compiling a program which takes the address of any LLVM function with
`{gcc,clang} -fno-pic` and expects the address to equal to the address taken
from libLLVM.so or libclang-cpp.so is unsupported. I am fairly confident that
llvm-project shouldn't have different behaviors depending on such pointer
equality (as we've been using -fvisibility-inlines-hidden which applies to
inline functions for a long time), but if we accidentally do, users should be
aware that they should not make assumption on pointer equality in `-fno-pic`
mode.

See more on https://maskray.me/blog/2021-05-09-fno-semantic-interposition

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D102090
The file was modifiedllvm/tools/llvm-shlib/CMakeLists.txt
The file was modifiedclang/tools/clang-shlib/CMakeLists.txt
Commit b47539a14dc8a40e8710aef2fb75d2486f271dba by sivachandra
[libc] Enable fmaf and fma on x86_64.

They require clang-11 or above for building and hence had to be disabled
as the bots did not have clang-11 or higher. Bots have now been upgraded
so we can enable these functions now.
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
Commit f97d970a49fb1f95cd3ac599369e53325129f769 by rob.suderman
[mlir][tosa] Add lowering to tosa.abs for integer cases

Integer case requires decomposing to simple LLVM operatons.

Differential Revision: https://reviews.llvm.org/D101809
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Commit 6c4596793d43703923552e791716a3d511e28fe0 by lebedev.ri
[NFC][X86][MCA] AMD Zen 3: add same-reg SSE XMM XORPS test
The file was addedllvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s
Commit aa0dcb3ba4b93e4499208def080ced98f3a89ad5 by lebedev.ri
[X86] AMD Zen 3: same-reg SSE XMM XORPS is a 1-cycle(!) dep-breaking one-idiom

While both the SOG and Agner insist that it is zero-cycle,
i can not confirm that claim. While it clearly breaks the dependency,
i can not come up with a snippet, or measurement approach,
to end up with IPC bigger than 4, which, to me, means that it actually
consumes execution resource of an FP unit for a cycle.
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver3.td
The file was modifiedllvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s
Commit 6b95fd199d96e3ba5c28a23b17b74203522bdaa8 by lebedev.ri
Revert "[X86] X86TTIImpl::getInterleavedMemoryOpCostAVX2(): use getMemoryOpCost()"

Depends on a commit that is about to be reverted.

This reverts commit 69ed93a4355123a45c1d7216aea7cd53d07a361b.
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i8.ll
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i8.ll
Commit 5fddc3312bad7e62493f1605385fad5e589e6450 by lebedev.ri
Revert "[X86][CostModel] X86TTIImpl::getMemoryOpCost(): rewrite vector handling again"

As reported in post-commit feedback, this has issues with e.g. <16 x i1>:
https://llvm.godbolt.org/z/jxPvdGEW4

This reverts commit c02476f3158f2908ef0a6f628210b5380bd33695.
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/load_store.ll
Commit dce158c58d851747c2e1c188dcf4baa4620b5516 by nikita.ppv
[AA] Use isIdentifiedFunctionLocal() (NFC)

This condition is equivalent to isIdentifiedFunctionLocal(),
and this is also what we semantically want to check here.
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp
Commit 425781bce01f2f1d5f553d3b2bf9ebbd6e15068c by nikita.ppv
[CaptureTracking] Use isIdentifiedFunctionLocal() (NFC)

These conditions together exactly match isIdentifiedFunctionLocal(),
and this is also what we logically want to check for here.
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp
Commit 71a0609a2b533dbcd6826ad774b6bee5e9818644 by Lang Hames
[clang-repl] Temporarily disable the execute.cpp test on ppc64.

This test is failing on some builders (see [1]) with the following error:

error: Added modules have incompatible data layouts:
  e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512 (module) vs
  E-m:a-i64:64-n32:64-S128-v256:256:256-v512:512:512 (jit)

The JIT layout is correct, but some IR module added to the JIT is using a
little-endian layout instead.

This commit disables the test on ppc64 until we can investigate further and
fix the bug.

[1] https://lab.llvm.org/staging/#/builders/126/builds/371
The file was modifiedclang/test/Interpreter/execute.cpp
Commit 772bdef6afb661dfd67b3e5c77befa56d249bff8 by aeubanks
[docs] Add page on opaque pointer types

Reviewed By: dblaikie, dexonsmith

Differential Revision: https://reviews.llvm.org/D102292
The file was addedllvm/docs/OpaquePointers.rst
The file was modifiedllvm/docs/UserGuides.rst
Commit 93d56922fabaf52eec8d1d4e28e04fa47eb1c797 by amanieu
Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue (PR39439)

Fixes buildbot failure (https://lab.llvm.org/buildbot/#/builders/16/builds/10825).

Reviewed By: Amanieu

Differential Revision: https://reviews.llvm.org/D102433
The file was modifiedllvm/test/CodeGen/X86/sjlj-unwind-inline-asm-codegen.ll
Commit 83ff0ff46337422171fb36f934bd56c2bc1be15c by llvm-project
[Clang][OpenMP] Allow unified_shared_memory for Pascal-generation GPUs.

The Pascal architecture supports the page migration engine required for
unified_shared_memory, as indicated by NVIDIA:
* https://developer.nvidia.com/blog/unified-memory-cuda-beginners/
* https://developer.nvidia.com/blog/beyond-gpu-memory-limits-unified-memory-pascal/
* https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#um-requirements

The limitation was introduced in D54493 which justified the cut-off by
the requirement for unified addressing. However, Unified Virtual
Addressing (UVA) is already available with sm20 (Fermi, Kepler,
Maxwell):
* https://docs.nvidia.com/cuda/gpudirect-rdma/index.html#basics-of-uva-cuda-memory-management

Unified shared memory might even be possible with these, but with
migration of entire allocations on kernel startup.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D101595
The file was modifiedclang/test/OpenMP/requires_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
Commit 2155dc51d700c9fb5f29d79eaacf5e1470e4d8ca by aeubanks
[IR] Introduce the opaque pointer type

The opaque pointer type is essentially just a normal pointer type with a
null pointee type.

This also adds support for the opaque pointer type to the bitcode
reader/writer, as well as to textual IR.

To avoid confusion with existing pointer types, we disallow creating a
pointer to an opaque pointer.

Opaque pointer types should not be widely used at this point since many
parts of LLVM still do not support them. The next steps are to add some
very simple use cases of opaque pointers to make sure they work, then
start pretending that all pointers are opaque pointers and see what
breaks.

https://lists.llvm.org/pipermail/llvm-dev/2021-May/150359.html

Reviewed By: dblaikie, dexonsmith, pcc

Differential Revision: https://reviews.llvm.org/D101704
The file was modifiedllvm/lib/IR/LLVMContextImpl.h
The file was addedllvm/test/Assembler/invalid-opaque-ptr.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/AsmParser/LLLexer.cpp
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was addedllvm/test/Assembler/opaque-ptr.ll
The file was modifiedllvm/lib/IR/Type.cpp
The file was modifiedllvm/lib/IR/AsmWriter.cpp
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
The file was modifiedllvm/include/llvm/Bitcode/LLVMBitCodes.h
Commit be5c7c5d8230428f024bd656beb48ef8462985ff by steveire
Widen `name` stencil to support `TypeLoc` nodes.

Differential Revision: https://reviews.llvm.org/D102185
The file was modifiedclang/unittests/Tooling/RangeSelectorTest.cpp
The file was modifiedclang/lib/Tooling/Transformer/RangeSelector.cpp
The file was modifiedclang/include/clang/Tooling/Transformer/RangeSelector.h
Commit 1e01a8919f8d0fdc8c2f5f679fcc541b61381b0f by nicolas.vasilache
[mlir][Linalg] Add ComprehensiveBufferize for functions(step 1/n)

This is the first step towards upstreaming comprehensive bufferization following the
discourse post: https://llvm.discourse.group/t/rfc-linalg-on-tensors-update-and-comprehensive-bufferization-rfc/3373/6.

This first commit introduces a basic pass for bufferizing within function boundaries,
assuming that the inplaceable function boundaries have been marked as such.

Differential revision: https://reviews.llvm.org/D101693
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
The file was addedmlir/test/Dialect/Linalg/comprehensive-func-bufferize.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
The file was addedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
Commit bebf5d56bff75cd5b74b58cbdcb965885a82916f by nicolas.vasilache
[mlir][Linalg] Add support for vector.transfer ops to comprehensive bufferization (2/n).

Differential revision: https://reviews.llvm.org/D102395
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
The file was modifiedmlir/test/Dialect/Linalg/comprehensive-func-bufferize.mlir
Commit 6a70874d27c73cf8b55a568449fd92f97b5bb7b3 by Matthew.Arsenault
AMDGPU/GlobalISel: Implement tail calls

Or at least the sibling call cases which the DAG already handles.
The file was modifiedllvm/test/CodeGen/AMDGPU/call-constant.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.h
The file was modifiedllvm/test/CodeGen/AMDGPU/tail-call-amdgpu-gfx.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-tail-call.ll
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-sibling-call.ll
Commit 85394d9ed71bea61000a502abc1f89a3981bee59 by Matthew.Arsenault
AMDGPU/GlobalISel: Don't hardcode stack alignment in assert message
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
Commit 5ba4a0e890c8106a10d32b0d34af1b214b9bdf3a by rnk
[gn] Don't pass -fprofile-instr-generate to linker on Windows

Avoids a warning from the linker. The user still has to put the resource
directory on the linker search path, and I can't find a clean way to do
that automatically in gn.
The file was modifiedllvm/utils/gn/build/BUILD.gn
Commit 8fdfead71aba430c163cc9c972a387a17fd8b939 by clementval
[mlir][openacc][NFC] add anonymous namespace around LegalizeDataOpForLLVMTranslation class

Add missing anonymous namespace around LegalizeDataOpForLLVMTranslation class .

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D102380
The file was modifiedmlir/lib/Conversion/OpenACCToLLVM/OpenACCToLLVM.cpp
Commit af6eb1c710ca17f2f9bce667b9fb593b6541f260 by Amara Emerson
[AArch64][GlobalISel] Fix a crash during unsuccessful G_CTPOP <2 x s64> legalization.

The legalization rule for scalar-same-as doesn't handle vectors. Until we
implement custom legalization for this, at least fall back properly.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-ctpop.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
Commit 75f3beeedf6343e2ce1e8143e0d037d96cdab0b2 by czhengsz
[Debug-Info] make DIE attributes generation under strict DWARF control

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101024
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
The file was modifiedllvm/test/DebugInfo/PowerPC/strict-dwarf.ll
Commit 72797dedb720fae22682fc884cbf741c5a2066c2 by i
[sanitizer] Use size_t on g_tls_size to fix build on x32

On x32 size_t == unsigned int, not unsigned long int:

../../../../../src-master/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp: In function ??void __sanitizer::InitTlsSize()??:
../../../../../src-master/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp:209:55: error: invalid conversion from ??__sanitizer::uptr*?? {aka ??long unsigned int*??} to ??size_t*?? {aka ??unsigned int*??} [-fpermissive]
  209 |   ((void (*)(size_t *, size_t *))get_tls_static_info)(&g_tls_size, &tls_align);
      |                                                       ^~~~~~~~~~~
      |                                                       |
      |                                                       __sanitizer::uptr* {aka long unsigned int*}

by using size_t on g_tls_size.  This is to fix:

https://bugs.llvm.org/show_bug.cgi?id=50332

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D102446
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Commit ab6a609d961181bbac0d1ea0a830061049990020 by aeubanks
[test] Fix new-pm-lto-defaults.ll to work on all platforms

https://lab.llvm.org/buildbot/#/builders/119/builds/3775/steps/8/logs/FAIL__LLVM__new-pm-lto-defaults_ll

Followup to D102345.
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
Commit 9567131d03650bbaa82251f173bd6959e04d471d by peter
scudo: Check for UAF in ring buffer before OOB in more distant blocks.

It's more likely that we have a UAF than an OOB in blocks that are
more than 1 block away from the fault address, so the UAF should
appear first in the error report.

Differential Revision: https://reviews.llvm.org/D102379
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
Commit f79929aceae966f9419cfc00c275e5e60bd0ee54 by peter
scudo: Fix MTE error reporting for zero-sized allocations.

With zero-sized allocations we don't actually end up storing the
address tag to the memory tag space, so store it in the first byte of
the chunk instead so that we can find it later in getInlineErrorInfo().

Differential Revision: https://reviews.llvm.org/D102442
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
Commit 61484762e9e95aa430083ceb5bd53fe0c849728e by czhengsz
[Debug-Info] change Tag type to dwarf::Tag for createAndAddDIE; NFC

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102207
The file was modifiedllvm/include/llvm/IR/DebugInfoMetadata.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
Commit 2ca887de6e3c83f77e3ccde172ff55042cece6ab by springerm
[mlir] VectorToSCF target rank is a pass option

Make "target rank" a pass option of VectorToSCF.

Depends On D102101

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D102123
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h
Commit c76e3c319ebfeecbc2814ae7ac44516b5f0b4027 by Lang Hames
[ORC] Remove some stale unit test utils.

This code was used to test ORCv1, which has been removed. It is not useful for
testing ORCv2.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
Commit 527bd6dc1cc1a9ca14f40ef4eb5b5c1493da43b0 by Lang Hames
[ORC] Remove unused RTDyldObjectLinkingLayerExecutionTest class from unit test.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp
Commit 65736ac439beb12313d76c5b8bda12b3d0f469da by Lang Hames
[ORC] Remove the OrcExecutionTest class. It is no longer used.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
Commit 23a84e1c602c9ed42f51653805ce9e7f4d49be2a by jurahul
[MLIR] Fix build failures due to unused variables in non-debug builds.

Differential Revision: https://reviews.llvm.org/D102458
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
Commit a088bed4e3b572f8a3f8a1f7a41942f3005e4811 by springerm
[mlir] VectorToSCF cleanup

Group functions/structs in namespaces for better code readability.

Depends On D102123

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D102124
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit ee23f8b36f2c620f54fe5cbd74cbf930cb67c6fb by rnk
[COFF] Remove a truncation assertion from setRVA

LLD already produces a nice error message when sections exceed 4GB, and
this setRVA assertion causes LLD to crash instead of diagnosing the
error properly.

No test because we don't want slow tests that create 4GB files.
The file was modifiedlld/COFF/Chunks.h
Commit d2f4b7d77828dba831f4b7429a7c970d71eb853b by rnk
Use enum comparison instead of generated switch/case, NFC

Clang's coverage data for auto-generated switch cases is really, really
large. Before this change, when I enable code coverage, SemaDeclAttr.obj
is 4.0GB. Naturally, this fails to link.

Replacing the RISCV builtin id check with a comparison reduces object
file size from 4.0GB to 330MB. Replacing the AArch64 SVE range check
reduces the size again down to 17MB, which is reasonable.

I think the RISCV switch is larger in coverage data because it uses more
levels of macro expansion, while the SVE intrinsics only use one. In any
case, please try to avoid switches with 1000+ cases, they usually don't
optimize well.
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
Commit 9cf6ff7affad4cd1f3d4d81da64356cb076b0303 by carl.ritson
[AMDGPU] Do not clause NSA instructions

To ensure correct behaviour NSA instructions should not be claused.

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D102211
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/test/CodeGen/AMDGPU/hard-clauses.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/cluster_stores.ll
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp
Commit 261d6e05d5574bec753ea6b7e9a7f99229927753 by i
[sanitizer] Simplify __sanitizer::BufferedStackTrace::UnwindImpl implementations

Intended to be NFC. D102046 relies on the refactoring for stack boundaries.
The file was modifiedcompiler-rt/lib/lsan/lsan.cpp
The file was modifiedcompiler-rt/lib/ubsan/ubsan_diag_standalone.cpp
The file was modifiedcompiler-rt/lib/msan/msan.cpp
The file was modifiedcompiler-rt/lib/asan/asan_stack.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_stack_trace.cpp
Commit 9099c9ef78c01145f9cf93671081409a8c4c0394 by Lang Hames
[JITLink] Fix missing 'static' keyword in unit test.
The file was modifiedllvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
Commit 0fda4c4745b81e8a0eed2b80b0b03f33c16c2b99 by Lang Hames
[ORC] Add support for adding LinkGraphs directly to ObjectLinkingLayer.

This is separate from (but builds on) the support added in ec6b71df70a for
emitting LinkGraphs in the context of an active materialization. This commit
makes LinkGraphs a first-class data structure with features equivalent to
object files within ObjectLinkingLayer.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was addedllvm/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp
Commit de115c3fb25f812ac43a5e1c7986b521ab5847c2 by llvmgnsyncbot
[gn build] Port 0fda4c4745b8
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
Commit c82a0ae70e280c1c40b1af09ef275ddc7ed4254d by Lang Hames
[ORC] Add JITLink dependence for ObjectLinkingLayerTest.

This aims to fix the failure at
https://lab.llvm.org/buildbot/#/builders/61/builds/9590.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CMakeLists.txt

Summary

  1. [PowerPC] Change RHEL buildbot to unifiedtreebuilder (details)
Commit 69c601cb34aecc7e2dcb112cd112b6fa9a105d7f by albionapc
[PowerPC] Change RHEL buildbot to unifiedtreebuilder

The patch switches the RHEL buildbot to utilise more jobs when building, as
well as UnifiedTreeBuilder (ie, with cmake and Ninja).

Differential: https://reviews.llvm.org/D101199
The file was modifiedbuildbot/osuosl/master/config/builders.py
The file was modifiedbuildbot/osuosl/master/config/workers.py