SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [RISCV] Share RVInstIShift and RVInstIShiftW instruction format classes with the B extension. (details)
  2. [flang][OpenMP] Remove `OmpEndLoopDirective` handles from code. (details)
  3. [Hexagon] Avoid infinite loops in type legalization when lowering SETCC (details)
  4. [mlir] Add support for adding attribute+type traits/interfaces to tablegen defs (details)
  5. [mlir] Add helpers to set lbs, ubs, steps for linalg.tiled_loop. (details)
  6. [AMDGPU] Move LDS lowering related utility functions to a separate utils file. (details)
  7. [mlir] Expose `updateBoundsForCyclicDistribution` in Linalg/Utils.h. (details)
  8. [mlir] Add verification for `linalg.tiled_loop` op. (details)
  9. [gn build] Port 82787eb2285d (details)
  10. [clang-format] Option for empty lines after an access modifier. (details)
  11. [AMDGPU] Add new EmitDstSel field to VOPPofile. NFC. (details)
  12. [VPlan] Replace a few unnecessary includes with forward decls. (details)
  13. [clang] [AArch64] Fix handling of HFAs passed to Windows variadic functions (details)
  14. [mlir][AsmPrinter] Fix multi-threaded segfault by using explicit null stream per thread (details)
  15. [libcxx][NFC] removes IndentRequires from .clang-format (details)
  16. [AMDGPU] Factor out predicate FmaakFmamkF32Insts (details)
  17. [TableGen] Reduce the number of map lookups in TypeSetByHwMode::getOrCreate. NFCI (details)
  18. [scudo][standalone] Fuchsia related fixes (details)
  19. [AST] Add a print method to Introspection LocationCall (details)
  20. [AST][Introspection] Add a check to detect if introspection is supported. (details)
  21. [LLDB] Use path relative to binary for finding .dwo files. (details)
  22. [mlir][scf] NFC - Add a getIterOpOperands helper to scf::ForOp (details)
  23. [clang][AArch64] Correctly align HFA arguments when passed on the stack (details)
  24. [InferAttrs] Do not mark first argument of str(n)cat as writeonly. (details)
  25. [mlir][vector][avx] add AVX dot product to X86Vector dialect with lowering (details)
  26. [AST] Fix location call storage with common last-invocation (details)
  27. [OpenMP5][DOCS] Update status of masked construct and correct the color (details)
  28. NFC: Add missing matcher for test method (details)
  29. [lldb] Raise a CrashLogParseException when failing to parse JSON crashlog (details)
  30. [sanitizer] Simplify GetTls with dl_iterate_phdr on Linux and use it on musl/FreeBSD (details)
  31. [OpenMP] Add info for device table changes (details)
  32. NFC: Add a simple test for introspection call formatting (details)
  33. s/setGenerator/addGenerator/ in the JIT docs. NFC (details)
  34. [mlir][NFC] Add a using directive for llvm::SetVector (details)
  35. [mlir] Add support for walking locations similarly to Operations (details)
  36. [dfsan] Add test for origin tracking stack traces (details)
  37. Add support for numpy arrays to memref conversions. (details)
  38. [NFC][NewPM] Remove some AnalysisManager invalidate methods (details)
  39. [libcxx] adds `std::indirectly_readable_traits` to <iterator> (details)
  40. Implemented [[clang::musttail]] attribute for guaranteed tail calls. (details)
  41. Revert "[LLDB] Use path relative to binary for finding .dwo files." (details)
  42. [dfsan] Remove hard-coded constant in release_shadow_space.c (details)
  43. [LangRef] clarify the semantics of nocapture (details)
  44. [LangRef] fix unexepcted unindent errror (details)
  45. Add triple to fix test failure. (details)
  46. [lld-macho] LTO: Unset VisibleToRegularObj where possible (details)
  47. [lld-macho] Re-root absolute input file paths if -syslibroot is specified (details)
  48. [lld-macho] Add support for arm64_32 (details)
  49. [lld-macho] Add 32-bit compact unwind support (details)
  50. [lld-macho] Make load relaxation work for arm64_32 (details)
  51. [lld-macho] Don't use arrays as template parameters (details)
  52. [gn build] Port 3bc88eb3924f (details)
  53. [Polly] Fix PM invalidate usage after D100519 (details)
  54. [LangRef] formatting (details)
  55. [LICM][NFC] Fix typo (details)
  56. [MLGO] Fix use of AM.invalidate post D100519 (details)
  57. [AMDGPU] Refactor ds_read/ds_write related select code for better readability. (details)
  58. [libcxx] adds `cpp17-.*iterator` concepts for iterator_traits (details)
  59. Don't refer to allocation map entry after deallocating it (details)
  60. Fix tile-and-pad when padding doesn't span all dimension (details)
  61. [RISCV] Don't emit save-restore call if function is a interrupt handler (details)
  62. [AMDGPU][OpenMP] Add amdgpu-arch tool to list AMD GPUs installed (details)
Commit 1656df13daa146afeb75ad832c94830a1f47d9cf by craig.topper
[RISCV] Share RVInstIShift and RVInstIShiftW instruction format classes with the B extension.

This generalizes RVInstIShift/RVInstIShiftW to take the upper
5 or 7 bits of the immediate as an input instead of only bit 30. Then
we can share them.

For RVInstIShift I left a hardcoded 0 at bit 26 where RV128 gets
a 7th bit for the shift amount.

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D100424
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrFormats.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
Commit 5064a34165ccadf4718b2c159eff41f008261681 by SourabhSingh.Tomar
[flang][OpenMP] Remove `OmpEndLoopDirective` handles from code.

This directive is currently lowered as NOP.

Patch is an attempt upstream code from:
PR: https://github.com/flang-compiler/f18-llvm-project/pull/573

Reviewed By: kiranchandramohan, schweitz, clementval

Differential Revision: https://reviews.llvm.org/D100576
The file was modifiedflang/lib/Lower/OpenMP.cpp
The file was modifiedflang/include/flang/Lower/OpenMP.h
Commit 280678122d3175943e41310d56a17924ea38ffc1 by kparzysz
[Hexagon] Avoid infinite loops in type legalization when lowering SETCC

Only widen SETCC if the operands can be widened. Not checking that caused
infinite widen-split loops in legalization.
The file was addedllvm/test/CodeGen/Hexagon/isel-setcc-legalize-loop.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
Commit 94662ee0c175165e60bc09fc73396a3e344829d4 by riddleriver
[mlir] Add support for adding attribute+type traits/interfaces to tablegen defs

This matches the current support provided to operations, and allows attaching traits, interfaces, and using the DeclareInterfaceMethods utility. This was missed when attribute/type generation was first added.

Differential Revision: https://reviews.llvm.org/D100233
The file was modifiedmlir/test/lib/Dialect/Test/TestTypeDefs.td
The file was modifiedmlir/test/mlir-tblgen/attrdefs.td
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was addedmlir/include/mlir/TableGen/Trait.h
The file was modifiedmlir/include/mlir/IR/BuiltinLocationAttributes.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was removedmlir/include/mlir/TableGen/OpTrait.h
The file was modifiedmlir/test/lib/Dialect/Test/TestInterfaces.td
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was modifiedmlir/lib/TableGen/Operator.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLTypes.td
The file was modifiedmlir/include/mlir/TableGen/AttrOrTypeDef.h
The file was modifiedmlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
The file was modifiedmlir/lib/TableGen/SideEffects.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.td
The file was modifiedmlir/include/mlir/TableGen/SideEffects.h
The file was modifiedmlir/lib/TableGen/CMakeLists.txt
The file was removedmlir/lib/TableGen/OpTrait.cpp
The file was modifiedmlir/include/mlir/TableGen/Operator.h
The file was modifiedmlir/lib/TableGen/AttrOrTypeDef.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was addedmlir/lib/TableGen/Trait.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.h
Commit 3c982a6e54cf5d473af87ee22a4b5f576240366d by pifon
[mlir] Add helpers to set lbs, ubs, steps for linalg.tiled_loop.

Differential Revision: https://reviews.llvm.org/D100579
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
Commit 82787eb2285dc03e7dbc635ddb2bc22f871d9b45 by mahesha.comp
[AMDGPU] Move LDS lowering related utility functions to a separate utils file.

Move some utility functions which are used within LDS lowering pass to a separate utils
file so that other LDS related passes can make use of them when required.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D100526
The file was modifiedllvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
The file was addedllvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp
The file was addedllvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.h
Commit 67f60bcc75a37c3c6a3f0037959b212e449a1a64 by pifon
[mlir] Expose `updateBoundsForCyclicDistribution` in Linalg/Utils.h.

Differential Revision: https://reviews.llvm.org/D100580
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h
The file was modifiedmlir/lib/Dialect/Linalg/Utils/Utils.cpp
Commit cf761904a276f9c1c42e7fc314c1deb50f2fe853 by pifon
[mlir] Add verification for `linalg.tiled_loop` op.

Differential Revision: https://reviews.llvm.org/D100555
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit 915a77809849c8328b66c90c282e69a8b0b21bee by llvmgnsyncbot
[gn build] Port 82787eb2285d
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/Utils/BUILD.gn
Commit dda978eef87c57e254929848956d46f6db75c125 by marek.kurdej+llvm.org
[clang-format] Option for empty lines after an access modifier.

The current logic for access modifiers in classes ignores the option 'MaxEmptyLinesToKeep=1'. It is therefore impossible to have a coding style that requests one empty line after an access modifier. The patch allows the user to configure how many empty lines clang-format should add after an access modifier. This will remove lines if there are to many and will add them if there are missing.

Reviewed By: MyDeveloperDay, curdeius

Differential Revision: https://reviews.llvm.org/D98237
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
Commit d4385e483db81e29191d1e94d0bf9b3f7ca34ab3 by Stanislav.Mekhanoshin
[AMDGPU] Add new EmitDstSel field to VOPPofile. NFC.

Differential Revision: https://reviews.llvm.org/D100589
The file was modifiedllvm/lib/Target/AMDGPU/VOPInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOPCInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
Commit 49999d4364c1192c669c86c2b9c67156255d4485 by flo
[VPlan] Replace a few unnecessary includes with forward decls.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.h
Commit 8e0f2e89ff951c74875ed751e2215cc263b33328 by martin
[clang] [AArch64] Fix handling of HFAs passed to Windows variadic functions

The documentation says that for variadic functions, all composites
are treated similarly, no special handling of HFAs/HVAs, not even
for the fixed arguments of a variadic function.

Differential Revision: https://reviews.llvm.org/D100467
The file was modifiedclang/test/CodeGen/ms_abi_aarch64.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit b1260109fb4886256ee5858a026c1d3349a09eba by riddleriver
[mlir][AsmPrinter] Fix multi-threaded segfault by using explicit null stream per thread

We were using llvm::nulls, but that isn't thread safe so we switch to giving each thread it's own null stream.

Differential Revision: https://reviews.llvm.org/D100578
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
Commit 6f3bce911ecfbfb2aa80bad5687ef6e87b7ba01a by cjdb
[libcxx][NFC] removes IndentRequires from .clang-format

IndentRequires is apparently breaking CI because it uses an older clang-format.

Partially rolls back 2e3a78b8ca10.
The file was modifiedlibcxx/.clang-format
Commit 13015ebd6f568f98e9b908564195f03f8f0d02a9 by Stanislav.Mekhanoshin
[AMDGPU] Factor out predicate FmaakFmamkF32Insts

Differential Revision: https://reviews.llvm.org/D100409
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP2Instructions.td
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h
Commit 07edd789939238d309d2ab747fad79337d705909 by craig.topper
[TableGen] Reduce the number of map lookups in TypeSetByHwMode::getOrCreate. NFCI

hasMode was looking up the map once. Then we'd either call get which
would look up again, or we'd insert into the map which requires
walking the map to find the insertion point.

I believe the hasMode was needed because get has a special case
to look for DefaultMode if the mode being asked for doesn't exist.
We don't want that here so we were using hasMode to make sure we
wouldn't hit that case.

Simplify to a regular operator[] access which will default
construct a SetType if the lookup fails.
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.h
Commit 3f97c66b00400f5e7f0cd260107f53c11b1cc33b by kostyak
[scudo][standalone] Fuchsia related fixes

While attempting to roll the latest Scudo in Fuchsia, some issues
arose. While trying to debug them, it appeared that `DCHECK`s were
also never exercised in Fuchsia. This CL fixes the following
problems:
- the size of a block in the TransferBatch class must be a multiple
  of the compact pointer scale. In some cases, it wasn't true, which
  lead to obscure crashes. Now, we round up `sizeof(TransferBatch)`.
  This only materialized in Fuchsia due to the specific parameters
  of the `DefaultConfig`;
- 2 `DCHECK` statements in Fuchsia were incorrect;
- `map()` & co. require a size multiple of a page (as enforced in
  Fuchsia `DCHECK`s), which wasn't the case for `PackedCounters`.
- In the Secondary, a parameter was marked as `UNUSED` while it is
  actually used.

Differential Revision: https://reviews.llvm.org/D100524
The file was modifiedcompiler-rt/lib/scudo/standalone/fuchsia.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/secondary.h
The file was modifiedcompiler-rt/lib/scudo/standalone/release.h
Commit 542e7806e61089da833338a2ff467006073cbe8d by n.james93
[AST] Add a print method to Introspection LocationCall

Add a print method that takes a raw_ostream.
Change LocationCallFormatterCpp::format to call that method.

Reviewed By: steveire

Differential Revision: https://reviews.llvm.org/D100423
The file was modifiedclang/include/clang/Tooling/NodeIntrospection.h
The file was modifiedclang/lib/Tooling/NodeIntrospection.cpp
The file was modifiedclang/unittests/Introspection/IntrospectionTest.cpp
Commit f019e5f73ed732b374e376f5ddbba5d1f67dca0c by n.james93
[AST][Introspection] Add a check to detect if introspection is supported.

This could probably be made into a compile time constant, but that would involve generating a second inc file.

Reviewed By: steveire

Differential Revision: https://reviews.llvm.org/D100530
The file was modifiedclang/lib/Tooling/DumpTool/generate_cxx_src_locs.py
The file was modifiedclang/unittests/Introspection/IntrospectionTest.cpp
The file was modifiedclang/lib/Tooling/CMakeLists.txt
The file was modifiedclang/include/clang/Tooling/NodeIntrospection.h
Commit b241f3cb292d0ba1ad5a33b3bbd4a8a3a9c909dc by cmtice
[LLDB] Use path relative to binary for finding .dwo files.

DWARF allows .dwo file paths to be relative rather than absolute. When
they are relative, DWARF uses DW_AT_comp_dir to find the .dwo
file. DW_AT_comp_dir can also be relative, making the entire search
patch for the .dwo file relative. In this case, LLDB currently
searches relative to its current working directory, i.e. the directory
from which the debugger was launched. This is not right, as the
compiler, which generated the relative paths, can have no idea where
the debugger will be launched. The correct thing is to search relative
to the location of the executable binary. That is what this patch
does.

Differential Revision: https://reviews.llvm.org/D97786
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was addedlldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
Commit 4b414b84a971c60c0119b9301b7fcee6c0098f01 by nicolas.vasilache
[mlir][scf] NFC - Add a getIterOpOperands helper to scf::ForOp
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
Commit f9d932e6735afe73117e142a12443449f2197e69 by momchil.velikov
[clang][AArch64] Correctly align HFA arguments when passed on the stack

When we pass a AArch64 Homogeneous Floating-Point
Aggregate (HFA) argument with increased alignment
requirements, for example

    struct S {
      __attribute__ ((__aligned__(16))) double v[4];
    };

Clang uses `[4 x double]` for the parameter, which is passed
on the stack at alignment 8, whereas it should be at
alignment 16, following Rule C.4 in
AAPCS (https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#642parameter-passing-rules)

Currently we don't have a way to express in LLVM IR the
alignment requirements of the function arguments. The align
attribute is applicable to pointers only, and only for some
special ways of passing arguments (e..g byval). When
implementing AAPCS32/AAPCS64, clang resorts to dubious hacks
of coercing to types, which naturally have the needed
alignment. We don't have enough types to cover all the
cases, though.

This patch introduces a new use of the stackalign attribute
to control stack slot alignment, when and if an argument is
passed in memory.

The attribute align is left as an optimizer hint - it still
applies to pointer types only and pertains to the content of
the pointer, whereas the alignment of the pointer itself is
determined by the stackalign attribute.

For byval arguments, the stackalign attribute assumes the
role, previously perfomed by align, falling back to align if
stackalign` is absent.

On the clang side, when passing arguments using the "direct"
style (cf. `ABIArgInfo::Kind`), now we can optionally
specify an alignment, which is emitted as the new
`stackalign` attribute.

Patch by Momchil Velikov and Lucas Prates.

Differential Revision: https://reviews.llvm.org/D98794
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedclang/include/clang/CodeGen/CGFunctionInfo.h
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was addedclang/test/CodeGen/aarch64-args-hfa.c
The file was modifiedllvm/include/llvm/IR/Function.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64CallingConvention.cpp
The file was modifiedllvm/test/Bitcode/compatibility.ll
The file was modifiedllvm/include/llvm/IR/Attributes.h
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was addedllvm/test/CodeGen/AArch64/arm64-abi-hfa-args.ll
Commit 3e7ee5428d3442564b9581adc2fb14f4e0a54bcd by flo
[InferAttrs] Do not mark first argument of str(n)cat as writeonly.

str(n)cat appends a copy of the second argument to the end of the first
argument. To find the end of the first argument, str(n)cat has to read
from it until it finds the terminating 0. So it should not be marked as
writeonly. I think this means the argument should not be marked as
writeonly.

(This is causing a mis-compile with legacy DSE, before it got removed)

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D100601
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
Commit 916f3e16bd4d9a7c6aca94cc5d0cf5ee55e3a3cb by ajcbik
[mlir][vector][avx] add AVX dot product to X86Vector dialect with lowering

In the long run, we want to unify the dot product codegen solutions between
all target architectures, but this intrinsic enables experimenting with AVX
specific implementations in the meantime.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D100593
The file was modifiedmlir/test/Dialect/X86Vector/roundtrip.mlir
The file was modifiedmlir/test/Dialect/X86Vector/legalize-for-llvm.mlir
The file was addedmlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-dot.mlir
The file was modifiedmlir/include/mlir/Dialect/X86Vector/X86Vector.td
The file was modifiedmlir/lib/Dialect/X86Vector/Transforms/LegalizeForLLVMExport.cpp
Commit 4f6d69846747dd53a54a5de0da7eca38df52d5ca by steveire
[AST] Fix location call storage with common last-invocation

Differential Revision: https://reviews.llvm.org/D100548
The file was modifiedclang/lib/Tooling/NodeIntrospection.cpp
The file was modifiedclang/unittests/Introspection/IntrospectionTest.cpp
Commit 924cdff0ae18f60f476ccc44d6e5cd0d0e026256 by cchen
[OpenMP5][DOCS] Update status of masked construct and correct the color
for omp_target_is_present, NFC.
The file was modifiedclang/docs/OpenMPSupport.rst
Commit be65347326084ad1c309d4330e94d671f011b35b by steveire
NFC: Add missing matcher for test method

The intention is to match the definition.
The file was modifiedclang/unittests/Introspection/IntrospectionTest.cpp
Commit 8639e2aaaffe1c58fbab238b25d49620ca86a76d by Jonas Devlieghere
[lldb] Raise a CrashLogParseException when failing to parse JSON crashlog

Throw an exception with an actually helpful message when we fail to
parse a JSON crashlog.
The file was modifiedlldb/examples/python/crashlog.py
Commit afec953857ffd682cb4119e7950f3593efbaaa81 by i
[sanitizer] Simplify GetTls with dl_iterate_phdr on Linux and use it on musl/FreeBSD

... so that FreeBSD specific GetTls/glibc specific pthread_self code can be
removed. This also helps FreeBSD arm64/powerpc64 which don't have GetTls
implementation yet.

GetTls is the range of

* thread control block and optional TLS_PRE_TCB_SIZE
* static TLS blocks plus static TLS surplus

On glibc, lsan requires the range to include
`pthread::{specific_1stblock,specific}` so that allocations only referenced by
`pthread_setspecific` can be scanned.

This patch uses `dl_iterate_phdr` to collect TLS blocks. Find the one
with `dlpi_tls_modid==1` as one of the initially loaded module, then find
consecutive ranges. The boundaries give us addr and size.

This allows us to drop the glibc internal `_dl_get_tls_static_info` and
`InitTlsSize`. However, huge glibc x86-64 binaries with numerous shared objects
may observe time complexity penalty, so exclude them for now. Use the simplified
method with non-Android Linux for now, but in theory this can be used with *BSD
and potentially other ELF OSes.

This removal of RISC-V `__builtin_thread_pointer` makes the code compilable with
more compiler versions (added in Clang in 2020-03, added in GCC in 2020-07).

This simplification enables D99566 for TLS Variant I architectures.

Note: as of musl 1.2.2 and FreeBSD 12.2, dlpi_tls_data returned by
dl_iterate_phdr is not desired: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254774
This can be worked around by using `__tls_get_addr({modid,0})` instead
of `dlpi_tls_data`. The workaround can be shared with the workaround for glibc<2.25.

This fixes some tests on Alpine Linux x86-64 (musl)

```
test/lsan/Linux/cleanup_in_tsd_destructor.c
test/lsan/Linux/fork.cpp
test/lsan/Linux/fork_threaded.cpp
test/lsan/Linux/use_tls_static.cpp
test/lsan/many_tls_keys_thread.cpp

test/msan/tls_reuse.cpp
```

and `test/lsan/TestCases/many_tls_keys_pthread.cpp` on glibc aarch64.

The number of sanitizer test failures does not change on FreeBSD/amd64 12.2.

Differential Revision: https://reviews.llvm.org/D98926
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
The file was modifiedcompiler-rt/test/lsan/TestCases/many_tls_keys_pthread.cpp
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp
The file was modifiedcompiler-rt/lib/asan/asan_rtl.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/static_tls.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.h
Commit 83d4b2e2e08264d39190455c381092e604cf1342 by huberjn
[OpenMP] Add info for device table changes

Summary:
This patch adds a feature to print information whenever the host-device pointer
mapping table is changed by inserting or removing an entry. This introduces a
new bit field for LIBOMPTARGET_INFO at position 0x8.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D100600
The file was modifiedopenmp/libomptarget/include/Debug.h
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was modifiedopenmp/docs/design/Runtimes.rst
The file was modifiedopenmp/libomptarget/test/offloading/info.c
Commit f62ad15cd7df0ca7681e0dbb894ee1c1d2465c51 by steveire
NFC: Add a simple test for introspection call formatting
The file was modifiedclang/unittests/Introspection/IntrospectionTest.cpp
Commit 0bae93771d5589f69b79c3e3f6d71d69b8dd6667 by jonathan_roelofs
s/setGenerator/addGenerator/ in the JIT docs. NFC
The file was modifiedllvm/docs/tutorial/BuildingAJIT2.rst
The file was modifiedllvm/docs/ORCv2.rst
The file was modifiedllvm/docs/tutorial/BuildingAJIT1.rst
Commit 4efb7754e021a1eeccaecdb7211690628bf93363 by riddleriver
[mlir][NFC] Add a using directive for llvm::SetVector

Differential Revision: https://reviews.llvm.org/D100436
The file was modifiedmlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
The file was modifiedmlir/lib/Target/SPIRV/Serialization/Serializer.cpp
The file was modifiedmlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
The file was modifiedmlir/include/mlir/Transforms/RegionUtils.h
The file was modifiedmlir/lib/Transforms/Utils/DialectConversion.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgElementwiseFusion.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
The file was modifiedmlir/test/lib/IR/TestSlicing.cpp
The file was modifiedmlir/include/mlir/Support/LLVM.h
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/lib/Transforms/Utils/RegionUtils.cpp
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Utils.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp
The file was modifiedmlir/include/mlir/Analysis/CallGraph.h
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorUtils.cpp
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/lib/Target/SPIRV/Serialization/Serializer.h
The file was modifiedmlir/include/mlir/Analysis/SliceAnalysis.h
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/Deserializer.h
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
The file was modifiedmlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
The file was modifiedmlir/lib/Transforms/LoopFusion.cpp
The file was modifiedmlir/lib/Analysis/Liveness.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
Commit 706c9c5ce0382644d4e693741f5d885be7c20e46 by riddleriver
[mlir] Add support for walking locations similarly to Operations

This allows for walking all nested locations of a given location, and is generally useful when processing locations.

Differential Revision: https://reviews.llvm.org/D100437
The file was modifiedllvm/include/llvm/ADT/TypeSwitch.h
The file was modifiedmlir/include/mlir/IR/Location.h
The file was modifiedllvm/unittests/ADT/TypeSwitchTest.cpp
The file was modifiedmlir/lib/IR/Location.cpp
The file was modifiedmlir/lib/IR/Diagnostics.cpp
Commit b2b59f622ee5ca1d5c979a88464ea3fb59e292a3 by gbalats
[dfsan] Add test for origin tracking stack traces

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D100518
The file was addedcompiler-rt/test/dfsan/origin_stack_trace.c
Commit 102fd1cb8b40dd6096850fbb9105ffb98aa31824 by joker.eph
Add support for numpy arrays to memref conversions.

This offers the ability to pass numpy arrays to the corresponding
memref argument.

Reviewed By: mehdi_amini, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D100077
The file was addedmlir/lib/Bindings/Python/mlir/runtime/np_to_memref.py
The file was addedmlir/lib/Bindings/Python/mlir/runtime/__init__.py
The file was modifiedmlir/test/Bindings/Python/execution_engine.py
Commit 9c776c2fa2bdd1aa48243f9e222a76e52e055153 by aeubanks
[NFC][NewPM] Remove some AnalysisManager invalidate methods

These were misleading, they're more of a "clear" than an "invalidate".

We shouldn't be individually clearing analysis results. Either we clear
all analyses when some IR becomes invalid, or we properly go through
invalidation.

There was only one use of this, which can be simulated with
AM.invalidate(F, PA).

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D100519
The file was modifiedllvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
The file was modifiedllvm/include/llvm/IR/PassManager.h
Commit f280505aa08432f5d4c4296122c6ff728b753398 by cjdb
[libcxx] adds `std::indirectly_readable_traits` to <iterator>

Implements parts of:
    * P0896R4 The One Ranges Proposal
    * LWG3446 `indirectly_readable_traits` ambiguity for types with both `value_type` and `element_type`

Depends on D99141.

Differential Revision: https://reviews.llvm.org/D99461
The file was modifiedlibcxx/docs/Cxx2aStatusIssuesStatus.csv
The file was addedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirectly_readable_traits.compile.pass.cpp
The file was modifiedlibcxx/include/iterator
Commit 8344675908424ee532d4ae30e5043c5a5834e02c by richard
Implemented [[clang::musttail]] attribute for guaranteed tail calls.

This is a Clang-only change and depends on the existing "musttail"
support already implemented in LLVM.

The [[clang::musttail]] attribute goes on a return statement, not
a function definition. There are several constraints that the user
must follow when using [[clang::musttail]], and these constraints
are verified by Sema.

Tail calls are supported on regular function calls, calls through a
function pointer, member function calls, and even pointer to member.

Future work would be to throw a warning if a users tries to pass
a pointer or reference to a local variable through a musttail call.

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D99517
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/JumpDiagnostics.cpp
The file was addedclang/test/Sema/attr-musttail.m
The file was modifiedclang/include/clang/AST/IgnoreExpr.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/CodeGen/CGClass.cpp
The file was addedclang/test/Sema/attr-musttail.c
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was addedclang/test/CodeGenCXX/attr-musttail.cpp
The file was addedclang/test/SemaCXX/attr-musttail.cpp
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedclang/lib/CodeGen/EHScopeStack.h
The file was modifiedclang/lib/CodeGen/CGExpr.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/lib/Sema/SemaStmtAttr.cpp
Commit 042668d092bb585e526023027faee8d28f968a76 by cmtice
Revert "[LLDB] Use path relative to binary for finding .dwo files."

This reverts commit b241f3cb292d0ba1ad5a33b3bbd4a8a3a9c909dc.

Test case is breaking windows builder.
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was removedlldb/test/Shell/SymbolFile/DWARF/dwo-relative-path.s
Commit 98b114d4804e6a0b45dfd2ed25a7fb3e6120d918 by gbalats
[dfsan] Remove hard-coded constant in release_shadow_space.c

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D100608
The file was modifiedcompiler-rt/test/dfsan/release_shadow_space.c
Commit 1bcadb0984e7676cb3539c42747d61d4633fd78e by aqjune
[LangRef] clarify the semantics of nocapture

This patch clarifies the semantics of nocapture attribute.

A 'Pointer Capture' subsection is added to describe the semantics of pointer capture first.

For the nocapture example with two same pointer arguments, it is consistent with the semantics that Alive2 used to run lit tests.

Reviewed By: nlopes

Differential Revision: https://reviews.llvm.org/D97924
The file was modifiedllvm/docs/LangRef.rst
Commit 25e96dffac8473e3249c6f95f5b9f9361b2a5a53 by aqjune
[LangRef] fix unexepcted unindent errror
The file was modifiedllvm/docs/LangRef.rst
Commit f7c9de0de5804498085af973dc6bfc934a18f000 by richard
Add triple to fix test failure.

This test uses `__regcall`, support for which is target-specific.
The file was modifiedclang/test/SemaCXX/attr-musttail.cpp
Commit eb5b7d4497e323cf6214eb3e008dc37bc5ed1fd7 by jezng
[lld-macho] LTO: Unset VisibleToRegularObj where possible

This allows LLVM's LTO to internalize symbols that are not referenced
directly by regular objects. Naturally, this means we need to track
which symbols are referenced by regular objects. The approach taken here
is similar to LLD-COFF's: like the COFF port, we extend
`SymbolTable::insert()` to set the isVisibleToRegularObj bit. (LLD-ELF
relies on the Symbol constructor and `Symbol::mergeProperties()`, but
the Mach-O port does not have a `mergeProperties()` equivalent.)

From what I can tell, ld64 (which uses libLTO) doesn't do this
optimization at all. I'm not even sure libLTO provides a way to do this.
Not having ld64's behavior as a reference implementation is unfortunate;
instead, I am relying on LLD-ELF/COFF's behavior as references while
erring on the conservative side. In particular, LLD-MachO will only do
this optimization for executables right now.

We also don't attempt it when `-flat_namespace` is used -- otherwise
we'd need scan the symbol table to find matches for every un-namespaced
symbol reference, which is expensive.

internalize.ll is based off the LLD-ELF tests `internalize-basic.ll` and
`internalize-undef.ll`. Looks like @davide added some of LLD-ELF's internalize
tests, so adding him as a reviewer...

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D99105
The file was modifiedlld/test/MachO/lto-save-temps.ll
The file was modifiedlld/MachO/LTO.cpp
The file was modifiedlld/MachO/SymbolTable.cpp
The file was addedlld/test/MachO/internalize.ll
The file was modifiedlld/MachO/Symbols.h
The file was modifiedlld/MachO/SymbolTable.h
Commit db7a413e51c5134375d564a1599b8657ca1c8161 by jezng
[lld-macho] Re-root absolute input file paths if -syslibroot is specified

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D100147
The file was modifiedlld/MachO/Driver.cpp
The file was addedlld/test/MachO/reroot-path.s
The file was modifiedlld/test/MachO/dependency-info.s
Commit 3bc88eb3924f6491457a787db3a8cf5ab45c92c1 by jezng
[lld-macho] Add support for arm64_32

From what I can tell, it's pretty similar to arm64. The two main differences
are:

1. No 64-bit relocations
2. Stub code writes to 32-bit registers instead of 64-bit

Plus of course the various on-disk structures like `segment_command` are using
the 32-bit instead of the 64-bit variants.

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D99822
The file was modifiedlld/MachO/Arch/ARM64.cpp
The file was addedlld/test/MachO/arm64-32-stubs.s
The file was modifiedlld/test/MachO/header.s
The file was modifiedlld/MachO/MachOStructs.h
The file was addedlld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libc++.tbd
The file was addedlld/MachO/Arch/ARM64Common.cpp
The file was addedlld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libc++abi.tbd
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/test/MachO/segments.s
The file was addedlld/MachO/Arch/ARM64_32.cpp
The file was modifiedlld/test/MachO/lit.local.cfg
The file was addedlld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libSystem.tbd
The file was addedlld/MachO/Arch/ARM64Common.h
The file was modifiedlld/MachO/CMakeLists.txt
Commit 1460942c15a71f5e9ad55344c0e17771ea0ecb57 by jezng
[lld-macho] Add 32-bit compact unwind support

This could probably have been part of D99633, but I split it up to make
things a bit more reviewable. I also fixed some bugs in the implementation that
were masked through integer underflows when operating in 64-bit mode.

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D99823
The file was modifiedlld/test/MachO/compact-unwind.s
The file was modifiedlld/MachO/UnwindInfoSection.h
The file was modifiedlld/MachO/Relocations.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/SyntheticSections.h
The file was modifiedlld/MachO/UnwindInfoSection.cpp
Commit 1acda12d00ec2ea769998af4f3df6e98781185d1 by jezng
[lld-macho] Make load relaxation work for arm64_32

arm64_32 uses 32-bit GOT loads, so we should accept those
instructions in `ARM64Common::relaxGotLoad()` too.

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D100229
The file was addedlld/test/MachO/arm64-32-reloc-got-load.s
The file was modifiedlld/MachO/Arch/ARM64Common.cpp
Commit 4938b090cf0b8c0f716119a7f16205e53608cae2 by jezng
[lld-macho] Don't use arrays as template parameters

MSVC from VSCode 2017 appears unhappy with it (causes an
internal compiler error.)

This also means that we need to avoid doing `sizeof(stubCode)` as
`sizeof(int[N])` on function array parameters decays into `sizeof(int *)`.

Reviewed By: #lld-macho, gkm

Differential Revision: https://reviews.llvm.org/D100605
The file was modifiedlld/MachO/Arch/ARM64Common.h
The file was modifiedlld/MachO/Arch/ARM64_32.cpp
The file was modifiedlld/MachO/Arch/ARM64.cpp
Commit 68744bb4792125ff7f0108e265a589a17465b299 by llvmgnsyncbot
[gn build] Port 3bc88eb3924f
The file was modifiedllvm/utils/gn/secondary/lld/MachO/BUILD.gn
Commit acf7e557836e7a6c83782cfef7a7cd804e977a8f by i
[Polly] Fix PM invalidate usage after D100519
The file was modifiedpolly/include/polly/ScopPass.h
Commit 085423282de993e2ad3bbc5f673edd61db6e19fe by aqjune
[LangRef] formatting
The file was modifiedllvm/docs/LangRef.rst
Commit f8cf3b9931a22890a656ca13d51fea123b9134e4 by marcythm
[LICM][NFC] Fix typo

fixed some typos which may lead to misunderstandings in LICM.cpp

Reviewed By: nikic, asbirlea
Differential Revision: https://reviews.llvm.org/D100470
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit 0d06b14f59d17de400b0513f178fcd4743fd288f by mtrofin
[MLGO] Fix use of AM.invalidate post D100519

The ML inline advisors more aggressively invalidate certain analyses
after each call site inlining, to more accurately capture the problem
state.
The file was modifiedllvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
The file was modifiedllvm/lib/Analysis/MLInlineAdvisor.cpp
Commit 099dcb68a6a1d00f2170878443f48311368d5c32 by mahesha.comp
[AMDGPU] Refactor ds_read/ds_write related select code for better readability.

Part of the code related to ds_read/ds_write ISel is refactored, and the
corresponding comment is re-written for better readability, which would help
while implementing any future ds_read/ds_write ISel related modifications.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D100300
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td
Commit 0148b653727592279e1e399129f9c623cd83bb38 by cjdb
[libcxx] adds `cpp17-.*iterator` concepts for iterator_traits

The `iterator_traits` patch became too large for a concise review, so
the "bloat" —as it were— was moved into this patch. Also tests most
C++[98,17] iterator types to confirm backwards compatibility is
successful (regex iterators are intentionally not present, but directory
iterators are due to a peculiar error encountered while patching
`iterator_traits`).

Depends on D99461.

Differential Revision: https://reviews.llvm.org/D99854
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/iterator_traits_cpp17_iterators.h
The file was addedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/iter_reference_t.compile.pass.cpp
The file was modifiedlibcxx/include/iterator
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp
The file was addedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/locale_dependent.compile.pass.cpp
Commit 9d4415d01d234efb5dd46bdcbb280c03e12a8101 by Jason Molenda
Don't refer to allocation map entry after deallocating it

debugserver's MachTask::DeallocateMemory when removing an
allocate entry from our map (in resposne to an '_m' packet),
copy the size from the entry before removing it from the
map and then using the iterator to fix an ASAN error on
the bots when running TestGdbRemoteMemoryAllocation.py

rdar://76595998
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachTask.mm
Commit 0e2f9b61fd9a30b152e9c80178b3bcc4b171b416 by ataei
Fix tile-and-pad when padding doesn't span all dimension

Without this tile-and-pad will never terminate if pad-fails.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D97720
The file was modifiedmlir/test/Dialect/Linalg/tile-and-pad-tensors.mlir
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
Commit 2893570e86dbb6b9b6b7f7779d9988ff6a686fe1 by jim
[RISCV] Don't emit save-restore call if function is a interrupt handler

It has to save all caller-saved registers before a call in the handler.
So don't emit a call that save/restore registers.

Reviewed By: simoncook, luismarques, asb

Differential Revision: https://reviews.llvm.org/D100532
The file was modifiedllvm/test/CodeGen/RISCV/saverestore.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h
Commit 7029cffc4e78556cfe820791c612968bb15b2ffb by Pushpinder.Singh
[AMDGPU][OpenMP] Add amdgpu-arch tool to list AMD GPUs installed

This patch adds new clang tool named amdgpu-arch which uses
HSA to detect installed AMDGPU and report back latter's march.
This tool is built only if system has HSA installed.

The value printed by amdgpu-arch is used to fill -march when
latter is not explicitly provided in -Xopenmp-target.

Reviewed By: JonChesterfield, gregrodgers

Differential Revision: https://reviews.llvm.org/D99949
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedclang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx908_gfx908
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedclang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
The file was addedclang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_gfx906
The file was addedclang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_fail
The file was addedclang/test/Driver/amdgpu-openmp-system-arch.c
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.h
The file was addedclang/test/Driver/amdgpu-openmp-system-arch-fail.c
The file was addedclang/test/Driver/Inputs/amdgpu-arch/amdgpu_arch_different
The file was modifiedclang/tools/CMakeLists.txt
The file was addedclang/tools/amdgpu-arch/CMakeLists.txt
The file was addedclang/tools/amdgpu-arch/AMDGPUArch.cpp