SuccessChanges

Summary

  1. ClangBuilder: Enable fortran in test-suite (details)
  2. Deprecate build cache servers for aarch64 and aarch32 from Buildbot (details)
  3. [libc] Make clang and clang++ as the explicit C and C++ compilers. (details)
Commit e2f431ab99945166a1113bc7a64f617b472f360b by diana.picus
ClangBuilder: Enable fortran in test-suite

Automatically enable running the fortran parts of the test-suite if
flang is part of the checkout. In order to do this, we need to pass two
CMake defines when configuring the test-suite: one telling it to enable
fortran and one pointing it at flang. The latter picks the most recently
built flang (i.e. it chooses the one from stage 2 if there is one).

At the moment, this only affects clang-cmake-aarch64-full.

Differential Revision: https://reviews.llvm.org/D94945
The file was modifiedzorg/buildbot/builders/ClangBuilder.py (diff)
Commit 97e52ecebc038e2c1112ab6ca0f7926a29ef2dfe by Leandro.Nunes
Deprecate build cache servers for aarch64 and aarch32 from Buildbot

* Remove two builders
   - clang-aarch64-linux-build-cache
   - clang-armv7-linux-build-cache

   And underlying servers:
   - packet-linux-aarch64-slave-1
   - packet-linux-armv7-slave-1

* These servers are not being used in a while, and the build
   processes provided by them overlap with other builders.

Differential Revision: https://reviews.llvm.org/D95429
The file was modifiedbuildbot/osuosl/master/config/status.py (diff)
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
The file was modifiedbuildbot/osuosl/master/config/workers.py (diff)
Commit bfafc6476c650a1c5db9390b1bd0320e73abab4e by sivachandra
[libc] Make clang and clang++ as the explicit C and C++ compilers.
The file was modifiedzorg/buildbot/builders/annotated/libc-linux.py (diff)

Summary

  1. Fix 0f0462cacf34aa88ae71a13c4199c1b1e70f3ee6 (details)
  2. Revert "[lit] Use os.cpu_count() to cleanup TODO" (details)
  3. [YAML I/O] Fix bug in emission of empty sequence (details)
  4. [flang] Search for #include "file" in right directory (details)
  5. [flang] Fix errors in ISO_FORTRAN_ENV module for REAL128 (details)
  6. Revert "[ObjC][ARC] Annotate calls with attributes instead of emitting retainRV" (details)
  7. Recommit "[AArch64][GlobalISel] Implement widenScalar for signed overflow" (details)
  8. [clangd] ignore parallelism level for quick tasks (details)
  9. [mlir:Async] Add intermediate async.coro and async.runtime operations to simplify Async to LLVM lowering (details)
  10. Fix 0f0462cacf34aa88ae71a13c4199c1b1e70f3ee6 (details)
  11. [RISCV] Add RVV insertelt/extractelt scalable-vector patterns (details)
  12. [LSR] Drop potentially invalid nowrap flags when switching to post-inc IV (PR46943) (details)
  13. [clangd] Allow configuration database to be specified in config. (details)
  14. Follow on to: f05dc40c31d1883b46b8bb60547087db2f4c03e3 (details)
  15. Restore GNU , ## __VA_ARGS__ behavior in MSVC mode (details)
  16. Fix runInTerminal errors on ARM (details)
  17. Fix -Wmissing-override in lldb (details)
  18. Support: Remove duplicated code in {File,clang::ModulesDependency}Collector, NFC (details)
  19. [clang][Fuchsia] Add relative-vtables + asan multilibs (details)
  20. [OpenMP][deviceRTLs] Remove omp_is_initial_device (details)
  21. [InlineAdvisor] Allow replay of inline decisions for the CGSCC inliner from optimization remarks (details)
  22. [lldb/Lua] add support for Lua function breakpoint (details)
  23. [AMDGPU] Added -mcpu=tahiti to 3 tests. NFC. (details)
  24. [NFC] Disallow unused prefixes in clang/test/Analysis (details)
  25. [lld-macho] Link against ObjCARCOpts instead of ObjCARC (details)
  26. AMDGPU: Reduce the number of expensive calls in SIFormMemoryClause (details)
  27. [RISCV] Add isel patterns to optimize slli.uw patterns without Zba extension. (details)
  28. Revert "Revert "[GlobalISel] LegalizerHelper - Extract widenScalarAddoSubo method"" (details)
  29. DebugInfo: Generalize the .debug_addr minimization flag to pave the way for including other strategies (details)
  30. [libc++] Support immovable return types in std::function. (details)
  31. [TargetLowering][RISCV] Don't transform (seteq/ne (sext_inreg X, VT), C1) -> (seteq/ne (zext_inreg X, VT), C1) if the sext_inreg is cheaper (details)
  32. ExpressionParser: Migrate to FileEntryRef in ParseInternal, NFC (details)
  33. [mlir:Async] Use LLVM coro operations in async.coro lowering (details)
  34. [JITLink] Re-apply 6884fbc2c4f (ELF eh support) with fix for broken test case. (details)
  35. SourceManager: Unify FileEntry/FileEntryRef versions of createFileID (details)
  36. SourceManager: Migrate to FileEntryRef in getOrCreateContentCache, NFC (details)
  37. [x86] Fix trivial typo in emmintrin.h (details)
  38. [lit] Update lit.py shebang for Python3 (details)
  39. [GlobalISel][Localizer] Don't localize phi operands which are used more than once in the phi. (details)
  40. Frontend: Take VFS and MainFileBuffer by reference in PrecompiledPreamble::CanReuse, NFC (details)
  41. [libcxx] random_device, for OpenBSD specify optimal entropy properties (details)
  42. Revert "Fix SBDebugger::CreateTargetWithFileAndArch to accept LLDB_ARCH_DEFAULT." (details)
  43. [llvm-link] Fix crash when materializing appending global (details)
  44. [X86] Correct some cross references in avxintrin.h. (details)
  45. [libomptarget][cuda] Gracefully handle missing cuda library (details)
  46. [PowerPC] Do not emit HW loop with half precision operations (details)
  47. [JITLink] Disable ELF_ehframe_basic.s test on Windows. (details)
  48. [Test][AArch64] Move overflow add/sub tests to their own file. NFC (details)
  49. [Test][AArch64] Add s32 legalizer test for UADDE/USUBE (details)
  50. Revert "[libomptarget][cuda] Gracefully handle missing cuda library" (details)
  51. [OpenMP] Added the support for hidden helper task in RTL (details)
  52. [TableGen] Use llvm::append_range (NFC) (details)
  53. [StackSafety] Use ListSeparator (NFC) (details)
  54. [AMDGPU] Forward-declare MachineIRBuilder (NFC) (details)
Commit 12049d888595de3be99fdc62e8e4282df3fa462d by a20012251
Fix 0f0462cacf34aa88ae71a13c4199c1b1e70f3ee6

This test fails on ARM, but this feature won't be used on ARM, so we can
disable it for that architecture.
The file was modifiedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py (diff)
Commit db1a7089eaf0c4df5e1fbfe974716f2bb6cb77e8 by julian.lettner
Revert "[lit] Use os.cpu_count() to cleanup TODO"

A bot owner contacted me.  I will re-land after confirming that this
doesn't break anyone (since it's low priority).

This reverts commit 9946b169c379daee603436a4753acfef8be373dd.
The file was modifiedllvm/utils/lit/lit/cl_arguments.py (diff)
The file was modifiedllvm/utils/lit/lit/util.py (diff)
The file was modifiedllvm/utils/lit/lit/run.py (diff)
Commit f50b8ee71faeb5056df7a950e7427f3047ff9987 by Jonas Devlieghere
[YAML I/O] Fix bug in emission of empty sequence

Don't emit an output dash for an empty sequence. Take emitting a vector
of strings for example:

  std::vector<std::string> Strings = {"foo", "bar"};
  LLVM_YAML_IS_SEQUENCE_VECTOR(std::string)
  yout << Strings;

This emits the following YAML document.

  ---
  - foo
  - bar
  ...

When the vector is empty, this generates the following result:

  ---
  - []
  ...

Although this is valid YAML, it does not match what we meant to emit.
The result is a one-element sequence consisting of an empty list.
Indeed, if we were to try to read this again we get an error:

  YAML:2:4: error: not a mapping
  - []

The problem is the output dash before the empty list. The correct output
would be:

  ---
  []
  ...

This patch fixes that by not emitting the output dash for an empty
sequence.

Differential revision: https://reviews.llvm.org/D95280
The file was modifiedllvm/include/llvm/Support/YAMLTraits.h (diff)
The file was modifiedllvm/unittests/Support/YAMLIOTest.cpp (diff)
The file was modifiedllvm/lib/Support/YAMLTraits.cpp (diff)
Commit d987b61b1dce9948801ac37704477e7c257100b1 by pklausler
[flang] Search for #include "file" in right directory

Make the #include "file" preprocessing directive begin its
search in the same directory as the file containing the directive,
as other preprocessors and our Fortran INCLUDE statement do.

Avoid current working directory for all source files after the original.

Differential Revision: https://reviews.llvm.org/D95388
The file was modifiedflang/tools/f18/f18.cpp (diff)
The file was modifiedflang/lib/Parser/prescan.cpp (diff)
The file was modifiedflang/lib/Parser/source.cpp (diff)
The file was modifiedflang/lib/Parser/preprocessor.cpp (diff)
The file was modifiedflang/lib/Parser/parsing.cpp (diff)
The file was modifiedflang/lib/Parser/provenance.cpp (diff)
The file was modifiedflang/include/flang/Parser/provenance.h (diff)
The file was modifiedflang/include/flang/Parser/source.h (diff)
Commit 03f1c9fa85d426d8638cefdf58496733ae225de1 by pklausler
[flang] Fix errors in ISO_FORTRAN_ENV module for REAL128

Some parameters of 128-bit IEEE floating-point numbers were
incorrect, leading to a failure to define REAL128 to 16.

Differential Revision: https://reviews.llvm.org/D95387
The file was modifiedflang/module/iso_fortran_env.f90 (diff)
Commit 925ae8c790c7e354f12ec14a6cac6aa49fc75b29 by richard
Revert "[ObjC][ARC] Annotate calls with attributes instead of emitting retainRV"

This reverts commit 53176c168061d6f26dcf3ce4fa59288b7d67255e, which
introduceed a layering violation. LLVM's IR library can't include
headers from Analysis.
The file was modifiedllvm/lib/IR/Instruction.cpp (diff)
The file was modifiedllvm/lib/Transforms/ObjCARC/PtrState.h (diff)
The file was modifiedllvm/test/CodeGen/AArch64/call-rv-marker.ll (diff)
The file was removedclang/test/CodeGenObjC/arc-rv-attr.m
The file was modifiedllvm/test/Transforms/ObjCARC/contract-marker-funclet.ll (diff)
The file was modifiedllvm/test/Transforms/DeadArgElim/deadretval.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp (diff)
The file was modifiedllvm/test/Transforms/ObjCARC/rv.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/DeadArgumentElimination.cpp (diff)
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp (diff)
The file was removedllvm/test/Transforms/Inline/inline-retainRV-call.ll
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARC.cpp (diff)
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp (diff)
The file was modifiedllvm/lib/Transforms/ObjCARC/PtrState.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGObjC.cpp (diff)
The file was removedllvm/include/llvm/Analysis/ObjCARCRVAttr.h
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARC.h (diff)
The file was modifiedllvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h (diff)
The file was modifiedclang/test/CodeGenObjC/arc-unsafeclaim.m (diff)
The file was removedllvm/test/Transforms/ObjCARC/contract-rv-attr.ll
Commit aa8f3677f7990a50400735775aa03ad7555ffaa1 by code
Recommit "[AArch64][GlobalISel] Implement widenScalar for signed overflow"

Implement widening for G_SADDO and G_SSUBO.
Add legalize-add/sub tests for narrow overflowing add/sub on AArch64.

Differential Revision: https://reviews.llvm.org/D95034
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir (diff)
Commit 3680cb99a77090b46e66fd1d4b5472f0546c978f by sam.mccall
[clangd] ignore parallelism level for quick tasks

This allows quick tasks without dependencies that
need to run fast to run ASAP. This is mostly useful
for code formatting.

----------------------------

This fixes something that's been annoying me:
- Open your IDE workspace and its 20 open files
- Clangd spends 5 minutes parsing it all
- In the meantime you start to work
- Save a file, trigger format-on-save, which hangs because clangd is busy
- You're stuck waiting until clangd is done parsing your files before the formatting and save takes place

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D94875
The file was modifiedclang-tools-extra/clangd/ClangdServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp (diff)
The file was modifiedclang-tools-extra/clangd/TUScheduler.h (diff)
Commit 9c53b8e52e0584030ef76c3b9373e4077f8d80c3 by ezhulenev
[mlir:Async] Add intermediate async.coro and async.runtime operations to simplify Async to LLVM lowering

[NFC] No new functionality, mostly a cleanup and one more abstraction level between Async and LLVM IR.

Instead of lowering from Async to LLVM coroutines and Async Runtime API in one shot, do it progressively via async.coro and async.runtime operations.

1. Lower from async to async.runtime/coro (e.g. async.execute to function with coro setup and runtime calls)
2. Lower from async.runtime/coro to LLVM intrinsics and runtime API calls

Intermediate coro/runtime operations will allow to run transformations on a higher level IR and do not try to match IR based on the LLVM::CallOp properties.

Although async.coro is very close to LLVM coroutines, it is not exactly the same API, instead it is optimized for usability in async lowering, and misses a lot of details that are present in @llvm.coro intrinsic.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D94923
The file was modifiedmlir/test/Dialect/Async/async-ref-counting.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Async/IR/Async.h (diff)
The file was addedmlir/test/Dialect/Async/runtime.mlir
The file was addedmlir/test/Conversion/AsyncToLLVM/convert-coro-to-llvm.mlir
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Async/IR/AsyncOps.td (diff)
The file was addedmlir/test/Dialect/Async/coro.mlir
The file was modifiedmlir/test/Dialect/Async/async-ref-counting-optimization.mlir (diff)
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir (diff)
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncRefCounting.cpp (diff)
The file was modifiedmlir/test/Dialect/Async/ops.mlir (diff)
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncRefCountingOptimization.cpp (diff)
The file was modifiedmlir/lib/Dialect/Async/IR/Async.cpp (diff)
The file was addedmlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir
The file was modifiedmlir/include/mlir/Dialect/Async/IR/AsyncBase.td (diff)
Commit 1ac36b34db81d2fccd2b4a98d497be62083de3b1 by a20012251
Fix 0f0462cacf34aa88ae71a13c4199c1b1e70f3ee6

This fails on Windows because std::future<llvm::Error> fail to compile.
Now switching to SBError as a workaround.

Failed buildbot: http://lab.llvm.org:8011/#/builders/83/builds/3021
The file was modifiedlldb/tools/lldb-vscode/RunInTerminal.h (diff)
The file was modifiedlldb/tools/lldb-vscode/RunInTerminal.cpp (diff)
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
Commit 15141cd115e068104cc61f32ada05bebf5ef03a5 by fraser
[RISCV] Add RVV insertelt/extractelt scalable-vector patterns

Original patch by @rogfer01.

This patch adds support for insertelt and extractelt operations on
scalable vectors.

Special care must be taken on RV32 when dealing with i64 vectors as
there are no straightforward ways to insert a 64-bit element without a
register of that size. To that end, both are custom-lowered to different
sequences.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Fraser Cormack <fraser@codeplay.com>

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D94615
The file was addedllvm/test/CodeGen/RISCV/rvv/extractelt-fp-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/extractelt-int-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h (diff)
The file was addedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td (diff)
The file was addedllvm/test/CodeGen/RISCV/rvv/extractelt-fp-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/extractelt-int-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv64.ll
Commit 835104a1141a06ae7821fe2b642b9603e00aa17b by nikita.ppv
[LSR] Drop potentially invalid nowrap flags when switching to post-inc IV (PR46943)

When LSR converts a branch on the pre-inc IV into a branch on the
post-inc IV, the nowrap flags on the addition may no longer be valid.
Previously, a poison result of the addition might have been ignored,
in which case the program was well defined. After branching on the
post-inc IV, we might be branching on poison, which is undefined behavior.

Fix this by discarding nowrap flags which are not present on the SCEV
expression. Nowrap flags on the SCEV expression are proven by SCEV
to always hold, independently of how the expression will be used.
This is essentially the same fix we applied to IndVars LFTR, which
also performs this kind of pre-inc to post-inc conversion.

I believe a similar problem can also exist for getelementptr inbounds,
but I was not able to come up with a problematic test case. The
inbounds case would have to be addressed in a differently anyway
(as SCEV does not track this property).

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

Differential Revision: https://reviews.llvm.org/D95286
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp (diff)
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/X86/pr46943.ll (diff)
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/X86/sibling-loops.ll (diff)
Commit 118c33ef47acae6ebb91350cf8f7bfb85427ef4e by sam.mccall
[clangd] Allow configuration database to be specified in config.

This allows for more flexibility than -compile-commands-dir or ancestor
discovery.

See https://github.com/clangd/clangd/issues/116

Differential Revision: https://reviews.llvm.org/D95057
The file was modifiedclang-tools-extra/clangd/GlobalCompilationDatabase.h (diff)
The file was modifiedclang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Config.h (diff)
The file was modifiedclang-tools-extra/clangd/ConfigFragment.h (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ConfigCompile.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ConfigYAML.cpp (diff)
The file was modifiedclang-tools-extra/clangd/GlobalCompilationDatabase.cpp (diff)
Commit 1fba21778f84f266f7d32153c88e59e1900fbe5b by jingham
Follow on to: f05dc40c31d1883b46b8bb60547087db2f4c03e3

When you pass in a bogus ArchSpec, TargetList.CreateTarget
makes a target with the arch of the executable.  That wasn't the
case with a bogus triple, so this change caused one of the bogus
input data tests to fail.  So check that the ArchSpec is valid
before passing it to CreateTarget.
The file was modifiedlldb/source/API/SBDebugger.cpp (diff)
Commit b43c26d036dcbf7a6881f39e4434cf059364022a by harald
Restore GNU , ## __VA_ARGS__ behavior in MSVC mode

As noted in D91913, MSVC implements the GNU behavior for
, ## __VA_ARGS__ as well. Do the same when `-fms-compatibility` is used.

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D95392
The file was modifiedclang/test/Preprocessor/macro_fn_comma_swallow2.c (diff)
The file was modifiedclang/lib/Lex/TokenLexer.cpp (diff)
Commit 50337fb933e0f666d34d747a43d46840b3982bf7 by a20012251
Fix runInTerminal errors on ARM

Caused by https://reviews.llvm.org/D93951

This feature is not needed on ARM, so let's just disable the tests on
ARM.
The file was modifiedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py (diff)
Commit 68466861283fe5913a384d4f7bf28f60aa5dc3c2 by dblaikie
Fix -Wmissing-override in lldb
The file was modifiedlldb/unittests/Process/ProcessEventDataTest.cpp (diff)
The file was modifiedlldb/unittests/Thread/ThreadTest.cpp (diff)
The file was modifiedlldb/unittests/Target/ExecutionContextTest.cpp (diff)
Commit 080952a9447a4819bdd08648e4ae8787aa72e6f3 by Duncan P. N. Exon Smith
Support: Remove duplicated code in {File,clang::ModulesDependency}Collector, NFC

Refactor the duplicated canonicalize-path logic in `FileCollector` and
`ModulesDependencyCollector` into a new utility called
`PathCanonicalizer` that's shared. This popped up when tracking down a
bug common to both in https://reviews.llvm.org/D95202.

As drive-bys, update a few names and comments to better reflect the
effect of the code, delay removal of `..`s to avoid an unnecessary extra
string copy, and leave behind a couple of FIXMEs for future
consideration.

Differential Revision: https://reviews.llvm.org/D95279
The file was modifiedclang/lib/Frontend/ModuleDependencyCollector.cpp (diff)
The file was modifiedllvm/include/llvm/Support/FileCollector.h (diff)
The file was modifiedclang/include/clang/Frontend/Utils.h (diff)
The file was modifiedllvm/lib/Support/FileCollector.cpp (diff)
The file was modifiedllvm/unittests/Support/FileCollectorTest.cpp (diff)
Commit c0e94e99747393bcb9124822a3e353c2dd9c5b63 by leonardchan
[clang][Fuchsia] Add relative-vtables + asan multilibs

We're choosing to take an opt-in approach for landing Relative VTables, so we'll
need asan-equivalent multilibs with relative vtables enabled. Afterwards, we can
just flip the switch in our build.

Differential Revision: https://reviews.llvm.org/D95253
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp (diff)
The file was modifiedclang/test/Driver/fuchsia.cpp (diff)
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+asan+noexcept/libc++.so
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+asan/libc++.so
Commit 3333244d77c44e8bb5af57027646596f7714ff62 by tianshilei1992
[OpenMP][deviceRTLs] Remove omp_is_initial_device

`omp_is_initial_device` in device code was implemented as a builtin
function in D38968 for a better performance. Therefore there is no chance that
this function will be called to `deviceRTLs`. As we're moving to build `deviceRTLs`
with OpenMP compiler, this function can lead to a compilation error. This patch
just simply removes it.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D95397
The file was modifiedopenmp/libomptarget/deviceRTLs/interface.h (diff)
The file was modifiedopenmp/libomptarget/deviceRTLs/common/src/libcall.cu (diff)
Commit ce7f9cdb50a98cef5ee6e232e45e16c150c966e9 by modimo
[InlineAdvisor] Allow replay of inline decisions for the CGSCC inliner from optimization remarks

This change leverages the work done in D83743 to replay in the SampleProfile inliner to also be used in the CGSCC inliner. NOTE: currently restricted to non-ML advisors only.

The added switch `-cgscc-inline-replay=<remarks file>` will replay the inlining decisions in that file where the remarks file is generated via `-Rpass=inline`. The aim here is to make it easier to analyze changes that would modify inlining heuristics to be separated from this behavior. Doing so allows easier examination of assembly and runtime behavior compared to the baseline rather than trying to dig through the large churn caused by inlining.

In LTO compilation, since inlining is done twice you can separately specify replay by passing the flag to the FE (`-cgscc-inline-replay=`) and to the linker (`-Wl,cgscc-inline-replay=`) with the remarks generated from their respective places.

Testing on mysqld by comparing the inline decisions between base (generates remarks.txt) and diff (replay using identical input/tools with remarks.txt) and examining the inlining sites with `diff` shows 14,000 mismatches out of 247,341 for a ~94% replay accuracy. I believe this gap can be narrowed further though for the general case we may never achieve full accuracy. For my personal use, this is close enough to be representative: I set the baseline as the one generated by the replay on identical input/toolset and compare that to my modified input/toolset using the same replay.

Testing:
ninja check-llvm
newly added test correctly replays CGSCC inlining decisions

Reviewed By: mtrofin, wenlei

Differential Revision: https://reviews.llvm.org/D94334
The file was modifiedllvm/include/llvm/Transforms/IPO/Inliner.h (diff)
The file was modifiedllvm/lib/Analysis/ReplayInlineAdvisor.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/InlineAdvisor.h (diff)
The file was addedllvm/test/Transforms/Inline/Inputs/cgscc-inline-replay.txt
The file was addedllvm/test/Transforms/Inline/cgscc-inline-replay.ll
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp (diff)
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/ReplayInlineAdvisor.h (diff)
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp (diff)
Commit 532e4203c5be909af701df4dedfd36c9b8f85034 by pctammela
[lldb/Lua] add support for Lua function breakpoint

Adds support for running a Lua function when a breakpoint is hit.

Example:
   breakpoint command add -s lua -F abc

The above runs the Lua function 'abc' passing 2 arguments. 'frame', 'bp_loc' and 'extra_args'.

A third parameter 'extra_args' is only present when there is structured data
declared in the command line.

Example:
   breakpoint command add -s lua -F abc -k foo -v bar

Differential Revision: https://reviews.llvm.org/D93649
The file was modifiedlldb/bindings/lua/lua-swigsafecast.swig (diff)
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.h (diff)
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp (diff)
The file was modifiedlldb/bindings/lua/lua-wrapper.swig (diff)
The file was modifiedlldb/bindings/lua/lua-typemaps.swig (diff)
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/breakpoint_function_callback.test
The file was modifiedlldb/unittests/ScriptInterpreter/Lua/LuaTests.cpp (diff)
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp (diff)
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h (diff)
Commit eace81c48f716d48a6bece46c15998c77628bc58 by Stanislav.Mekhanoshin
[AMDGPU] Added -mcpu=tahiti to 3 tests. NFC.
The file was modifiedllvm/test/CodeGen/AMDGPU/si-sgpr-spill.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/si-scheduler.ll (diff)
Commit 91b61abafb5a26dfcb395869ac65a50d18f32a7f by mtrofin
[NFC] Disallow unused prefixes in clang/test/Analysis

Differential Revision: https://reviews.llvm.org/D95249
The file was modifiedclang/test/Analysis/cfg-rich-constructors.mm (diff)
The file was modifiedclang/test/Analysis/cfg.c (diff)
The file was modifiedclang/test/Analysis/auto-obj-dtors-cfg-output.cpp (diff)
The file was modifiedclang/test/Analysis/lit.local.cfg (diff)
The file was modifiedclang/test/Analysis/cfg-rich-constructors.cpp (diff)
The file was modifiedclang/test/Analysis/exploded-graph-rewriter/trimmers.dot (diff)
Commit 3dd5ea9dd8d92dfe171f2a73443e16f79620ed71 by jezng
[lld-macho] Link against ObjCARCOpts instead of ObjCARC

Not sure what the difference is, but using the latter appears to cause
issues in standalone builds. See llvm.org/PR48853.

Reviewed By: #lld-macho, compnerd

Differential Revision: https://reviews.llvm.org/D95359
The file was modifiedlld/MachO/CMakeLists.txt (diff)
Commit 5b648df1a842fba1fa47fdfa0936694573df02d2 by changpeng.fang
AMDGPU: Reduce the number of expensive calls in SIFormMemoryClause

Summary:
  RPTracker::reset(MI) is a very expensive call when the number of virtual registers is huge.
We observed a long compilation time issue when RPT::reset() is called once for each cluster.

In this work, we call RPT.reset() only at the first seen cluster, and use advance() to get
the register pressure for the later clusters in the same basic block. This could effectively reduce the number
of the expensive calls and thus reduce the compile time.

Reviewers:
  rampitec

Fixes:
  SWDEV-239161

Differential Revision:
  https://reviews.llvm.org/D95273
The file was modifiedllvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp (diff)
Commit 15f66cf749695ba3bce44a38d29d59a4383b11cf by craig.topper
[RISCV] Add isel patterns to optimize slli.uw patterns without Zba extension.

This pattern can occur when an unsigned is used to index an array
on RV64.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D95290
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rv64Zba.ll (diff)
Commit c9466ede7e8797b7a6f1a09d1129230485649a4f by Amara Emerson
Revert "Revert "[GlobalISel] LegalizerHelper - Extract widenScalarAddoSubo method""

This reverts commit 554b3211fefd09b56b64357b9edd66c78ae200b5.

Differential Revision: https://reviews.llvm.org/D95035
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/legalize-uaddo.mir (diff)
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubo.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddo.mir (diff)
Commit 70e251497c4e26f8cfd85e745459afff97c909ce by dblaikie
DebugInfo: Generalize the .debug_addr minimization flag to pave the way for including other strategies
The file was modifiedllvm/test/DebugInfo/X86/ranges_always.ll (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h (diff)
Commit f9b6fd269b6fd2b085c3537b6730a02503430ef0 by arthur.j.odwyer
[libc++] Support immovable return types in std::function.

LWG reflector consensus is that this was a bug in libc++.
(In particular, MSVC also will fix it in their STL, soon.)
Bug originally discovered by Logan Smith.

Also fix `std::function<const void()>`, which should work
the same way as `std::function<void()>` in terms of allowing
"conversions" from non-void types.

Differential Revision: https://reviews.llvm.org/D94452
The file was modifiedlibcxx/include/functional (diff)
The file was modifiedlibcxx/include/type_traits (diff)
The file was modifiedlibcxx/include/__functional_base (diff)
The file was addedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type.pass.cpp
Commit ea87cf2acd82e435e485c6e1884b54ba7427a54d by craig.topper
[TargetLowering][RISCV] Don't transform (seteq/ne (sext_inreg X, VT), C1) -> (seteq/ne (zext_inreg X, VT), C1) if the sext_inreg is cheaper

RISCV has to use 2 shifts for (i64 (zext_inreg X, i32)), but we
can use addiw rd, rs1, x0 for sext_inreg. We already understood this
when type legalizing i32 seteq/ne on rv64. But this transform in
SimplifySetCC would sometimes undo it.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D95289
The file was modifiedllvm/test/CodeGen/RISCV/double-stack-spill-restore.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/sext-zext-trunc.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/setcc-logic.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
Commit 8b6aedc4c99a8419bc27949c7b9eb18af4cd486b by Duncan P. N. Exon Smith
ExpressionParser: Migrate to FileEntryRef in ParseInternal, NFC

Migrate to the `FileEntryRef` overload of `SourceManager::createFileID`
(using `FileManager::getOptionalFileRef`) in
`ClangExpressionParser::ParseInternal`.

No functionality change here.

Differential Revision: https://reviews.llvm.org/D92957
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (diff)
Commit d37b5393e89128c51b02dafbd1da3fa525bf9881 by ezhulenev
[mlir:Async] Use LLVM coro operations in async.coro lowering

Instead of using llvm.call operations to call LLVM coro intrinsics use Coro operations from the LLVM dialect.

(This was reviewed as a part of https://reviews.llvm.org/D94923 but was lost in arc land from local branch)

Differential Revision: https://reviews.llvm.org/D95405
The file was modifiedmlir/include/mlir/Dialect/Async/IR/AsyncOps.td (diff)
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir (diff)
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp (diff)
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-coro-to-llvm.mlir (diff)
The file was modifiedmlir/test/Conversion/AsyncToLLVM/convert-runtime-to-llvm.mlir (diff)
Commit cda4d3d37f1490e2586ba9147f94e87bc860fa78 by Lang Hames
[JITLink] Re-apply 6884fbc2c4f (ELF eh support) with fix for broken test case.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h (diff)
The file was addedllvm/test/ExecutionEngine/JITLink/X86/ELF_ehframe_basic.s
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp (diff)
Commit 46b1645e6c4fe5020ae08e4d94b3de0c80117b4b by Duncan P. N. Exon Smith
SourceManager: Unify FileEntry/FileEntryRef versions of createFileID

Change `SourceManager::createFileID(const FileEntry*)` to defer to
`SourceManager::createFileID(FileEntryRef)`. This fixes an unexercised
bug where the latter gained support for named pipes and the former
didn't, but since we're trying to remove all calls to the former it
doesn't really make sense to test this explicitly now that the
implementation is hollowed out.

This is a belated follow-up to 245218bb355599771ba43a0fe1449d1670f2666c,
which sunk named pipe support into FileManager and SourceManager. The
original version of that patch was based on top of
https://reviews.llvm.org/D92984, which removed the `FileEntry` overload
of `createFileID()`, and I missed the subtle difference when it was
rebased.
The file was modifiedclang/lib/Basic/SourceManager.cpp (diff)
Commit 8d67b9e2461d654c0a3657e511e2295006f23748 by Duncan P. N. Exon Smith
SourceManager: Migrate to FileEntryRef in getOrCreateContentCache, NFC

Change `SourceManager::getOrCreateContentCache` to take a `FileEntryRef`
and update call sites (mostly internal to SourceManager.cpp). In a
couple of cases this temporarily relies on `FileEntry::getLastRef`, but
those can be cleaned up once other APIs switch over.

The one change outside of SourceManager.cpp is in ASTReader.cpp, which
stops relying on the auto-degrade-to-`FileEntry*` behaviour from
`InputFile::getFile` since it now needs a `FileEntryRef`.

No functionality change here.

Differential Revision: https://reviews.llvm.org/D92983
The file was modifiedclang/lib/Serialization/ASTReader.cpp (diff)
The file was modifiedclang/lib/Basic/SourceManager.cpp (diff)
The file was modifiedclang/include/clang/Basic/SourceManager.h (diff)
Commit 350395d82fddcc2984bb28b60bd97ca2fc5572e2 by wolfgang_pieb
[x86] Fix trivial typo in emmintrin.h
The file was modifiedclang/lib/Headers/emmintrin.h (diff)
Commit 6f1d4fb8fc52428ed2388e0e3df5bbb646964ef1 by julian.lettner
[lit] Update lit.py shebang for Python3

Update shebang to always use Python3 when executing `lit.py` directly.

A previous change of mine [1] revealed that we still use Python2 on some
bot configurations that invoke `llvm/utils/lit/lit.py` as a script
directly (instead of `python3 path/to/lit.py`).

[1] https://reviews.llvm.org/D94734

Differential Revision: https://reviews.llvm.org/D95393
The file was modifiedllvm/utils/lit/lit.py (diff)
Commit 03bce0bf4e3708baa6f2fd7007d79b739f067ddc by Amara Emerson
[GlobalISel][Localizer] Don't localize phi operands which are used more than once in the phi.

The current algorithm just tries to localize defs as far as they can go, and in
the case of G_PHI operands, it clones the def into the predecessor block for
each incoming edge. When multiple edges have the same register value, this can
cause unnecessary code bloat, and inhibit later optimizations.

This change checks if a given phi operand is unique in the phi, if not the
def of that register is not localized to the predecessor.

Differential Revision: https://reviews.llvm.org/D95406
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Localizer.h (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/Localizer.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/localizer.mir (diff)
Commit f4d02fbe418db55375b78b8f57e47126e4642fb6 by Duncan P. N. Exon Smith
Frontend: Take VFS and MainFileBuffer by reference in PrecompiledPreamble::CanReuse, NFC

Clarify that `PrecompiledPreamble::CanReuse` requires non-null arguments
for `VFS` and `MainFileBuffer`, taking them by reference instead of by
pointer.

Differential Revision: https://reviews.llvm.org/D91297
The file was modifiedclang/include/clang/Frontend/PrecompiledPreamble.h (diff)
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
The file was modifiedclang/lib/Frontend/ASTUnit.cpp (diff)
The file was modifiedclang/lib/Frontend/PrecompiledPreamble.cpp (diff)
Commit 4b6d7fdd2079aa793b96a628688e95a55669f70b by brad
[libcxx] random_device, for OpenBSD specify optimal entropy properties

Reviewed By: ldionne

Differential Revision: https://reviews.llvm.org/D94571
The file was modifiedlibcxx/src/random.cpp (diff)
Commit 8b1171488575bd0b5ccb23bc1a3d22e2aaccb244 by richard
Revert "Fix SBDebugger::CreateTargetWithFileAndArch to accept LLDB_ARCH_DEFAULT."

Also revert "Follow on to: f05dc40c31d1883b46b8bb60547087db2f4c03e3"

After these changes, multiple lldb tests are failing. Calls to
CreateTargetWithFileAndArch(None, None) appear to fail after these
changes.

This reverts commit f05dc40c31d1883b46b8bb60547087db2f4c03e3 and
1fba21778f84f266f7d32153c88e59e1900fbe5b.
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py (diff)
The file was modifiedlldb/source/API/SBDebugger.cpp (diff)
Commit 13cedcaf4538dbe1e5c643ba1c5ee0eafa6cb795 by serguei.n.dmitriev
[llvm-link] Fix crash when materializing appending global

This patch fixes llvm-link crash when materializing global variable
with appending linkage and initializer that depends on another
global with appending linkage.

Reviewed By: tra

Differential Revision: https://reviews.llvm.org/D95329
The file was addedllvm/test/Linker/appending-global-crash.ll
The file was modifiedllvm/lib/Transforms/Utils/ValueMapper.cpp (diff)
Commit 231a82a150b3617b73235451970d79210a435d0e by wolfgang_pieb
[X86] Correct some cross references in avxintrin.h.
The file was modifiedclang/lib/Headers/avxintrin.h (diff)
Commit fafd45c01f3a49a40b09a31e9ea82efc87f3ab35 by jonathanchesterfield
[libomptarget][cuda] Gracefully handle missing cuda library

[libomptarget][cuda] Gracefully handle missing cuda library

If using dynamic cuda, and it failed to load, it is not safe to call
cuGetErrorString.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D95412
The file was modifiedopenmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.cpp (diff)
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp (diff)
The file was modifiedopenmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h (diff)
Commit 8018f731f028d99d6698666a218ad6cf8408b0bb by nemanja.i.ibm
[PowerPC] Do not emit HW loop with half precision operations

If a loop has any operations on half precision values, there will be calls to
library functions on Power8. Even on Power9, there is a small subset of
instructions that are actually supported for the type.

This patch disables HW loops whenever any operations on the type are found
(other than the handfull of supported ones when compiling for Power9). Fixes a
few PR's opened by Julia:

https://bugs.llvm.org/show_bug.cgi?id=48785
https://bugs.llvm.org/show_bug.cgi?id=48786
https://bugs.llvm.org/show_bug.cgi?id=48519

Differential revision: https://reviews.llvm.org/D94980
The file was modifiedllvm/test/CodeGen/PowerPC/pr48519.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp (diff)
Commit 236b0d0407863d39b41b41c252346e0583ff4b0c by Lang Hames
[JITLink] Disable ELF_ehframe_basic.s test on Windows.

This test is failing on some windows bots with an error claiming that it is not
producing output. This appears to be a spurious failure, so I'm disabling on
windows while we investigate rather than reverting.
The file was modifiedllvm/test/ExecutionEngine/JITLink/X86/ELF_ehframe_basic.s (diff)
Commit 2ba1f9c4e0e19157347fc2b315a1dcf16a8bf102 by code
[Test][AArch64] Move overflow add/sub tests to their own file. NFC

Differential Revision: https://reviews.llvm.org/D95323
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-usubo.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-ssubo.mir
The file was removedllvm/test/CodeGen/AArch64/legalize-uaddo.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-saddo.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-uaddo.mir
Commit fdbfda2178a774c99b5b174b14f6577a01be12bf by code
[Test][AArch64] Add s32 legalizer test for UADDE/USUBE

Differential Revision: https://reviews.llvm.org/D95324
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-uadde.mir
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-usube.mir
Commit 357eea6e8bf78a822b8d3a6fe3bc6f85fee66a3e by jonathanchesterfield
Revert "[libomptarget][cuda] Gracefully handle missing cuda library"

This reverts commit fafd45c01f3a49a40b09a31e9ea82efc87f3ab35.
The file was modifiedopenmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.cpp (diff)
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp (diff)
The file was modifiedopenmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h (diff)
Commit 9d64275ae08fbdeeca0ce9c2f3951a2de6f38a08 by tianshilei1992
[OpenMP] Added the support for hidden helper task in RTL

The basic design is to create an outer-most parallel team. It is not a regular team because it is only created when the first hidden helper task is encountered, and is only responsible for the execution of hidden helper tasks.  We first use `pthread_create` to create a new thread, let's call it the initial and also the main thread of the hidden helper team. This initial thread then initializes a new root, just like what RTL does in initialization. After that, it directly calls `__kmpc_fork_call`. It is like the initial thread encounters a parallel region. The wrapped function for this team is, for main thread, which is the initial thread that we create via `pthread_create` on Linux, waits on a condition variable. The condition variable can only be signaled when RTL is being destroyed. For other work threads, they just do nothing. The reason that main thread needs to wait there is, in current implementation, once the main thread finishes the wrapped function of this team, it starts to free the team which is not what we want.

Two environment variables, `LIBOMP_NUM_HIDDEN_HELPER_THREADS` and `LIBOMP_USE_HIDDEN_HELPER_TASK`, are also set to configure the number of threads and enable/disable this feature. By default, the number of hidden helper threads is 8.

Here are some open issues to be discussed:
1. The main thread goes to sleeping when the initialization is finished. As Andrey mentioned, we might need it to be awaken from time to time to do some stuffs. What kind of update/check should be put here?

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D77609
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h (diff)
The file was addedopenmp/runtime/test/tasking/hidden_helper_task/taskgroup.cpp
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp (diff)
The file was addedopenmp/runtime/test/tasking/hidden_helper_task/depend.cpp
The file was modifiedopenmp/runtime/src/z_Linux_util.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_wait_release.h (diff)
The file was modifiedopenmp/runtime/test/worksharing/for/kmp_sch_simd_guided.c (diff)
The file was modifiedopenmp/runtime/src/kmp_settings.cpp (diff)
The file was addedopenmp/runtime/test/tasking/hidden_helper_task/common.h
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp_taskdeps.cpp (diff)
The file was modifiedopenmp/runtime/src/kmp.h (diff)
The file was modifiedopenmp/runtime/src/kmp_global.cpp (diff)
The file was addedopenmp/runtime/test/tasking/hidden_helper_task/gtid.cpp
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp (diff)
Commit 5d3f3d3a0598871d7244ffae026a957451df10a0 by kazu
[TableGen] Use llvm::append_range (NFC)
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp (diff)
The file was modifiedllvm/utils/TableGen/GlobalISel/GIMatchTree.cpp (diff)
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp (diff)
The file was modifiedllvm/utils/TableGen/CodeGenSchedule.cpp (diff)
Commit 772134e3ec490393e408f0d42510d16346979828 by kazu
[StackSafety] Use ListSeparator (NFC)
The file was modifiedllvm/include/llvm/Analysis/StackLifetime.h (diff)
Commit c85b6bf33c473633c9873b600f8a31fa55464e1e by kazu
[AMDGPU] Forward-declare MachineIRBuilder (NFC)

AMDGPULegalizerInfo.h needs MachineIRBuilder but relies on a forward
declaration of MachineIRBuilder in LegalizerInfo.h.  This patch adds a
forward declaration right in AMDGPULegalizerInfo.h.

While we are at it, this patch removes the one in LegalizerInfo.h,
where it is unnecessary.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h (diff)