SuccessChanges

Summary

  1. New intrinsic @llvm.get.active.lane.mask() (details)
  2. [AST][RecoveryExpr] Make DeduceAutoType fail if the auto is deduced from recovery exprs. (details)
  3. [TTI] New target hook emitGetActiveLaneMask (details)
  4. [VE] Implements minimum MC layer for VE (4/4) (details)
  5. [AMDGPU] Use numbers::pi instead of M_PI. NFC. (details)
  6. [AMDGPU] Better use of llvm::numbers (details)
  7. [MLIR][BufferPlacement] Support functions that return Memref typed results (details)
  8. Avoid O_CLOEXEC to allow building on older Linux (RHEL5) (details)
  9. [lldb][NFC] Remove a std::string->C string->StringRef conversion in ClangUserExpression (details)
  10. [lldb] Make "inline" tests more configurable (details)
  11. Do not list adb devices when a device id is given (details)
Commit 7fb8a40e5220d6d4efa14c15f92b6f28ba1b18f7 by sjoerd.meijer
New intrinsic @llvm.get.active.lane.mask()

This is split off from D79100 and:
- adds a intrinsic description/definition for @llvm.get.active.lane.mask(), and
- describe its semantics in LangRef.

As described (in more detail) in its LangRef section, it is semantically
equivalent to an icmp with the vector induction variable and the back-edge
taken count, and generates a mask of active/inactive vector lanes.

It will have several use cases. First, it will be used by the
ExpandVectorPredication pass for the VP intrinsics, to expand VP intrinsics for
scalable vectors on targets that do not support the `%evl` parameter, see
D78203.

Also, this is part of, and essential for our ARM MVE tail-predication story:
- this intrinsic will be emitted by the LoopVectorizer in D79100, when
  the scalar epilogue is tail-folded into the vector body. This new intrinsic
  will generate the predicate for the masked loads/stores, and it takes the
  back-edge taken count as an argument. The back-edge taken count represents the
  number of elements processed by the loop, which we need to setup MVE
  tail-predication.
- Emitting the intrinsic is controlled by a new TTI hook, see D80597.
- We pick up this new intrinsic in an ARM MVETailPredication backend pass, see
  D79175, and convert it to a MVE target specific intrinsic/instruction to
  create a tail-predicated loop.

Differential Revision: https://reviews.llvm.org/D80596
The file was addedllvm/test/Verifier/get-active-lane-mask.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
Commit 82bb57c11d8ccb4e1b0f420f4388dd6553bbc57a by hokein.wu
[AST][RecoveryExpr] Make DeduceAutoType fail if the auto is deduced from recovery exprs.

Summary:
With recovery-ast, we will get an undeduced `auto` return type for
"auto foo()->undef()" function declaration, the function decl still keeps
valid, it is dangerous, and breaks assumptions in clang, and leads crashes.

This patch invalidates these functions, if we deduce autos from the
return rexpression, which is similar to auto VarDecl.

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80221
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/Sema/invalid-bitwidth-expr.mm
The file was modifiedclang/test/AST/ast-dump-recovery.cpp
The file was addedclang/test/AST/ast-dump-invalid-auto-return-funcs.cpp
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
Commit 7480ccbfc9d258a38eb99bbfccc6511e6ae10b70 by sjoerd.meijer
[TTI] New target hook emitGetActiveLaneMask

This is split off from D79100 and adds a new target hook emitGetActiveLaneMask
that can be queried to check if the intrinsic @llvm.get.active.lane.mask() is
supported by the backend and if it should be emitted for a given loop.

See also commit rG7fb8a40e5220 and its commit message for more details/context
on this new intrinsic.

Differential Revision: https://reviews.llvm.org/D80597
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
Commit 0e0907fa0e257ba63d6f820eafbf2079502153ed by simon.moll
[VE] Implements minimum MC layer for VE (4/4)

Summary:
This patch includes following items.

- Adds AsmParser and minimum AsmBackend/ELFObjectWriter/MCCodeEmitter to
   support only LEA instruction in order to reduce the size of this patch.
- Adds regression test of MC layer for a LEA instruction.
- Relocations are not supported this time to reduce the size of this patch.

Differential Revision: https://reviews.llvm.org/D79546
The file was modifiedllvm/lib/Target/VE/LLVMBuild.txt
The file was addedllvm/test/MC/VE/LEA.s
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
The file was addedllvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp
The file was addedllvm/test/MC/VE/lit.local.cfg
The file was addedllvm/lib/Target/VE/AsmParser/CMakeLists.txt
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
The file was addedllvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp
The file was modifiedllvm/lib/Target/VE/VE.td
The file was addedllvm/lib/Target/VE/AsmParser/LLVMBuild.txt
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.td
The file was addedllvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.h
The file was modifiedllvm/lib/Target/VE/CMakeLists.txt
The file was addedllvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp
Commit 036d4b0dbfd1bb5f960c620ff899669d85e62e08 by jay.foad
[AMDGPU] Use numbers::pi instead of M_PI. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit b28d038ff34dd54ce8eb9fe83506cc3742e6b85a by jay.foad
[AMDGPU] Better use of llvm::numbers

Tweak a few constant expressions involving numbers::pi etc to avoid
rounding errors. NFCI though it's possible some of these will now be
more accurate in the last bit.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Commit 7a3a2535854c84b1c8f6b0a2f2677e89b0e1a250 by ehsan.nadjaran_toosi
[MLIR][BufferPlacement] Support functions that return Memref typed results

Buffer placement can now operates on functions that return buffers. These
buffers escape from the deallocation phase of buffer placement.

Differential Revision: https://reviews.llvm.org/D80696
The file was modifiedmlir/lib/Transforms/BufferPlacement.cpp
The file was modifiedmlir/test/Transforms/buffer-placement-preparation.mlir
The file was modifiedmlir/test/Transforms/buffer-placement.mlir
The file was modifiedmlir/test/lib/Transforms/TestBufferPlacement.cpp
The file was modifiedmlir/include/mlir/Transforms/BufferPlacement.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/TensorsToBuffers.cpp
Commit 058f5f6fd813d1ee1480497394d6fd44e65ec62b by Vitaly Buka
Avoid O_CLOEXEC to allow building on older Linux (RHEL5)

Summary:
See https://github.com/google/sanitizers/issues/1253.

Small patch to enable compilation on (ancient) Red Hat Enterprise Linux 5.

Reviewers: kcc, vitalybuka

Reviewed By: vitalybuka

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D80648
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
Commit 5f0267984792429d7b9ac574c17566b98527576e by Raphael Isemann
[lldb][NFC] Remove a std::string->C string->StringRef conversion in ClangUserExpression
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
Commit 2c22c1473569352efa9326aa165cc451d39da015 by pavel
[lldb] Make "inline" tests more configurable

Summary:
This patch adds two new arguments to the MakeInlineTest function. The
main motivation is a follow-up patch I'm preparing, but they seem
generally useful.

The first argument allows the user to specify the "build dictionary".
With this argument one can avoid the need to provide a custom Makefile
if all he needs is to override a couple of make variables. This hooks in
neatly into the existing dictionary support for non-inline tests.

The second argument specifies the name of the test. This could be used
to provide better names to the generated test classes, but it's mainly
useful in conjuction with the first argument: now that we can specify a
custom build dictionary, it may sometimes make sense to run the same
test twice with different build configurations. To achieve that, we need
to give the two tests different names, and this argument achieves that.

The usage of the arguments is demonstrated via TestBasicEntryValues.py.

Reviewers: vsk, JDevlieghere

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D80518
The file was modifiedlldb/test/API/functionalities/param_entry_vals/basic_entry_values/TestBasicEntryValues.py
The file was removedlldb/test/API/functionalities/param_entry_vals/basic_entry_values/Makefile
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbinline.py
Commit 7ff2de4f0c60c5d13880440e85ef8edc78482a2f by pavel
Do not list adb devices when a device id is given

Summary:
On Android, this method gets called twice: first when establishing
a host-server connection, then when attaching to a process id.

Each call takes several seconds to finish (especially slower on Windows)
and eliminating the call for the typical case improves latency significantly.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D79586
The file was addedlldb/unittests/Platform/Android/AdbClientTest.cpp
The file was addedlldb/unittests/Platform/Android/CMakeLists.txt
The file was modifiedlldb/source/Plugins/Platform/Android/AdbClient.cpp
The file was modifiedlldb/unittests/Platform/CMakeLists.txt