Changes

Summary

  1. [Clang][NVPTX] Add NVPTX intrinsics and builtins for CUDA PTX 6.5 and 7.0 WMMA and MMA instructions (details)
  2. Revert "Attempt to disable MLIR JIT tests on PowerPC to unbreak the bot" (details)
  3. [CodeGen] Add ParmVarDecls to FunctionDecls that are created to generate (details)
  4. Conditionalize function only used in an assert to address -Wunused-function (details)
  5. [Test] delete LPM RUNs in inline_nossp.ll (details)
  6. Create synthetic symbol names on demand to improve memory consumption and startup times. (details)
  7. Fix buildbot compile error for https://reviews.llvm.org/D105160. (details)
Commit 3644726a78e37823b1687a7aa8d186e91570ffe2 by tra
[Clang][NVPTX] Add NVPTX intrinsics and builtins for CUDA PTX 6.5 and 7.0 WMMA and MMA instructions

Adds NVPTX builtins and intrinsics for the CUDA PTX `wmma.load`, `wmma.store`, `wmma.mma`, and `mma` instructions added in PTX 6.5 and 7.0.

PTX ISA description of

  - `wmma.load`: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions-wmma-ld
  - `wmma.store`: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions-wmma-st
  - `wmma.mma`: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions-wmma-mma
  - `mma`: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions-mma

Overview of `wmma.mma` and `mma` matrix shape/type combinations added with specific PTX versions: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-shape

Authored-by: Steffen Larsen <steffen.larsen@codeplay.com>
Co-Authored-by: Stuart Adams <stuart.adams@codeplay.com>

Reviewed By: tra

Differential Revision: https://reviews.llvm.org/D104847
The file was modifiedllvm/test/CodeGen/NVPTX/lit.local.cfg
The file was modifiedclang/test/CodeGen/builtins-nvptx-mma.cu
The file was modifiedclang/test/CodeGen/builtins-nvptx-mma.py
The file was modifiedllvm/lib/Target/NVPTX/NVPTXInstrInfo.td
The file was modifiedllvm/lib/Target/NVPTX/NVPTXIntrinsics.td
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsNVVM.td
The file was modifiedllvm/test/CodeGen/NVPTX/wmma.py
The file was modifiedclang/include/clang/Basic/BuiltinsNVPTX.def
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 1df981f43ae9041ed326a3d806fcbb8278211ca4 by lei
Revert "Attempt to disable MLIR JIT tests on PowerPC to unbreak the bot"

This reverts commit 652f4b5140e231b679564a86019307291f7bf7cc.

Re-enable MLLIR JIT tests.
The MLIR Bot was updated to export LD_LIBRARY_PATH=/usr/lib64, which
seem to fix this issue.
The file was modifiedmlir/test/Unit/lit.cfg.py
The file was modifiedmlir/test/mlir-cpu-runner/lit.local.cfg
The file was modifiedmlir/test/Unit/lit.site.cfg.py.in
Commit 6cda73e3c44968eb6fff4b73cb6f1d0ef7d861f4 by Akira
[CodeGen] Add ParmVarDecls to FunctionDecls that are created to generate
ObjC property getter/setter functions

This is needed to prevent clang from crashing when we make the changes
proposed in https://reviews.llvm.org/D98799.

Differential Revision: https://reviews.llvm.org/D104883
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
Commit 632e15e766ee625ae367b2e872f3df903e507bfb by dblaikie
Conditionalize function only used in an assert to address -Wunused-function
The file was modifiedclang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Commit 98b9fc9b93d7116cec9b661f809441488c3894cb by ndesaulniers
[Test] delete LPM RUNs in inline_nossp.ll

This test was modified in D104958. Invoking opt with -{passname} (vs
-passes={passname}) without -enable-new-pm={0|1} is now ambiguous and
dependent on how LLVM was configured.  Drop the LPM runs rather than
fix since there unlikely to be any users still on LPM that rely on the
behavior in this test.

See also:
https://lists.llvm.org/pipermail/llvm-dev/2021-June/151553.html

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D105154
The file was modifiedllvm/test/Transforms/Inline/inline_nossp.ll
Commit c8164d0276b97679e80db01adc860271ab4a5d11 by gclayton
Create synthetic symbol names on demand to improve memory consumption and startup times.

This fix was created after profiling the target creation of a large C/C++/ObjC application that contained almost 4,000,000 redacted symbol names. The symbol table parsing code was creating names for each of these synthetic symbols and adding them to the name indexes. The code was also adding the object file basename to the end of the symbol name which doesn't allow symbols from different shared libraries to share the names in the constant string pool.

Prior to this fix this was creating 180MB of "___lldb_unnamed_symbol" symbol names and was taking a long time to generate each name, add them to the string pool and then add each of these names to the name index.

This patch fixes the issue by:
- not adding a name to synthetic symbols at creation time, and allows name to be dynamically generated when accessed
- doesn't add synthetic symbol names to the name indexes, but catches this special case as name lookup time. Users won't typically set breakpoints or lookup these synthetic names, but support was added to do the lookup in case it does happen
- removes the object file baseanme from the generated names to allow the names to be shared in the constant string pool

Prior to this fix the startup times for a large application was:
12.5 seconds (cold file caches)
8.5 seconds (warm file caches)

After this fix:
9.7 seconds (cold file caches)
5.7 seconds (warm file caches)

The names of the symbols are auto generated by appending the symbol's UserID to the end of the "___lldb_unnamed_symbol" string and is only done when the name is requested from a synthetic symbol if it has no name.

Differential Revision: https://reviews.llvm.org/D105160
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
The file was modifiedlldb/include/lldb/Symbol/Symtab.h
The file was modifiedlldb/source/Symbol/ObjectFile.cpp
The file was modifiedlldb/source/Symbol/Symtab.cpp
The file was modifiedlldb/source/Symbol/Symbol.cpp
The file was modifiedlldb/test/Shell/SymbolFile/Breakpad/symtab.test
The file was modifiedlldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
The file was modifiedlldb/test/Shell/ObjectFile/ELF/eh_frame-symbols.yaml
The file was modifiedlldb/include/lldb/Symbol/ObjectFile.h
The file was modifiedlldb/include/lldb/Symbol/Symbol.h
Commit 43f6dad2344247976d5777f56a1fc29e39c6c717 by gclayton
Fix buildbot compile error for https://reviews.llvm.org/D105160.
The file was modifiedlldb/source/Symbol/Symtab.cpp