SuccessChanges

Summary

  1. [mlir][SCF] Add utility to clone an scf.ForOp while appending new yield values. (details)
  2. [clangd][NFC] Add traces for PreamblePatch::create (details)
  3. [ObjectYAML][DWARF] Make the `PubSection` optional. (details)
  4. [mlir][Linalg][Vector] Add forwarding patterns between linalg.copy and vector.transfer (details)
  5. [DAGComb] Do not turn insert_elt into shuffle for single elt vectors. (details)
  6. [clang] [Darwin] Add reverse mappings for aarch64/aarch64_32 to darwin arch names (details)
  7. [clang] [MinGW] Fix libunwind extension (details)
  8. Rename APIs in unittests/AST/Language.h in preparation to share them (details)
Commit aa93659c9ffcf36dc1b0c70ce5b0f526a2b9c007 by ntv
[mlir][SCF] Add utility to clone an scf.ForOp while appending new yield values.

This utility factors out the machinery required to add iterArgs and yield values to an scf.ForOp.

Differential Revision: https://reviews.llvm.org/D80656
The file was modifiedmlir/lib/Dialect/SCF/Transforms/CMakeLists.txt (diff)
The file was addedmlir/include/mlir/Dialect/SCF/Utils.h
The file was addedmlir/test/Transforms/loop-utils.mlir
The file was addedmlir/test/lib/Transforms/TestSCFUtils.cpp
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt (diff)
The file was addedmlir/lib/Dialect/SCF/Transforms/Utils.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
Commit 20b2af3e5559e50d1b5279311c6e5034a2d1928d by kadircet
[clangd][NFC] Add traces for PreamblePatch::create
The file was modifiedclang-tools-extra/clangd/Preamble.cpp (diff)
Commit ea7db621d289022f0733eb63bb10a837936cbb38 by Xing
[ObjectYAML][DWARF] Make the `PubSection` optional.

This patch helps make the `PubSection` optional in the DWARF structure.

Reviewed By: jhenderson, aprantl

Differential Revision: https://reviews.llvm.org/D80722
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h (diff)
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp (diff)
The file was modifiedllvm/lib/ObjectYAML/MachOEmitter.cpp (diff)
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF-pubsections.yaml (diff)
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp (diff)
Commit 1ee114322cb251f851028c72e7974bf85e707e55 by ntv
[mlir][Linalg][Vector] Add forwarding patterns between linalg.copy and vector.transfer

This revision adds custom rewrites for patterns that arise during linalg structured
ops vectorization. These patterns allow the composition of linalg promotion,
vectorization and removal of redundant copies.

The patterns are voluntarily limited and restrictive atm.
More robust behavior will be implemented once more powerful side effect modeling and analyses are available on view/subview.

On the transfer_read side, the following pattern is rewritten:
```
   %alloc = ...
   [optional] %view = std.view %alloc ...
   %subView = subview %allocOrView ...
   [optional] linalg.fill(%allocOrView, %cst) ...
   ...
   linalg.copy(%in, %subView) ...
   vector.transfer_read %allocOrView[...], %cst ...
```
into
```
   [unchanged] %alloc = ...
   [unchanged] [optional] %view = std.view %alloc ...
   [unchanged] [unchanged] %subView = subview %allocOrView ...
   ...
   vector.transfer_read %in[...], %cst ...
```

On the transfer_write side, the following pattern is rewriten:
```
   %alloc = ...
   [optional] %view = std.view %alloc ...
   %subView = subview %allocOrView...
   ...
   vector.transfer_write %..., %allocOrView[...]
   linalg.copy(%subView, %out)
```

Differential Revision: https://reviews.llvm.org/D80728
The file was addedmlir/test/Dialect/Linalg/forward-vector-transfers.mlir
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
Commit d20a3d35e1875d7a4928184117e6a875c35f3f63 by flo
[DAGComb] Do not turn insert_elt into shuffle for single elt vectors.

Currently combineInsertEltToShuffle turns insert_vector_elt into a
vector_shuffle, even if the inserted element is a vector with a single
element. In this case, it should be unlikely that the additional shuffle
would be more efficient than a insert_vector_elt.

Additionally, this fixes a infinite cycle in DAGCombine, where
combineInsertEltToShuffle turns a insert_vector_elt into a shuffle,
which gets turned back into a insert_vector_elt/extract_vector_elt by
a custom AArch64 lowering (in visitVECTOR_SHUFFLE).

Such insert_vector_elt and extract_vector_elt combinations can be
lowered efficiently using mov on AArch64.

There are 2 test changes in arm64-neon-copy.ll: we now use one or two
mov instructions instead of a single zip1. The reason that we need a
second mov in ins1f2 is that we have to move the result to the result
register and is not really related to the DAGCombine fold I think.
But in any case, on most uarchs, mov should be cheaper than zip1. On a
Cortex-A75 for example, zip1 is twice as expensive as mov
(https://developer.arm.com/docs/101398/latest/arm-cortex-a75-software-optimization-guide-v20)

Reviewers: spatel, efriedma, dmgreen, RKSimon

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D80710
The file was modifiedllvm/test/CodeGen/AArch64/arm64-neon-copy.ll (diff)
The file was addedllvm/test/CodeGen/AArch64/vector-insert-shuffle-cycle.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
Commit ac1f7ab007e347dc4a542aa3415e6378289480f4 by martin
[clang] [Darwin] Add reverse mappings for aarch64/aarch64_32 to darwin arch names

These are mapped in MachO::getMachOArchName already, but were missing
in ToolChain::getDefaultUniversalArchName.

Having these reverse mapped here fixes weird inconsistencies like
-dumpmachine showing a target triple like "aarch64-apple-darwin",
while "clang -target aarch64-apple-darwin" didn't use to work (ended
up mapped as unknown-apple-ios).

Differential Revision: https://reviews.llvm.org/D79117
The file was modifiedclang/lib/Driver/ToolChain.cpp (diff)
The file was addedclang/test/Driver/darwin-arm64-target.c
Commit ab4d02cf265982d4c03123d2f52b9d5ee8df575d by martin
[clang] [MinGW] Fix libunwind extension

Differential Revision: https://reviews.llvm.org/D79995
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was modifiedclang/test/Driver/compiler-rt-unwind.c (diff)
Commit d4ef654673a921878ba5aedb9725b2ac32681f01 by gribozavr
Rename APIs in unittests/AST/Language.h in preparation to share them

Summary:
Declaring these helpers in the ast_matcher namespace in the clangAST
unit test seems inappropriate -- neither these helpers, nor clangAST have
anything to do with AST matchers. Therefore, I moved these helpers to
the clang namespace.

Declaring another typedef called "ArgVector" is not a good idea -- we
already have both "ArgVector", "ArgsVector", and "ArgList". I expanded
it into the underlying type.

Declaring another enum called "Language" is not a good idea because we
arleady have the "clang::Language" enum. I renamed it to
"TestLanguage".

Similarly, I renamed "getBasicRunOptionsForLanguage" to
"getCommandLineArgsForTesting" to explain the semantics better (what are
"run options"?) and not repeat types in the function name
("ForLanguage").

Reviewers: shafik, rengolin, sammccall

Reviewed By: sammccall

Subscribers: gribozavr2, sammccall, martong, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80786
The file was modifiedclang/unittests/AST/Language.h (diff)
The file was modifiedclang/unittests/AST/ASTImporterFixtures.cpp (diff)
The file was modifiedclang/unittests/AST/Language.cpp (diff)
The file was modifiedclang/unittests/AST/ASTImporterFixtures.h (diff)
The file was modifiedclang/unittests/AST/ASTImporterODRStrategiesTest.cpp (diff)
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp (diff)
The file was modifiedclang/unittests/AST/StructuralEquivalenceTest.cpp (diff)
The file was modifiedclang/unittests/AST/MatchVerifier.h (diff)
The file was modifiedclang/unittests/AST/ASTImporterVisibilityTest.cpp (diff)