SuccessChanges

Summary

  1. [OpenMP] Introduce GOMP teams support in runtime (details)
  2. [OpenMP] Introduce GOMP mutexinoutset in the runtime (details)
  3. [OpenMP] Introduce GOMP taskwait depend in the runtime (details)
  4. [OpenMP] Fix if0 task with dependencies in the runtime (details)
  5. [X86][SSE] combineVectorTruncation - enable (pre-SSSE3) vXi16->vXi8 truncation. (details)
  6. [clang] use string tables for static diagnostic descriptions (details)
  7. Sema: add support for `__attribute__((__swift_newtype__))` (details)
  8. [lldb/examples] Add missing declaration in heap.py (details)
  9. [OpenMP] cmake option LIBOMPTARGET_NVPTX_MAX_SM for nvptx device RTL (details)
  10. [IRSim][NFC] Removing dead variables from IRSimilarityIdentifier.cpp (details)
  11. [AArch64][GlobalISel] Implement __builtin_return_address for PAC-RET (details)
  12. [OPENMP]PR47606: Do not update the lastprivate item if it was captured by reference as firstprivate data member. (details)
  13. [AMDGPU] global-isel support for RT (details)
Commit ea34d95e0ad664fa879bb1d8b71f32928b1d6c0f by jonathan.l.peyton
[OpenMP] Introduce GOMP teams support in runtime

Implement GOMP_teams_reg() function which enables GOMP support of the
standalone teams construct. The GOMP_parallel* functions were modified
to call __kmp_fork_call() unconditionally so that the teams-specific
code could be reused within __kmp_fork_call() instead of reproduced
inside the GOMP_* functions.

Differential Revision: https://reviews.llvm.org/D87167
The file was modifiedopenmp/runtime/src/kmp_ftn_os.h
The file was addedopenmp/runtime/test/teams/teams.c
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
Commit 72ada5ae6c5bcc53045eba559666a65a68149e4c by jonathan.l.peyton
[OpenMP] Introduce GOMP mutexinoutset in the runtime

Encapsulate GOMP task dependencies in separate class and introduce the
new mutexinoutset dependency type. This separate class allows
future GOMP task APIs easier access to the task dependency functionality
and better ability to propagate new dependency types to all existing GOMP
task APIs which use task dependencies.

Differential Revision: https://reviews.llvm.org/D87267
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
The file was addedopenmp/runtime/test/tasking/omp50_task_depend_mtx3.c
The file was modifiedopenmp/runtime/src/i18n/en_US.txt
Commit 9089b4a5c5b4271e6b8300cf5d7471d4ddd93bec by jonathan.l.peyton
[OpenMP] Introduce GOMP taskwait depend in the runtime

This change introduces the GOMP_taskwait_depend() function. It implements
the OpenMP 5.0 feature of #pragma omp taskwait with depend() clause by
wrapping around __kmpc_omp_wait_deps().

Differential Revision: https://reviews.llvm.org/D87269
The file was modifiedopenmp/runtime/src/kmp_ftn_os.h
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
The file was addedopenmp/runtime/test/tasking/omp50_taskwait_depend.c
Commit ee1c04a926904b34525e4577742d8c10a23db814 by jonathan.l.peyton
[OpenMP] Fix if0 task with dependencies in the runtime

The current GOMP interface for serialized tasks does not take into
account task dependencies. Add the check and wait for dependencies.

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

Differential Revision: https://reviews.llvm.org/D87271
The file was addedopenmp/runtime/test/tasking/taskdep_if0.c
The file was addedopenmp/runtime/test/tasking/taskdep_if0_2.c
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
Commit 283036394ee606401ebb6601bb97b500e11a2830 by llvm-dev
[X86][SSE] combineVectorTruncation - enable (pre-SSSE3) vXi16->vXi8 truncation.

Shuffle combining can now handle this output, and by performing this early in combineVectorTruncation we avoid a scalarization that caused a regression on D87502.
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-and-bool.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-math.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-trunc.ll
Commit 31a3c5fb45b78bdaa78d94ffcc9258e839002016 by froydnj
[clang] use string tables for static diagnostic descriptions

Using a pointer for the description string in StaticDiagInfoRec causes
several problems:

1. We don't need to use a whole pointer to represent the string;
2. The use of pointers incurs runtime relocations for those pointers;
   the relocations take up space on disk and represent runtime overhead;
3. The need to relocate data implies that, on some platforms, the entire
   array containing StaticDiagInfoRecs cannot be shared between processes.

This patch changes the storage scheme for the diagnostic descriptions to
avoid these problems.  We instead generate (effectively) one large
string and then StaticDiagInfoRec conceptually holds offsets into the
string.  We elected to also move the storage of those offsets into a
separate array to further reduce the space required.

On x86-64 Linux, this change removes about 120KB of relocations and
moves about 60KB from the non-shareable .data.rel.ro section to
shareable .rodata.  (The array is about 80KB before this, but we
eliminated 4 bytes/entry by using offsets rather than pointers.)  We
actually reap this benefit twice, because these tables show up in both
libclang.so and libclang-cpp.so and we get the reduction in both places.

Differential Revision: https://reviews.llvm.org/D81865
The file was modifiedclang/lib/Basic/DiagnosticIDs.cpp
Commit 296d8832a3b5fe97725be62c5bbc721cc0e2cd20 by Saleem Abdulrasool
Sema: add support for `__attribute__((__swift_newtype__))`

Add the `swift_newtype` attribute which allows a type definition to be
imported into Swift as a new type.  The imported type must be either an
enumerated type (enum) or an object type (struct).

This is based on the work of the original changes in
https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c

Differential Revision: https://reviews.llvm.org/D87652
Reviewed By: Aaron Ballman
The file was addedclang/test/AST/attr-swift_newtype.m
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/include/clang/Parse/Parser.h
The file was addedclang/test/SemaObjC/attr-swift_newtype.m
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Parse/ParseDecl.cpp
Commit ada1e2ffa1172ede1790b4b42ef8ab01508d3a47 by davelee.com
[lldb/examples] Add missing declaration in heap.py

Add missing declaration for `malloc_get_all_zones` in heap.py.

Differential Revision: https://reviews.llvm.org/D88158
The file was modifiedlldb/examples/darwin/heap_find/heap.py
Commit ffd159d8e919435561a8c9eac0dcdd83aacdcf6a by tianshilei1992
[OpenMP] cmake option LIBOMPTARGET_NVPTX_MAX_SM for nvptx device RTL

It allows customizing MAX_SM for non-flagship GPU and reduces graphic memory usage.

In addition, so far the size is hard-coded up to __CUDA_ARCH__ 700 and is already a hassle for 800.
Introduce MAX_SM for 800 and protect future arch

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D88185
The file was modifiedopenmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
The file was modifiedopenmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
Commit 08d145e6d7a9b3085d433d05abac5c8a4392e09a by andrew.litteken
[IRSim][NFC] Removing dead variables from IRSimilarityIdentifier.cpp

As informed by danielkiss.

Follow up to Differential Revision: https://reviews.llvm.org/D86972
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
Commit bd44558001e978d93fbff5a4537f38b46b0e355a by momchil.velikov
[AArch64][GlobalISel] Implement __builtin_return_address for PAC-RET

This patch implements stripping of the PAC in the return address for GlobalISel.

Implementation for when not using GLobalISel is in
https://reviews.llvm.org/D75044 The analogous GCC patch is
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=a70d5d81c41048556fd86eaa1036018a6bfba115

Differential Revision: https://reviews.llvm.org/D84502
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddr.ll
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/builtin-return-address-pacret.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
Commit a9fca98ee4f653278d84713caecd152fef8494f5 by a.bataev
[OPENMP]PR47606: Do not update the lastprivate item if it was captured by reference as firstprivate data member.

No need to make final copy from the firsptrivate/lastprivate copy to the original item if the item is a data memeber.
Firstprivate copy creates a copy by reference and the original item gets
updated correctly when updating the lastprivate shared variable.

Differential Revision: https://reviews.llvm.org/D88179
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/for_lastprivate_codegen.cpp
Commit 27a62f6317f3faa845d1cb67ec3f0ed357ee07e8 by Stanislav.Mekhanoshin
[AMDGPU] global-isel support for RT

Differential Revision: https://reviews.llvm.org/D87847
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td