SuccessChanges

Summary

  1. [LSR] Canonicalize a formula before insert it into the list (details)
  2. [clang] Remove a stray semicolon, fixing pedantic GCC warnings. NFC. (details)
  3. [PowerPC] Add parentheses to silence gcc warning (details)
  4. [AARCH64][RegisterCoalescer] clang miscompiles zero-extension to long long (details)
  5. [PowerPC] Fix getMemOperandWithOffsetWidth (details)
  6. [Test] More tests where IndVars fails to eliminate a range check (details)
  7. [flang] Convert release notes to markdown (details)
  8. [obj2yaml] Stop parsing the debug_str section when it encounters a string without the null terminator. (details)
  9. [mlir][Vector] Make VectorToSCF deterministic (details)
  10. getClangStripDependencyFileAdjuster(): Do not remove -M args when using MSVC cl driver (details)
  11. Provide anchor for compiler extensions (details)
  12. [mlir] Conv ops vectorization pass (details)
  13. [mlir][VectorOps] Redo the scalar loop emission in VectoToSCF to pad instead of clipping (details)
  14. Revert "[PowerPC] Implement instruction clustering for stores" (details)
  15. [ARM][LowOverheadLoops] Remove modifications to the correct element (details)
  16. [mlir] Fix of broken build on windows caused by using uint (details)
  17. [SyntaxTree] Ignore implicit non-leaf `CXXConstructExpr` (details)
  18. [SyntaxTree] Ignore implicit leaf `CXXConstructExpr` (details)
  19. [SyntaxTree] Ignore implicit `CXXFunctionalCastExpr` wrapping constructor (details)
  20. [SyntaxTree] Fix crash on functions with default arguments. (details)
  21. [mlir][VectorOps] Clean up outdated comments. NFCI. (details)
Commit 78071fb52456f5da9d044588e58a946c0ad96830 by weiwei64
[LSR] Canonicalize a formula before insert it into the list

In GenerateConstantOffsetsImpl, we may generate non canonical Formula
if BaseRegs of that Formula is updated and includes a recurrent expr reg
related with current loop while its ScaledReg is not.

Patched by: mdchen
Reviewed By: qcolombet

Differential Revision: https://reviews.llvm.org/D86939
The file was addedllvm/test/Transforms/LoopStrengthReduce/AArch64/pr47329.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 28b9ace85f6871cdb48f1483314d8342e099b136 by martin
[clang] Remove a stray semicolon, fixing pedantic GCC warnings. NFC.
The file was modifiedclang/include/clang/AST/IgnoreExpr.h
Commit ea795304ec073a63c3c5b4fd0c5579e667201dad by mikael.holmen
[PowerPC] Add parentheses to silence gcc warning

Without gcc 7.4 warns with

../lib/Target/PowerPC/PPCInstrInfo.cpp:2284:25: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
          BaseOp1.isFI() &&
          ~~~~~~~~~~~~~~~^~
              "Only base registers and frame indices are supported.");
              ~
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
Commit 8ee1419ab688ee2da2ac2cb0cf19db03f4c4742e by simon.wallis2
[AARCH64][RegisterCoalescer] clang miscompiles zero-extension to long long

Implement AArch64 variant of shouldCoalesce() to detect a known failing case
and prevent the coalescing of a 32-bit copy into a 64-bit sign-extending load.

Do not coalesce in the following case:
COPY where source is bottom 32 bits of a 64-register,
and destination is a 32-bit subregister of a 64-bit register,
ie it causes the rest of the register to be implicitly set to zero.

A mir test has been added.

In the test case, the 32-bit copy implements a 32 to 64 bit zero extension
and relies on the upper 32 bits being zeroed.

Coalescing to the result of the 64-bit load meant overwriting
the upper 32 bits incorrectly when the loaded byte was negative.

Reviewed By: john.brawn

Differential Revision: https://reviews.llvm.org/D85956
The file was addedllvm/test/CodeGen/AArch64/zext-reg-coalesce.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.h
Commit bb39eb9e7f42ba8d1f86f961d7f887f9d626b733 by qiucofan
[PowerPC] Fix getMemOperandWithOffsetWidth

Commit 3c0b3250 introduced memory cluster under pwr10 target, but a
check for operands was unexpectedly removed. This adds it back to avoid
regression.
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
Commit 046f2402025c2ac93c1efc02acd60c5222e052f7 by mkazantsev
[Test] More tests where IndVars fails to eliminate a range check
The file was modifiedllvm/test/Transforms/IndVarSimplify/monotonic_checks.ll
Commit 69230e75f120141979248becac30ceaca4ab2e87 by richard.barton
[flang] Convert release notes to markdown

Switch ReleaseNotes from .rst to .md to match the other docs.

At the same time, fix the version number for master.
The file was addedflang/docs/ReleaseNotes.md
The file was removedflang/docs/ReleaseNotes.rst
Commit 3cda69872362526b1672ae23de4ac968b7564c2b by Xing
[obj2yaml] Stop parsing the debug_str section when it encounters a string without the null terminator.

When obj2yaml encounters a string without the null terminator, it should
stop parsing the debug_str section. This patch addresses comments in
[D86867](https://reviews.llvm.org/D86867#inline-803291).

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87261
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was modifiedllvm/tools/obj2yaml/macho2yaml.cpp
The file was modifiedllvm/tools/obj2yaml/obj2yaml.h
The file was modifiedllvm/test/tools/obj2yaml/ELF/DWARF/debug-str.yaml
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF-debug_str.yaml
Commit 9be6178449555576645ac922e342936319445cac by ntv
[mlir][Vector] Make VectorToSCF deterministic

Differential Revision: https://reviews.llvm.org/D87273
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
Commit 2168dbf4cc766dfb552076d9b1e84b00122b7993 by hans
getClangStripDependencyFileAdjuster(): Do not remove -M args when using MSVC cl driver

MSVC's cl.exe has a few command line arguments which start with -M such
as "-MD", "-MDd", "-MT", "-MTd", "-MP".
These arguments are not dependency file generation related, and these
arguments were being removed by getClangStripDependencyFileAdjuster()
which was wrong.

Differential revision: https://reviews.llvm.org/D86999
The file was modifiedclang/unittests/Tooling/ToolingTest.cpp
The file was modifiedclang/lib/Tooling/ArgumentsAdjusters.cpp
Commit 38778e1087b2825e91b07ce4570c70815b49dcdc by sguelton
Provide anchor for compiler extensions

This patch is cherry-picked from 04b0a4e22e3b4549f9d241f8a9f37eebecb62a31, and
amended to prevent an undefined reference to `llvm::EnableABIBreakingChecks'
The file was modifiedllvm/lib/Extensions/Extensions.cpp
The file was modifiedllvm/lib/Extensions/LLVMBuild.txt
Commit 67b37f571cc27d5684125f694d719b114ad72a18 by limo
[mlir] Conv ops vectorization pass

In this commit a new way of convolution ops lowering is introduced.
The conv op vectorization pass lowers linalg convolution ops
into vector contractions. This lowering is possible when conv op
is first tiled by 1 along specific dimensions which transforms
it into dot product between input and kernel subview memory buffers.
This pass converts such conv op into vector contraction and does
all necessary vector transfers that make it work.

Differential Revision: https://reviews.llvm.org/D86619
The file was addedmlir/test/lib/Transforms/TestConvVectorization.cpp
The file was addedmlir/test/Conversion/LinalgToVector/linalg-to-vector.mlir
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
Commit 239eff502bca64f544f311e7d7a65fdec01cb9c4 by benny.kra
[mlir][VectorOps] Redo the scalar loop emission in VectoToSCF to pad instead of clipping

This replaces the select chain for edge-padding with an scf.if that
performs the memory operation when the index is in bounds and uses the
pad value when it's not. For transfer_write the same mechanism is used,
skipping the store when the index is out of bounds.

The integration test has a bunch of cases of how I believe this should
work.

Differential Revision: https://reviews.llvm.org/D87241
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-transfer-to-loops.mlir
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 8d9c13f37d2081c11186718ae8b5aef8b507d152 by qiucofan
Revert "[PowerPC] Implement instruction clustering for stores"

This reverts commit 3c0b3250230b3847a2a47dfeacfdb794c2285f02, (along
with ea795304 and bb39eb9e) since it breaks test with UB sanitizer.
The file was modifiedllvm/lib/Target/PowerPC/PPC.td
The file was modifiedllvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h
The file was removedllvm/test/CodeGen/PowerPC/fusion-load-store.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetMachine.cpp
Commit 7aabb6ad7764366fd3150d18b16da9aef35e6492 by samuel.tebbs
[ARM][LowOverheadLoops] Remove modifications to the correct element
count register

After my patch at D86087, code that now uses the mov operand rather than
the vctp operand will no longer remove modifications to the vctp operand
as they should. This patch fixes that by explicitly removing
modifications to the vctp operand rather than the register used as the
element count.
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-operand.ll
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
Commit 83d82d1fb1cfac06257ebbd7c063a3d2d1af20fb by limo
[mlir] Fix of broken build on windows caused by using uint
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
Commit 2325d6b42f096bf93d2ab0bed7096759e5c96ce8 by ecaldas
[SyntaxTree] Ignore implicit non-leaf `CXXConstructExpr`

Differential Revision: https://reviews.llvm.org/D86699
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
Commit 46f4439dc9bf9b8cfee0001b6752c3d074c83b00 by ecaldas
[SyntaxTree] Ignore implicit leaf `CXXConstructExpr`

Differential Revision: https://reviews.llvm.org/D86700
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 134455a07c1f1de4cff62a6afb4ccd98b98343ec by ecaldas
[SyntaxTree] Ignore implicit `CXXFunctionalCastExpr` wrapping constructor

Differential Revision: https://reviews.llvm.org/D87229
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
Commit f5087d5c7248104b6580c7b079ed5f227332c2ef by ecaldas
[SyntaxTree] Fix crash on functions with default arguments.

* Do not visit `CXXDefaultArgExpr`
* To build `CallArguments` nodes, just go through non-default arguments

Differential Revision: https://reviews.llvm.org/D87249
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp
Commit 307dc7b236924b5eeb5bf46b725a67dcb41bcd89 by benny.kra
[mlir][VectorOps] Clean up outdated comments. NFCI.

While there
- De-templatify code that can use function_ref
- Make BoundCaptures usable when they're const
- Address post-submit review comment (static function into global namespace)
The file was modifiedmlir/include/mlir/Dialect/StandardOps/EDSC/Builders.h
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp