1. [IRBuilder] Avoid passing IRBuilder by value; NFC (details)
  2. [IRBuilder] Delete copy constructor (details)
  3. GlobalISel: Fix missing const (details)
  4. [ARM,MVE] Add vector-scalar intrinsics (details)
Commit 98ed613cccd329d3892216b15d6e335f7c42a35b by nikita.ppv
[IRBuilder] Avoid passing IRBuilder by value; NFC

I've fixed most of these before, but missed some occurrences
in targets I don't usually build.
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp (diff)
Commit 80397d2d12b042586cb3bafdeb12ef8d982b8875 by nikita.ppv
[IRBuilder] Delete copy constructor

D73835 will make IRBuilder no longer trivially copyable. This patch
deletes the copy constructor in advance, to separate out the breakage.

Currently, the IRBuilder copy constructor is usually used by accident,
not by intention.  In rG7c362b25d7a9 I've fixed a number of cases where
functions accepted IRBuilder rather than IRBuilder &, thus performing
an unnecessary copy. In rG5f7b92b1b4d6 I've fixed cases where an
IRBuilder was copied, while an InsertPointGuard should have been used

The only non-trivial use of the copy constructor is the
getIRBForDbgInsertion() helper, for which I separated construction and
setting of the insertion point in this patch.

Differential Revision:
The file was modifiedllvm/include/llvm/IR/IRBuilder.h (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp (diff)
The file was modifiedllvm/lib/IR/DIBuilder.cpp (diff)
Commit f9b45f857ff1e8d832922778b5f12daab9d43638 by Matthew.Arsenault
GlobalISel: Fix missing const
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h (diff)
Commit 489f62e8011f54fc94d9c3a4cc2d1d66d3b5bc49 by mikhail.maltsev
[ARM,MVE] Add vector-scalar intrinsics

This patch adds vector-scalar variants to the following families of
MVE intrinsics:
* vaddq
* vsubq
* vmulq
* vqaddq
* vqsubq
* vhaddq
* vhsubq
* vqdmulhq
* vqrdmulhq

The vector-scalar variants perform a splat operation on the scalar
operand and then perform the same operations as their vector-vector
counterparts. Code generation is done accordingly (using LLVM IR 'insert'
and 'shuffle' operations which are later converted into an ARMvdup

Reviewers: simon_tatham, dmgreen, MarkMurrayARM, ostannard

Reviewed By: dmgreen

Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision:
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vqaddq.ll (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vqdmulhq.c (diff)
The file was modifiedclang/include/clang/Basic/ (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vmulq.c (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vqsubq.ll (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vsubq.c (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vhsubq.c (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vaddq.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vhsubq.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vmulq.ll (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vqaddq.c (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vsubq.ll (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vqrdmulhq.c (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vqdmulhq.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vhaddq.ll (diff)
The file was modifiedclang/include/clang/Basic/ (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vqsubq.c (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vhaddq.c (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-intrinsics/vqrdmulhq.ll (diff)
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vaddq.c (diff)