SuccessChanges

Summary

  1. [LLD] [COFF] Error out if creating a DLL with too many exported symbols (details)
  2. [ARM] Register pressure with -mthumb forces register reload before each call (details)
  3. [ORC] Remove a stray semicolon, silencing warnings. NFC. (details)
  4. [NFC][InstCombine] visitPHINode(): cleanup PHI CSE instruction replacement (details)
  5. [SVE] Remove calls to VectorType::getNumElements from InstCombine (details)
  6. [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try) (details)
  7. [X86][CGP] Add gather test cases for D86371. (details)
  8. [docs] Fix indentation in FileCheck.rst (details)
  9. [mlir][OpFormatGen] Add support for specifiy "custom" directives. (details)
  10. [mlir][ODS] Add new SymbolNameAttr and add support for in assemblyFormat (details)
  11. [mlir][OpFormatGen] Add initial support for regions in the custom op assembly format (details)
  12. [mlir][PDL] Move the formats for PatternOp and RewriteOp to the declarative form. (details)
Commit a54919e0c11542f6716043003e403f1910f32528 by martin
[LLD] [COFF] Error out if creating a DLL with too many exported symbols

The PE/DLL format has a limit on 64k exported symbols per DLL; make
sure to check this.

Differential Revision: https://reviews.llvm.org/D86701
The file was modifiedlld/COFF/DriverUtils.cpp
The file was addedlld/test/COFF/export-limit.s
The file was addedlld/test/COFF/Inputs/def-many.py
Commit 85b4d286d7b19f78135277fe068b1d90f595f8bf by david.green
[ARM] Register pressure with -mthumb forces register reload before each call

This patch implements the foldMemoryOperand hook in Thumb1InstrInfo,
allowing tBLXr and a spilled function address to be combined back into a
tBL. This can help with codesize at Oz, especailly in the tinycrypt
library.

Differential Revision: https://reviews.llvm.org/D79785
The file was addedllvm/test/CodeGen/ARM/minsize-call-cse-2.ll
The file was modifiedllvm/lib/Target/ARM/Thumb1InstrInfo.h
The file was modifiedllvm/lib/Target/ARM/Thumb1InstrInfo.cpp
The file was addedllvm/test/CodeGen/ARM/minsize-call-cse-3.ll
Commit b16ac94419b73b2979b3d81855d283bf58cfd6f7 by martin
[ORC] Remove a stray semicolon, silencing warnings. NFC.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
Commit c23aefd7c38c9413a23fee3664655a10f4a2f41a by lebedev.ri
[NFC][InstCombine] visitPHINode(): cleanup PHI CSE instruction replacement

As @nikic is pointing out in https://reviews.llvm.org/rGbf21ce7b908e#inline-4647
this must be sufficient otherwise `EliminateDuplicatePHINodes()`
would have hit issues with it already.
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction.ll
The file was modifiedllvm/test/Transforms/InstCombine/phi-cse.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
Commit 640f20b0c7bb93688f07ff38645171b41aa6494d by ctetreau
[SVE] Remove calls to VectorType::getNumElements from InstCombine

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D82237
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modifiedllvm/include/llvm/Transforms/InstCombine/InstCombiner.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
Commit e25449ff57ca4d318d9d8602863806a7a29f23bc by spatel
[IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try)

The 1st try was reverted because I missed an assert that
needed softening.

As discussed in D86798 / rG09652721 , we were potentially
returning a different result for whether an Instruction
is commutable depending on if we call the base class or
derived class method.

This requires relaxing asserts in GVN, but that pass
seems to be working otherwise.

NewGVN requires more work because it uses different
code paths for numbering binops and calls.
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
The file was modifiedllvm/lib/IR/Instruction.cpp
The file was modifiedllvm/lib/Transforms/Scalar/NewGVN.cpp
The file was modifiedllvm/test/Transforms/GVN/commute.ll
The file was modifiedllvm/include/llvm/IR/Instruction.h
Commit ab83348a638ee42f05f0f2adf9888463414f4570 by craig.topper
[X86][CGP] Add gather test cases for D86371.
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/gather-scatter-opt.ll
The file was modifiedllvm/test/CodeGen/X86/masked_gather_scatter.ll
Commit 61e15ecab50943d8e62add494ff35d1cd165758d by aeubanks
[docs] Fix indentation in FileCheck.rst

Fixes
C:\src\llvm-project\llvm\docs\CommandGuide\FileCheck.rst:745:Bullet list ends without a blank line; unexpected unindent.
The file was modifiedllvm/docs/CommandGuide/FileCheck.rst
Commit 88c6e25e4f0630bd9204cb02787fcb67e097a43a by riddleriver
[mlir][OpFormatGen] Add support for specifiy "custom" directives.

This revision adds support for custom directives to the declarative assembly format. This allows for users to use C++ for printing and parsing subsections of an otherwise declaratively specified format. The custom directive is structured as follows:

```
custom-directive ::= `custom` `<` UserDirective `>` `(` Params `)`
```

`user-directive` is used as a suffix when this directive is used during printing and parsing. When parsing, `parseUserDirective` will be invoked. When printing, `printUserDirective` will be invoked. The first parameter to these methods must be a reference to either the OpAsmParser, or OpAsmPrinter. The type of rest of the parameters is dependent on the `Params` specified in the assembly format.

Differential Revision: https://reviews.llvm.org/D84719
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/test/mlir-tblgen/op-format-spec.td
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
Commit 24b88920fed750c864e30add6a0fefe58f1a9f54 by riddleriver
[mlir][ODS] Add new SymbolNameAttr and add support for in assemblyFormat

Symbol names are a special form of StringAttr that get treated specially in certain areas, such as formatting. This revision adds a special derived attr for them in ODS and adds support in the assemblyFormat for formatting them properly.

Differential Revision: https://reviews.llvm.org/D86759
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
Commit eaeadce9bd11d50cecfdf9e97ac471acd38136ee by riddleriver
[mlir][OpFormatGen] Add initial support for regions in the custom op assembly format

This adds some initial support for regions and does not support formatting the specific arguments of a region. For now this can be achieved by using a custom directive that formats the arguments and then parses the region.

Differential Revision: https://reviews.llvm.org/D86760
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/lib/Parser/Parser.h
The file was modifiedmlir/test/mlir-tblgen/op-format-spec.td
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/lib/Parser/AttributeParser.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
Commit 2481846a303dc6b99d4eebe761e2e3ffccead448 by riddleriver
[mlir][PDL] Move the formats for PatternOp and RewriteOp to the declarative form.

This is possible now that the declarative assembly form supports regions.

Differential Revision: https://reviews.llvm.org/D86830
The file was modifiedmlir/include/mlir/Dialect/PDL/IR/PDLOps.td
The file was modifiedmlir/lib/Dialect/PDL/IR/PDL.cpp