SuccessChanges

Summary

  1. Improve 723fea23079f9c85800e5cdc90a75414af182bfd - Silence 'warning: unused variable' when compiling with Clang 10.0 (details)
  2. Fix f5314d15af4f4514103ea12c74cb208538b8bef5 - [Support] On Unix, let the CrashRecoveryContext return the signal code (details)
  3. [MLIR] Normalize memrefs in LoadOp and StoreOp of Standard Ops (details)
  4. [NFC][RISCV][builtins] Remove some hard-coded values from i-cache clear routine (details)
  5. lld: Try to fix check-lld on incremental builds after 8f2c31f22b974da (details)
  6. [InstCombine] regenerate test checks; NFC (details)
  7. [PhaseOrdering] move an 'opt' test from x86 codegen; NFC (details)
  8. [PhaseOrdering] move test with target requirement to x86 dir (details)
  9. [MLIR][SPIRV] Fixed dialect loading in deserialization (details)
  10. OpaquePtr: Add helpers for sret to mirror byval (details)
  11. IR: Have byref imply dereferenceable (details)
  12. [AMDGPU] Fix v3f16 handling for getresinfo (details)
  13. [AMDGPU] Use cast instead of dyn_cast (details)
  14. [RegisterCoalescer] Fix IMPLICIT_DEF init removal for a register on joining (details)
  15. [NFC][ARM] Remove dead loop. (details)
  16. [OpenMP] Introduce GOMP teams support in runtime (details)
  17. [OpenMP] Introduce GOMP mutexinoutset in the runtime (details)
  18. [OpenMP] Introduce GOMP taskwait depend in the runtime (details)
  19. [OpenMP] Fix if0 task with dependencies in the runtime (details)
  20. [X86][SSE] combineVectorTruncation - enable (pre-SSSE3) vXi16->vXi8 truncation. (details)
  21. [clang] use string tables for static diagnostic descriptions (details)
Commit 4b64ce7428b66cacfe74dbd9dbc29aff6dfb84af by alexandre.ganea
Improve 723fea23079f9c85800e5cdc90a75414af182bfd - Silence 'warning: unused variable' when compiling with Clang 10.0
The file was modifiedllvm/lib/CodeGen/PeepholeOptimizer.cpp
Commit a6a6ccfc4c8b348d6d534657e16bb7504b9f2888 by alexandre.ganea
Fix f5314d15af4f4514103ea12c74cb208538b8bef5 - [Support] On Unix, let the CrashRecoveryContext return the signal code

This was causing bots to fail: http://green.lab.llvm.org/green/job/clang-stage1-RA/14828/consoleFull#6384962949ba4694-19c4-4d7e-bec5-911270d8a58c
The file was modifiedllvm/unittests/Support/CrashRecoveryTest.cpp
Commit ff00b58392527419ea32d0b97575ef973c1bd085 by uday
[MLIR] Normalize memrefs in LoadOp and StoreOp of Standard Ops

Added a trait, `MemRefsNormalizable` in LoadOp and StoreOp of Standard Ops
to normalize input memrefs in LoadOp and StoreOp.

Related revision: https://reviews.llvm.org/D86236

Differential Revision: https://reviews.llvm.org/D88156
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/Transforms/normalize-memrefs-ops.mlir
Commit 303e8cdacb106c4e1ba07d47ab60d71c03a2552c by luismarques
[NFC][RISCV][builtins] Remove some hard-coded values from i-cache clear routine

Remove some hard-coded values from i-cache clear routine

Differential Revision: https://reviews.llvm.org/D87578
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
Commit 0389eff4047a74bb1ba6c0603c9002b5c73b203e by thakis
lld: Try to fix check-lld on incremental builds after 8f2c31f22b974da
The file was modifiedlld/test/MachO/link-search-order.s
Commit 8e712807e4848ea4687cb5d27dca99237f4ebaa7 by spatel
[InstCombine] regenerate test checks; NFC
The file was modifiedllvm/test/Transforms/InstCombine/AMDGPU/ldexp.ll
Commit 9cf647bb3f88434e3ecba8e108d56fa4e3ed56f9 by spatel
[PhaseOrdering] move an 'opt' test from x86 codegen; NFC

This file comes from 2007, and I'm not entirely sure of the
motivation, but it was going through all of opt and llc.
The llc part is almost certainly unnecessary as shown in
the now auto-generated FileCheck lines.

This test may be affected by a logic change suggested in:
D87835
The file was removedllvm/test/CodeGen/X86/nancvt.ll
The file was addedllvm/test/Transforms/PhaseOrdering/nancvt.ll
Commit 2625433e77ef5e161536f6fd01ea68840cfcb0dc by spatel
[PhaseOrdering] move test with target requirement to x86 dir

I'm not sure if the target is actually necessary,
but since it was specified, I'm moving to the
appropriate dir to avoid bot fallout.
The file was addedllvm/test/Transforms/PhaseOrdering/X86/nancvt.ll
The file was removedllvm/test/Transforms/PhaseOrdering/nancvt.ll
Commit 8f72717ebe27209a11be80629c667332cd5e4e60 by georgemitenk0v
[MLIR][SPIRV] Fixed dialect loading in deserialization

Fixed an error when deserializing the SPIR-V binary
to MLIR SPIR-V. Before, the SPIR-V dialect was not loaded
explicitly into the context, which resulted in unregistered
operation error.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D88223
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp
Commit d65a7003c435de22b8e30dca292160fea822d887 by Matthew.Arsenault
OpaquePtr: Add helpers for sret to mirror byval

Sret should really have a type parameter like byval does.
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedllvm/include/llvm/IR/Function.h
The file was modifiedllvm/test/CodeGen/X86/vectorcall.ll
The file was modifiedllvm/lib/Analysis/Lint.cpp
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/lib/IR/Function.cpp
Commit dc08185ca797a3bcd7721a0d55db876a6cc4de10 by Matthew.Arsenault
IR: Have byref imply dereferenceable

The langref already states it does, but this wasn't implemented. Also
covers inalloca and preallocated. Also helps fix a dependence on
pointer element types.
The file was modifiedllvm/test/Transforms/InstCombine/AMDGPU/memcpy-from-constant.ll
The file was modifiedllvm/test/Transforms/Attributor/readattrs.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
Commit 6f7cd16d297155332ff2b4c7efb01ca592eb7753 by sebastian.neubauer
[AMDGPU] Fix v3f16 handling for getresinfo

v3f32 should not be expanded to v4f32. getresinfo with a dmask of 7
created an image sample with a v3f32 return value, which was bitcasted
to a v4f32 in constructRetValue.

Differential Revision: https://reviews.llvm.org/D88206
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.getresinfo.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.ll
Commit c05cf1ca3c55362c5a8ef8a148c3b763cc8784e9 by jay.foad
[AMDGPU] Use cast instead of dyn_cast
The file was modifiedllvm/lib/Target/AMDGPU/R600ISelLowering.cpp
Commit d9beff04a30877c117e15c7fbc4d4e5c87e413ab by vpykhtin
[RegisterCoalescer] Fix IMPLICIT_DEF init removal for a register on joining

This patch removes redundant IMPLICIT_DEF for subregs which was leading to
incorrect register initialization on joining in some cases.

Reviewed by: qcolombet

Differential revision: https://reviews.llvm.org/D82258
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was addedllvm/test/CodeGen/AMDGPU/coalescing_makes_lanes_undef.mir
Commit 00ee52ae0467f0bfa588d9797053a42c615d2332 by sam.parker
[NFC][ARM] Remove dead loop.

Remove a loop that just calculated a couple of values that were now
longer needed.
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
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/i18n/en_US.txt
The file was addedopenmp/runtime/test/tasking/omp50_task_depend_mtx3.c
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
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 addedopenmp/runtime/test/tasking/omp50_taskwait_depend.c
The file was modifiedopenmp/runtime/src/kmp_ftn_os.h
The file was modifiedopenmp/runtime/src/kmp_gsupport.cpp
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_2.c
The file was addedopenmp/runtime/test/tasking/taskdep_if0.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-trunc-math.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-and-bool.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-bool.ll
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