SuccessChanges

Summary

  1. [openacc] Rename generated file from ACC.cpp.inc to ACC.inc to match D92955 (details)
  2. [NFC] Update test to not check for 'opaque' in the file name. (details)
  3. [MLIR][TOSA] First lowerings from Tosa to Linalg (details)
  4. Add newline to terminate debug message (NFC) (details)
  5. [BasicAA] Handle recursive queries more efficiently (details)
  6. [mlir][ODS] Add new RangedTypesMatchWith operation predicate (details)
  7. [mlir][OpFormatGen] Format enum attribute cases as keywords when possible (details)
  8. [Driver] -gsplit-dwarf: Produce .dwo regardless of -gN for IR input (details)
  9. [RISCV] Merge Utils library into MCTargetDesc (details)
Commit ca98baa042538e1a8654dd86b24d1602df9a1aec by clementval
[openacc] Rename generated file from ACC.cpp.inc to ACC.inc to match D92955

This patch rename the tablegen generated file ACC.cpp.inc to ACC.inc in order
to match what was done in D92955. This file is included in header file as well as .cpp
file so it make more sense.

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D93485
The file was modifiedllvm/include/llvm/Frontend/OpenACC/CMakeLists.txt
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Frontend/OpenACC/BUILD.gn
The file was modifiedflang/include/flang/Parser/parse-tree.h
The file was modifiedflang/lib/Semantics/check-acc-structure.h
The file was modifiedflang/include/flang/Parser/dump-parse-tree.h
The file was modifiedflang/lib/Parser/unparse.cpp
Commit 9e53c94d8dd737fcedb543d6ac687ea9696db8a6 by erich.keane
[NFC] Update test to not check for 'opaque' in the file name.

The intent presumably is to avoid generating 'opaque' in the IR, but the
header contains the filename. Thus, having the workspace in a directory
with opaque in it causes this test to fail.

This just adds a 'CHECK' line on target-triple, which is the last line
of the IR-header.
The file was modifiedclang/test/CodeGen/incomplete-function-type.c
Commit 1d973b7ded124dd19f766db0c8e07d1c686dfb1b by rob.suderman
[MLIR][TOSA] First lowerings from Tosa to Linalg

Initial commit to add support for lowering from TOSA to Linalg. The focus is on
the essential infrastructure for these lowerings and integration with existing
passes.

Includes lowerings for a subset of operations including:
  abs, add, sub, pow, and, or, xor, left shift, right shift, tanh

Lit tests are used to validate correctness.

Differential Revision: https://reviews.llvm.org/D94247
The file was addedmlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
The file was addedmlir/lib/Conversion/TosaToLinalg/CMakeLists.txt
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was addedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
The file was addedmlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
Commit d8113cda782b56477d71321027c50389f05f5d31 by joker.eph
Add newline to terminate debug message (NFC)
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
Commit a3904cc77f181cff7355357688edfc392a236f5d by nikita.ppv
[BasicAA] Handle recursive queries more efficiently

An alias query currently works out roughly like this:

* Look up location pair in cache.
* Perform BasicAA logic (including cache lookup and insertion...)
* Perform a recursive query using BestAAResults.
   * Look up location pair in cache (and thus do not recurse into BasicAA)
   * Query all the other AA providers.
* Query all the other AA providers.

This is a lot of unnecessary work, all ultimately caused by the
BestAAResults query at the end of aliasCheck(). The reason we perform
it, is that aliasCheck() is getting called recursively, and we of
course want those recursive queries to also make use of other AA
providers, not just BasicAA. We can solve this by making the recursive
queries directly use BestAAResults (which will check both BasicAA
and other providers), rather than recursing into aliasCheck().

There are some tradeoffs:

* We can no longer pass through the precomputed underlying object
   to aliasCheck(). This is not a major concern, because nowadays
   getUnderlyingObject() is quite cheap.
* Results from other AA providers are no longer cached inside
   BasicAA. The way this worked was already a bit iffy, in that a
   result could be cached, but if it was MayAlias, we'd still end
   up re-querying other providers anyway. If we want to cache
   non-BasicAA results, we should do that in a more principled manner.

In any case, despite those tradeoffs, this works out to be a decent
compile-time improvment. I think it also simplifies the mental model
of how BasicAA works. It took me quite a while to fully understand
how these things interact.

Differential Revision: https://reviews.llvm.org/D90094
The file was modifiedllvm/include/llvm/Analysis/BasicAliasAnalysis.h
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
The file was modifiedllvm/lib/Analysis/GlobalsModRef.cpp
Commit 00a61b327dd8a7071ce0baadd16ea4c7b7e31e73 by riddleriver
[mlir][ODS] Add new RangedTypesMatchWith operation predicate

This is a variant of TypesMatchWith that provides support for variadic arguments. This is necessary because ranges generally can't use the default operator== comparators for checking equality.

Differential Revision: https://reviews.llvm.org/D94574
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
Commit 93592b726c7587aa86548cc74268346e25a4a7f2 by riddleriver
[mlir][OpFormatGen] Format enum attribute cases as keywords when possible

In the overwhelmingly common case, enum attribute case strings represent valid identifiers in MLIR syntax. This revision updates the format generator to format as a keyword in these cases, removing the need to wrap values in a string. The parser still retains the ability to parse the string form, but the printer will use the keyword form when applicable.

Differential Revision: https://reviews.llvm.org/D94575
The file was modifiedmlir/test/EDSC/builder-api-test.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/convert-shape-constraints.mlir
The file was modifiedmlir/test/Transforms/cse.mlir
The file was modifiedmlir/test/Dialect/Linalg/sparse_3d.mlir
The file was modifiedmlir/test/IR/invalid-ops.mlir
The file was modifiedmlir/test/Transforms/buffer-hoisting.mlir
The file was modifiedmlir/test/Dialect/SCF/ops.mlir
The file was modifiedmlir/integration_test/Dialect/Linalg/CPU/matmul-vs-matvec.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-contract-transforms.mlir
The file was modifiedmlir/test/Conversion/SCFToStandard/convert-to-cfg.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir
The file was modifiedmlir/test/Conversion/LinalgToSPIRV/linalg-to-spirv.mlir
The file was modifiedmlir/test/Dialect/SCF/for-loop-specialization.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/group-ops.mlir
The file was modifiedmlir/test/Transforms/buffer-loop-hoisting.mlir
The file was modifiedmlir/test/Transforms/buffer-deallocation.mlir
The file was modifiedmlir/test/IR/core-ops.mlir
The file was modifiedmlir/test/Transforms/canonicalize.mlir
The file was modifiedmlir/test/Conversion/AffineToStandard/lower-affine.mlir
The file was modifiedmlir/test/Analysis/test-dominance.mlir
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
The file was modifiedmlir/test/Target/SPIRV/barrier-ops.mlir
The file was modifiedmlir/test/Dialect/Standard/expand-tanh.mlir
The file was modifiedmlir/test/Dialect/Affine/parallelize.mlir
The file was modifiedmlir/test/Dialect/Linalg/loops.mlir
The file was modifiedmlir/test/Dialect/Linalg/convert-elementwise-to-linalg.mlir
The file was modifiedmlir/test/Target/SPIRV/non-uniform-ops.mlir
The file was modifiedmlir/test/Dialect/Linalg/sparse_1d.mlir
The file was modifiedmlir/test/Transforms/copy-removal.mlir
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/test/Conversion/SCFToGPU/parallel_loop.mlir
The file was modifiedmlir/test/Transforms/promote-buffers-to-stack.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/non-uniform-ops.mlir
The file was modifiedmlir/test/Dialect/GPU/all-reduce.mlir
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/test/Dialect/GPU/all-reduce-max.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/availability.mlir
The file was modifiedmlir/test/Transforms/canonicalize-block-merge.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/barrier-ops.mlir
The file was modifiedmlir/test/Dialect/Standard/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Linalg/tile-and-distribute.mlir
The file was modifiedmlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/test/Transforms/sccp-structured.mlir
The file was modifiedmlir/test/Transforms/parametric-tiling.mlir
The file was modifiedmlir/test/Dialect/Linalg/sparse_2d.mlir
The file was modifiedmlir/test/Transforms/sccp-callgraph.mlir
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/test/Target/SPIRV/group-ops.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-transforms.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/target-env.mlir
The file was modifiedmlir/test/Analysis/test-liveness.mlir
The file was modifiedmlir/test/Dialect/SCF/parallel-loop-specialization.mlir
The file was modifiedmlir/test/Dialect/Standard/expand-ops.mlir
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp
The file was modifiedmlir/test/Transforms/sccp.mlir
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was modifiedmlir/test/Transforms/constant-fold.mlir
Commit e3b9af92a4821fec25c207e2d1e443e09ff6b11e by i
[Driver] -gsplit-dwarf: Produce .dwo regardless of -gN for IR input

This generalizes D94647 to IR input, as suggested by @tejohnson.
Ideally the driver should just forward split dwarf options, but doing this currently will cause `clang -gsplit-dwarf -c a.c` to create a .dwo with just `.strtab`.

Reviewed By: dblaikie, tejohnson

Differential Revision: https://reviews.llvm.org/D94655
The file was modifiedclang/test/Driver/split-debug.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 387d3c24792f7ab5f2f8aab37d64948f42523825 by craig.topper
[RISCV] Merge Utils library into MCTargetDesc

MCTargetDesc includes headers from Utils and Utils includes headers
from MCTargetDesc. So from a library layering perspective it makes sense
for them to be in the same library. I guess the other option might be to
move the tablegen includes from RISCVMCTargetDesc.h to RISCVBaseInfo.h
so that RISCVBaseInfo.h didn't need to include RISCVMCTargetDesc.h.
Everything else that depends on Utils also depends on MCTargetDesc so
having one library seemed simpler.

Differential Revision: https://reviews.llvm.org/D93168
The file was removedllvm/lib/Target/RISCV/Utils/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
The file was removedllvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCV.h
The file was addedllvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
The file was modifiedllvm/lib/Target/RISCV/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
The file was addedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
The file was removedllvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
The file was modifiedllvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
The file was addedllvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was removedllvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp
The file was removedllvm/lib/Target/RISCV/Utils/RISCVMatInt.h
The file was modifiedllvm/lib/Target/RISCV/AsmParser/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.h
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was addedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h