SuccessChanges

Summary

  1. [mlir] Use double format when parsing bfloat16 hexadecimal values (details)
  2. [OPENMP]Do not emit special virtual function for NVPTX target. (details)
  3. [DAGCombine] Replace `getIntPtrConstant()` with `getVectorIdxTy()`. (details)
  4. [mlir][Linalg] Update the semantics, verifier and test for Linalg with (details)
Commit 1bd14ce39293df61888042916a7e43b9e502a4de by riverriddle
[mlir] Use double format when parsing bfloat16 hexadecimal values
Summary: bfloat16 doesn't have a valid APFloat format, so we have to use
double semantics when storing it. This change makes sure that
hexadecimal values can be round-tripped properly given this fact.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D72667
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/IR/parser.mlir
Commit a48600c0a653d34f4af760f117755ed1776adf9d by a.bataev
[OPENMP]Do not emit special virtual function for NVPTX target.
There are no special virtual function handlers (like __cxa_pure_virtual)
defined for NVPTX target, so just emit such functions as null pointers
to prevent issues with linking and unresolved references.
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was addedclang/test/OpenMP/nvptx_target_pure_deleted_codegen.cpp
Commit 8d07f8d98c48ee0a9dca450aaf4e1cabc621ff68 by michael.hliao
[DAGCombine] Replace `getIntPtrConstant()` with `getVectorIdxTy()`.
- Prefer `getVectorIdxTy()` as the index operand type for
`EXTRACT_SUBVECTOR` as targets expect different types by overloading
`getVectorIdxTy()`.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was addedllvm/test/CodeGen/AMDGPU/extract-subvector.ll
Commit f52d71736b10e87b1aa1880b777dc9462a0085ce by ntv
[mlir][Linalg] Update the semantics, verifier and test for Linalg with
tensors.
Summary: This diff fixes issues with the semantics of linalg.generic on
tensors that appeared when converting directly from HLO to
linalg.generic. The changes are self-contained within MLIR and can be
captured and tested independently of XLA.
The linalg.generic and indexed_generic are updated to:
To allow progressive lowering from the value world (a.k.a tensor values)
to the buffer world (a.k.a memref values), a linalg.generic op accepts
mixing input and output ranked tensor values with input and output
memrefs.
```
%1 = linalg.generic #trait_attribute %A, %B {other-attributes} :
tensor<?x?xf32>,
memref<?x?xf32, stride_specification>
-> (tensor<?x?xf32>)
```
In this case, the number of outputs (args_out) must match the sum of (1)
the number of output buffer operands and (2) the number of tensor return
values. The semantics is that the linalg.indexed_generic op produces
(i.e. allocates and fills) its return values.
Tensor values must be legalized by a buffer allocation pass before most
transformations can be applied. Such legalization moves tensor return
values into output buffer operands and updates the region argument
accordingly.
Transformations that create control-flow around linalg.indexed_generic
operations are not expected to mix with tensors because SSA values do
not escape naturally. Still, transformations and rewrites that take
advantage of tensor SSA values are expected to be useful and will be
added in the near future.
Subscribers: bmahjour, mehdi_amini, rriddle, jpienaar, burmako,
shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72555
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Utils/Utils.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp