SuccessChanges

Summary

  1. [lldb] Remove assumption from Clang-based data formatters that their types are in the scratch AST (details)
  2. [OpenCL] Implement extended subgroups fully in headers. (details)
  3. [Clang] Add vcmla and rotated variants for Arm ACLE. (details)
  4. [CallBase] Add hasRetAttr version that takes StringRef. (details)
  5. [RISCV][LegalizeDAG] Expand SETO and SETUO comparisons. Teach LegalizeDAG to expand SETUO expansion when UNE isn't legal. (details)
  6. [NFC] Use ConvertOpToLLVMPattern instead of ConvertToLLVMPattern. (details)
  7. [lldb] Deal gracefully with concurrency in the API instrumentation. (details)
Commit 839e845277894ad37fbca8063cbf1955331fbeff by Raphael Isemann
[lldb] Remove assumption from Clang-based data formatters that their types are in the scratch AST

Several data formatters assume their types are in the Target's scratch AST and
build new types from that scratch AST instance. However, types from different
ASTs shouldn't be mixed, so this (unchecked) assumption may lead to problems if
we ever have more than one scratch AST or someone somehow invokes data
formatters on a type that are not in the scratch AST.

Instead we can use in all the formatters just the TypeSystem of the type we're
formatting. That's much simpler and avoids all the headache of finding the right
TypeSystem that matches the one of the formatted type.

Right now LLDB only has one scratch TypeSystemClang instance and we format only
types that are in the scratch AST, so this doesn't change anything in the
current way LLDB works. The intention here is to allow follow up refactorings
that introduce multiple scratch ASTs with the same Target.

Differential Revision: https://reviews.llvm.org/D92757
The file was modifiedlldb/source/Plugins/Language/ObjC/CoreMedia.cpp
The file was modifiedlldb/source/DataFormatters/VectorType.cpp
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
Commit a84599f177a67d4a8c1c30ccd96c99fa40af75f7 by anastasia.stulova
[OpenCL] Implement extended subgroups fully in headers.

Extended subgroups are library style extensions and therefore
they require no changes in the frontend. This commit:
1. Moves extension macro definitions to the internal headers.
2. Removes extension pragmas because they are not needed.

Tags: #clang

Differential Revision: https://reviews.llvm.org/D92231
The file was modifiedclang/include/clang/Basic/OpenCLExtensions.def
The file was modifiedclang/test/SemaOpenCL/extension-version.cl
The file was modifiedclang/test/Headers/opencl-c-header.cl
The file was modifiedclang/lib/Headers/opencl-c-base.h
Commit 9c4cddb53a7b94d83d1a7417c9a1aea00a139545 by flo
[Clang] Add vcmla and rotated variants for Arm ACLE.

This patch adds vcmla and the rotated variants as defined in
"Arm Neon Intrinsics Reference for ACLE Q3 2020" [1]

The *_lane_* are still missing, but they can be added separately.

This patch only adds the builtin mapping for AArch64.

[1] https://developer.arm.com/documentation/ihi0073/latest

Reviewed By: t.p.northover

Differential Revision: https://reviews.llvm.org/D92930
The file was modifiedclang/include/clang/Basic/arm_neon.td
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedclang/test/CodeGen/aarch64-neon-vcmla.c
Commit bb9cef7628ecda692081e5690dbb890dcececd15 by flo
[CallBase] Add hasRetAttr version that takes StringRef.

This makes it slightly easier to deal with custom attributes and
CallBase already provides hasFnAttr versions that support both AttrKind
and StringRef arguments in a similar fashion.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D92567
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/unittests/IR/InstructionsTest.cpp
Commit a1ae3c6ac91305711658c75de48415e5b647f1df by craig.topper
[RISCV][LegalizeDAG] Expand SETO and SETUO comparisons. Teach LegalizeDAG to expand SETUO expansion when UNE isn't legal.

If SETUNE isn't legal, UO can use the NOT of the SETO expansion.

Removes some complex isel patterns. Most of the test changes are
from using XORI instead of SEQZ.

Differential Revision: https://reviews.llvm.org/D92008
The file was modifiedllvm/test/CodeGen/RISCV/float-br-fcmp.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/double-select-fcmp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoZfh.td
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoF.td
The file was modifiedllvm/test/CodeGen/RISCV/half-isnan.ll
The file was modifiedllvm/test/CodeGen/RISCV/half-select-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/double-br-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/half-br-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/float-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/double-isnan.ll
The file was modifiedllvm/test/CodeGen/RISCV/double-fcmp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoD.td
The file was modifiedllvm/test/CodeGen/RISCV/float-select-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/half-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/float-isnan.ll
Commit 563879b6f9465982b422a69a901e3d84e7cb7764 by jurahul
[NFC] Use ConvertOpToLLVMPattern instead of ConvertToLLVMPattern.

- use ConvertOpToLLVMPattern to avoid explicit casting and in most cases the
  constructor can be reused to save a few lines of code.

Differential Revision: https://reviews.llvm.org/D92989
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
The file was modifiedmlir/include/mlir/Conversion/LinalgToLLVM/LinalgToLLVM.h
The file was modifiedmlir/lib/Conversion/GPUCommon/GPUOpsLowering.h
The file was modifiedmlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/include/mlir/Conversion/OpenMPToLLVM/ConvertOpenMPToLLVM.h
The file was modifiedmlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h
Commit ac25e8628c443cddd841c6c91d1c9e23e88969e5 by Jonas Devlieghere
[lldb] Deal gracefully with concurrency in the API instrumentation.

Prevent lldb from crashing when multiple threads are concurrently
accessing the SB API with reproducer capture enabled.

The API instrumentation records both the input arguments and the return
value, but it cannot block for the duration of the API call. Therefore
we introduce a sequence number that allows to to correlate the function
with its result and add locking to ensure those two parts are emitted
atomically.

Using the sequence number, we can detect situations where the return
value does not succeed the function call, in which case we print an
error saying that concurrency is not (currently) supported. In the
future we might attempt to be smarter and read ahead until we've found
the return value matching the current call.

Differential revision: https://reviews.llvm.org/D92820
The file was modifiedlldb/source/Utility/ReproducerInstrumentation.cpp
The file was modifiedlldb/include/lldb/Utility/ReproducerInstrumentation.h
The file was modifiedlldb/unittests/Utility/ReproducerInstrumentationTest.cpp