Bump LLVM to fee41517fe0f7ff9f0e204dd9200ebf32ca03cb8
PiperOrigin-RevId: 297124875 Change-Id: I4044e522597321f0d4f9c2e8171b2f76230eb6ca
This commit is contained in:
parent
db192cd753
commit
af61723bc3
@ -46,7 +46,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
||||||
|
@ -42,7 +42,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "llvm/Support/ToolOutputFile.h"
|
#include "llvm/Support/ToolOutputFile.h"
|
||||||
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
@ -165,7 +165,7 @@ constexpr size_t kInitialBufferSize = 10240;
|
|||||||
// `isSigned` is set to false for other types.
|
// `isSigned` is set to false for other types.
|
||||||
static StatusOr<tflite::TensorType> GetTFLiteType(Type type,
|
static StatusOr<tflite::TensorType> GetTFLiteType(Type type,
|
||||||
bool is_signed = true) {
|
bool is_signed = true) {
|
||||||
if (!is_signed && type.isInteger(8)) {
|
if (!is_signed && type.isSignlessInteger(8)) {
|
||||||
return tflite::TensorType_UINT8;
|
return tflite::TensorType_UINT8;
|
||||||
}
|
}
|
||||||
if (!is_signed) {
|
if (!is_signed) {
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SetVector.h"
|
#include "llvm/ADT/SetVector.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Matchers.h" // TF:llvm-project
|
#include "mlir/IR/Matchers.h" // TF:llvm-project
|
||||||
@ -275,7 +275,7 @@ Attribute ConstFoldBinaryOp(
|
|||||||
return ConstFoldBinaryOp<FloatAttr>(result_type, operands[0], operands[1],
|
return ConstFoldBinaryOp<FloatAttr>(result_type, operands[0], operands[1],
|
||||||
float_calculate, is_commutative);
|
float_calculate, is_commutative);
|
||||||
|
|
||||||
if (elemType.isa<IntegerType>())
|
if (elemType.isSignlessInteger())
|
||||||
return ConstFoldBinaryOp<IntegerAttr>(result_type, operands[0], operands[1],
|
return ConstFoldBinaryOp<IntegerAttr>(result_type, operands[0], operands[1],
|
||||||
int_calculate, is_commutative);
|
int_calculate, is_commutative);
|
||||||
|
|
||||||
@ -1560,7 +1560,7 @@ OpFoldResult RangeOp::fold(ArrayRef<Attribute> operands) {
|
|||||||
limit_tensor.getType().getRank() == 0 &&
|
limit_tensor.getType().getRank() == 0 &&
|
||||||
delta_tensor.getType().getRank() == 0);
|
delta_tensor.getType().getRank() == 0);
|
||||||
Type elem_type = getType().cast<ShapedType>().getElementType();
|
Type elem_type = getType().cast<ShapedType>().getElementType();
|
||||||
if (elem_type.isa<IntegerType>()) {
|
if (elem_type.isSignlessInteger()) {
|
||||||
auto start_attr = start_tensor.getValue<IntegerAttr>({});
|
auto start_attr = start_tensor.getValue<IntegerAttr>({});
|
||||||
auto limit_attr = limit_tensor.getValue<IntegerAttr>({});
|
auto limit_attr = limit_tensor.getValue<IntegerAttr>({});
|
||||||
auto delta_attr = delta_tensor.getValue<IntegerAttr>({});
|
auto delta_attr = delta_tensor.getValue<IntegerAttr>({});
|
||||||
@ -1662,7 +1662,7 @@ OpFoldResult TransposeOp::fold(ArrayRef<Attribute> operands) {
|
|||||||
|
|
||||||
// Do not try to fold elements attr of a quant type because
|
// Do not try to fold elements attr of a quant type because
|
||||||
// DenseElementsAttr does not support it.
|
// DenseElementsAttr does not support it.
|
||||||
if (!getType().cast<ShapedType>().getElementType().isIntOrFloat())
|
if (!getType().cast<ShapedType>().getElementType().isSignlessIntOrFloat())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
assert(perm_tensor.getType().getRank() == 1);
|
assert(perm_tensor.getType().getRank() == 1);
|
||||||
|
@ -25,7 +25,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/QuantOps/FakeQuantSupport.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/FakeQuantSupport.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
||||||
#include "mlir/IR/AffineMap.h" // TF:llvm-project
|
#include "mlir/IR/AffineMap.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "mlir/Dialect/QuantOps/FakeQuantSupport.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/FakeQuantSupport.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
@ -191,7 +191,7 @@ struct QuantizationPattern : public RewritePattern {
|
|||||||
auto ele_type = operand.getType().cast<TensorType>().getElementType();
|
auto ele_type = operand.getType().cast<TensorType>().getElementType();
|
||||||
if (auto op_inst = dyn_cast_or_null<DQ>(operand.getDefiningOp())) {
|
if (auto op_inst = dyn_cast_or_null<DQ>(operand.getDefiningOp())) {
|
||||||
inputs.push_back(op_inst.input());
|
inputs.push_back(op_inst.input());
|
||||||
} else if (ele_type.isa<IntegerType>()) {
|
} else if (ele_type.isSignlessInteger()) {
|
||||||
// If the operand is an integer tensor, then it doesn't require the
|
// If the operand is an integer tensor, then it doesn't require the
|
||||||
// DQ op in the pattern.
|
// DQ op in the pattern.
|
||||||
inputs.push_back(operand);
|
inputs.push_back(operand);
|
||||||
@ -225,7 +225,7 @@ struct QuantizationPattern : public RewritePattern {
|
|||||||
auto user = llvm::cast<Q>(*result.user_begin());
|
auto user = llvm::cast<Q>(*result.user_begin());
|
||||||
outputs_replaced.insert({user.output(), enumerated_result.index()});
|
outputs_replaced.insert({user.output(), enumerated_result.index()});
|
||||||
output_types.push_back(user.getType());
|
output_types.push_back(user.getType());
|
||||||
} else if (result_ele_type.template isa<IntegerType>()) {
|
} else if (result_ele_type.isSignlessInteger()) {
|
||||||
// If the result is an integer tensor, then it doesn't require the
|
// If the result is an integer tensor, then it doesn't require the
|
||||||
// D op in the pattern.
|
// D op in the pattern.
|
||||||
outputs_replaced.insert({result, enumerated_result.index()});
|
outputs_replaced.insert({result, enumerated_result.index()});
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
||||||
|
@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
#include "mlir/IR/AffineExpr.h"
|
#include "mlir/IR/AffineExpr.h"
|
||||||
#include "mlir/IR/AffineMap.h"
|
#include "mlir/IR/AffineMap.h"
|
||||||
#include "mlir/IR/Attributes.h"
|
#include "mlir/IR/Attributes.h"
|
||||||
|
@ -22,7 +22,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "llvm/ADT/DenseMap.h"
|
#include "llvm/ADT/DenseMap.h"
|
||||||
#include "llvm/ADT/StringMap.h"
|
#include "llvm/ADT/StringMap.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// TFLite legalization patterns
|
// TFLite legalization patterns
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
@ -341,7 +341,7 @@ def : Pat<(TF_MatrixDiagOp $diagonal), (TFL_MatrixDiagOp $diagonal)>;
|
|||||||
class I32VectorElementsAttr<int len> : ElementsAttrBase<
|
class I32VectorElementsAttr<int len> : ElementsAttrBase<
|
||||||
CPred<"$_self.isa<DenseIntElementsAttr>() &&"
|
CPred<"$_self.isa<DenseIntElementsAttr>() &&"
|
||||||
"$_self.cast<DenseIntElementsAttr>().getType()."
|
"$_self.cast<DenseIntElementsAttr>().getType()."
|
||||||
"getElementType().isInteger(32)">,
|
"getElementType().isSignlessInteger(32)">,
|
||||||
"32-bit int elements attribute of shape [" # len # "]"> {
|
"32-bit int elements attribute of shape [" # len # "]"> {
|
||||||
|
|
||||||
let storageType = [{ DenseIntElementsAttr }];
|
let storageType = [{ DenseIntElementsAttr }];
|
||||||
|
@ -255,7 +255,7 @@ PatternMatchResult ConvertTFReshapeOp::matchAndRewrite(
|
|||||||
|
|
||||||
ShapedType shape_type = shape.getType().cast<ShapedType>();
|
ShapedType shape_type = shape.getType().cast<ShapedType>();
|
||||||
// The tfl reshape's #2 operand needs to i32 tensor type, so we have to cast.
|
// The tfl reshape's #2 operand needs to i32 tensor type, so we have to cast.
|
||||||
if (!shape_type.getElementType().isInteger(32)) {
|
if (!shape_type.getElementType().isSignlessInteger(32)) {
|
||||||
auto new_shape = shape_type.getShape();
|
auto new_shape = shape_type.getShape();
|
||||||
IntegerType new_ele_type = rewriter.getIntegerType(32);
|
IntegerType new_ele_type = rewriter.getIntegerType(32);
|
||||||
ShapedType new_type = RankedTensorType::get(new_shape, new_ele_type);
|
ShapedType new_type = RankedTensorType::get(new_shape, new_ele_type);
|
||||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
|
|
||||||
// Converts TF While to TFL While with single call in body and cond.
|
// Converts TF While to TFL While with single call in body and cond.
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
|
@ -20,7 +20,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/None.h"
|
#include "llvm/ADT/None.h"
|
||||||
#include "llvm/ADT/Optional.h"
|
#include "llvm/ADT/Optional.h"
|
||||||
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/QuantOps/QuantTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
||||||
|
@ -32,7 +32,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
@ -335,8 +335,9 @@ struct ConvertTensorListInitOp : public OpConversionPattern<OpT> {
|
|||||||
ConversionPatternRewriter &rewriter) const override {
|
ConversionPatternRewriter &rewriter) const override {
|
||||||
Type dtype = op.element_dtype();
|
Type dtype = op.element_dtype();
|
||||||
if (!(dtype.isF16() || dtype.isF32() || dtype.isF64() ||
|
if (!(dtype.isF16() || dtype.isF32() || dtype.isF64() ||
|
||||||
dtype.isInteger(1) || dtype.isInteger(8) || dtype.isInteger(16) ||
|
dtype.isInteger(1) || dtype.isSignlessInteger(8) ||
|
||||||
dtype.isInteger(32) || dtype.isInteger(64))) {
|
dtype.isSignlessInteger(16) || dtype.isSignlessInteger(32) ||
|
||||||
|
dtype.isSignlessInteger(64))) {
|
||||||
op.emitError(
|
op.emitError(
|
||||||
"requires element_dtype to be 1-bit/8-bit/16-bit/32-bit/64-bit "
|
"requires element_dtype to be 1-bit/8-bit/16-bit/32-bit/64-bit "
|
||||||
"integer or 16-bit/32-bit/64-bit float type during TF Lite "
|
"integer or 16-bit/32-bit/64-bit float type during TF Lite "
|
||||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Matchers.h" // TF:llvm-project
|
#include "mlir/IR/Matchers.h" // TF:llvm-project
|
||||||
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This is the optimization pattern definition file for TensorFlow Lite.
|
// This is the optimization pattern definition file for TensorFlow Lite.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This is the quantization pattern definition file for TensorFlow Lite.
|
// This is the quantization pattern definition file for TensorFlow Lite.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
||||||
|
|
||||||
// Both Quantize and Dequantize ops have side effects, so we have to define
|
// Both Quantize and Dequantize ops have side effects, so we have to define
|
||||||
|
@ -23,7 +23,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This is the quantization pattern definition file for TensorFlow Lite.
|
// This is the quantization pattern definition file for TensorFlow Lite.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
include "tensorflow/compiler/mlir/lite/ir/tfl_ops.td"
|
||||||
|
|
||||||
// Quantize attribute $0 by using quantization parameter from %1.
|
// Quantize attribute $0 by using quantization parameter from %1.
|
||||||
|
@ -18,7 +18,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/DenseSet.h"
|
#include "llvm/ADT/DenseSet.h"
|
||||||
#include "llvm/ADT/StringMap.h"
|
#include "llvm/ADT/StringMap.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -14,7 +14,7 @@ limitations under the License.
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -20,7 +20,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SetVector.h"
|
#include "llvm/ADT/SetVector.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SetVector.h"
|
#include "llvm/ADT/SetVector.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
|
@ -38,7 +38,7 @@ FloatAttr GetSingleElementAsFloatOrSelf(Attribute attr) {
|
|||||||
|
|
||||||
IntegerAttr ExtractSingleElementAsInteger(ElementsAttr attr) {
|
IntegerAttr ExtractSingleElementAsInteger(ElementsAttr attr) {
|
||||||
if (attr.getType().getNumElements() != 1 ||
|
if (attr.getType().getNumElements() != 1 ||
|
||||||
!attr.getType().getElementType().isa<IntegerType>()) {
|
!attr.getType().getElementType().isSignlessInteger()) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
SmallVector<uint64_t, 8> index(attr.getType().getRank(), 0);
|
SmallVector<uint64_t, 8> index(attr.getType().getRank(), 0);
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
|||||||
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_ATTRIBUTE_UTILS_H_
|
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_ATTRIBUTE_UTILS_H_
|
||||||
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_ATTRIBUTE_UTILS_H_
|
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_ATTRIBUTE_UTILS_H_
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace TFL {
|
namespace TFL {
|
||||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -24,7 +24,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/StringExtras.h"
|
#include "llvm/ADT/StringExtras.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "tensorflow/compiler/mlir/lite/ir/tfl_ops.h"
|
#include "tensorflow/compiler/mlir/lite/ir/tfl_ops.h"
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_STATEFUL_OPS_UTILS_H_
|
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_STATEFUL_OPS_UTILS_H_
|
||||||
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_STATEFUL_OPS_UTILS_H_
|
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_STATEFUL_OPS_UTILS_H_
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace TFL {
|
namespace TFL {
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
|||||||
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_VALIDATORS_H_
|
#ifndef TENSORFLOW_COMPILER_MLIR_LITE_UTILS_VALIDATORS_H_
|
||||||
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_VALIDATORS_H_
|
#define TENSORFLOW_COMPILER_MLIR_LITE_UTILS_VALIDATORS_H_
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
|
@ -90,7 +90,7 @@ gentbl(
|
|||||||
td_file = "ir/tf_saved_model_ops.td",
|
td_file = "ir/tf_saved_model_ops.td",
|
||||||
td_srcs = [
|
td_srcs = [
|
||||||
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
||||||
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/Ops.td",
|
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ gentbl(
|
|||||||
td_file = "ir/tf_executor_ops.td",
|
td_file = "ir/tf_executor_ops.td",
|
||||||
td_srcs = [
|
td_srcs = [
|
||||||
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
||||||
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/Ops.td",
|
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ gentbl(
|
|||||||
td_file = "ir/tf_device_ops.td",
|
td_file = "ir/tf_device_ops.td",
|
||||||
td_srcs = [
|
td_srcs = [
|
||||||
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
"@llvm-project//mlir:include/mlir/IR/OpBase.td",
|
||||||
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/Ops.td",
|
"@llvm-project//mlir:include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -85,7 +85,7 @@ class TF_TensorFlowType <string name, string description> :
|
|||||||
|
|
||||||
// Any tensor element type allowed in TensorFlow ops
|
// Any tensor element type allowed in TensorFlow ops
|
||||||
def TF_ElementType : Type<Or<[AnyFloat.predicate,
|
def TF_ElementType : Type<Or<[AnyFloat.predicate,
|
||||||
AnyInteger.predicate,
|
AnySignlessInteger.predicate,
|
||||||
AnyComplex.predicate,
|
AnyComplex.predicate,
|
||||||
TF_TFDialectType.predicate]>,
|
TF_TFDialectType.predicate]>,
|
||||||
"tf.dtype">;
|
"tf.dtype">;
|
||||||
|
@ -35,7 +35,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "llvm/ADT/iterator_range.h"
|
#include "llvm/ADT/iterator_range.h"
|
||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
@ -2104,7 +2104,8 @@ LogicalResult VerifyShapeOperandAndResult(Operation *op, Type operand_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
Type element_type = result_ranked_type.getElementType();
|
Type element_type = result_ranked_type.getElementType();
|
||||||
if (!element_type.isInteger(32) && !element_type.isInteger(64))
|
if (!element_type.isSignlessInteger(32) &&
|
||||||
|
!element_type.isSignlessInteger(64))
|
||||||
return op->emitOpError("requires int32 or int64 return type for result")
|
return op->emitOpError("requires int32 or int64 return type for result")
|
||||||
<< variadic_idx_str;
|
<< variadic_idx_str;
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ class TensorFlowType : public Type {
|
|||||||
// Returns true if the specified type is a valid TensorFlow element type.
|
// Returns true if the specified type is a valid TensorFlow element type.
|
||||||
static inline bool IsValidTFElementType(Type type) {
|
static inline bool IsValidTFElementType(Type type) {
|
||||||
return type.isa<ComplexType>() || type.isa<FloatType>() ||
|
return type.isa<ComplexType>() || type.isa<FloatType>() ||
|
||||||
type.isa<IntegerType>() || type.isa<TensorFlowType>();
|
type.isSignlessInteger() || type.isa<TensorFlowType>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if this is a valid TensorFlow tensor type.
|
// Returns true if this is a valid TensorFlow tensor type.
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
// `tf_device.launch` with equivalent `tf_device.launch_func` operations.
|
// `tf_device.launch` with equivalent `tf_device.launch_func` operations.
|
||||||
|
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
// Here, the element type can be any integer or float type. But, note that only
|
// Here, the element type can be any integer or float type. But, note that only
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SetVector.h"
|
#include "llvm/ADT/SetVector.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Visitors.h" // TF:llvm-project
|
#include "mlir/IR/Visitors.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SetVector.h"
|
#include "llvm/ADT/SetVector.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/SymbolTable.h" // TF:llvm-project
|
#include "mlir/IR/SymbolTable.h" // TF:llvm-project
|
||||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
#include "mlir/Analysis/LoopAnalysis.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This transformation pass transforms functional control flow operations in the
|
// This transformation pass transforms functional control flow operations in the
|
||||||
// standard TensorFlow dialect to MLIR Control Flow Graph (CFG) form.
|
// standard TensorFlow dialect to MLIR Control Flow Graph (CFG) form.
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
|
@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
// Here, the element type can be any integer or float type. But, note that only
|
// Here, the element type can be any integer or float type. But, note that only
|
||||||
@ -122,7 +122,7 @@ def LowerSparseSoftmaxCrossEntropyWithLogitsOp : Pattern<
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
def ComplexTensor : TensorOf<[AnyComplex]>;
|
def ComplexTensor : TensorOf<[AnyComplex]>;
|
||||||
def RealTensor : TensorOf<[AnyInteger, AnyFloat]>;
|
def RealTensor : TensorOf<[AnySignlessInteger, AnyFloat]>;
|
||||||
|
|
||||||
def : Pat<(TF_SquareOp $val), (TF_MulOp $val, $val)>;
|
def : Pat<(TF_SquareOp $val), (TF_MulOp $val, $val)>;
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ def LowerL2LossOp :
|
|||||||
// Pad op patterns.
|
// Pad op patterns.
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
def : Pat<(TF_PadOp TensorOf<[AnyInteger, AnyFloat]>:$input, $paddings),
|
def : Pat<(TF_PadOp TensorOf<[AnySignlessInteger, AnyFloat]>:$input, $paddings),
|
||||||
(TF_PadV2Op $input, $paddings,
|
(TF_PadV2Op $input, $paddings,
|
||||||
(TF_ConstOp (GetScalarOfType<0> $input)))>;
|
(TF_ConstOp (GetScalarOfType<0> $input)))>;
|
||||||
|
|
||||||
@ -224,6 +224,6 @@ def CreateTFShapeOp : NativeCodeCall<
|
|||||||
|
|
||||||
// TODO(hinsu): Support inputs of TensorList types.
|
// TODO(hinsu): Support inputs of TensorList types.
|
||||||
def LowerZerosLikeOp :
|
def LowerZerosLikeOp :
|
||||||
Pat<(TF_ZerosLikeOp:$src_op TensorOf<[AnyInteger, AnyFloat]>:$input),
|
Pat<(TF_ZerosLikeOp:$src_op TensorOf<[AnySignlessInteger, AnyFloat]>:$input),
|
||||||
(TF_BroadcastToOp (TF_ConstOp (GetScalarOfType<0> $input)),
|
(TF_BroadcastToOp (TF_ConstOp (GetScalarOfType<0> $input)),
|
||||||
(CreateTFShapeOp $src_op, $input, /*use 32bit*/ConstBoolAttrFalse))>;
|
(CreateTFShapeOp $src_op, $input, /*use 32bit*/ConstBoolAttrFalse))>;
|
||||||
|
@ -14,7 +14,7 @@ limitations under the License.
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
|
@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
|
|
||||||
def IsDataFormatNHWC : ConstantAttr<TF_ConvnetDataFormatAttr, "NHWC">;
|
def IsDataFormatNHWC : ConstantAttr<TF_ConvnetDataFormatAttr, "NHWC">;
|
||||||
|
@ -27,7 +27,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
||||||
|
@ -22,7 +22,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
|
@ -25,7 +25,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "llvm/Support/FormatVariadic.h"
|
#include "llvm/Support/FormatVariadic.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
||||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/DenseSet.h"
|
#include "llvm/ADT/DenseSet.h"
|
||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
|
@ -22,7 +22,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/Sequence.h"
|
#include "llvm/ADT/Sequence.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Value.h" // TF:llvm-project
|
#include "mlir/IR/Value.h" // TF:llvm-project
|
||||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SmallString.h"
|
#include "llvm/ADT/SmallString.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Value.h" // TF:llvm-project
|
#include "mlir/IR/Value.h" // TF:llvm-project
|
||||||
|
@ -28,7 +28,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -42,7 +42,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Analysis/Verifier.h" // TF:llvm-project
|
#include "mlir/Analysis/Verifier.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#ifndef TENSORFLOW_COMPILER_MLIR_TENSORFLOW_TRANSLATE_MLIR_ROUNDTRIP_PASS_H_
|
#ifndef TENSORFLOW_COMPILER_MLIR_TENSORFLOW_TRANSLATE_MLIR_ROUNDTRIP_PASS_H_
|
||||||
#define TENSORFLOW_COMPILER_MLIR_TENSORFLOW_TRANSLATE_MLIR_ROUNDTRIP_PASS_H_
|
#define TENSORFLOW_COMPILER_MLIR_TENSORFLOW_TRANSLATE_MLIR_ROUNDTRIP_PASS_H_
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "tensorflow/core/common_runtime/optimization_registry.h"
|
#include "tensorflow/core/common_runtime/optimization_registry.h"
|
||||||
#include "tensorflow/core/lib/core/status.h"
|
#include "tensorflow/core/lib/core/status.h"
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ limitations under the License.
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "llvm/ADT/ArrayRef.h"
|
#include "llvm/ADT/ArrayRef.h"
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
#include "mlir/IR/OpDefinition.h" // TF:llvm-project
|
#include "mlir/IR/OpDefinition.h" // TF:llvm-project
|
||||||
|
@ -23,7 +23,7 @@ limitations under the License.
|
|||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
#include "mlir/IR/Identifier.h" // TF:llvm-project
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "tensorflow/compiler/mlir/xla/hlo_module_importer.h"
|
#include "tensorflow/compiler/mlir/xla/hlo_module_importer.h"
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
#include "mlir/IR/OperationSupport.h" // TF:llvm-project
|
#include "mlir/IR/OperationSupport.h" // TF:llvm-project
|
||||||
|
@ -1130,7 +1130,7 @@ Type SliceOp::InferOutputTypes(Builder* builder, Value operand,
|
|||||||
// Illegal attributes.
|
// Illegal attributes.
|
||||||
ShapedType attr_ty = start_indices.getType();
|
ShapedType attr_ty = start_indices.getType();
|
||||||
if (attr_ty.getRank() != 1 || attr_ty.getNumElements() != rank ||
|
if (attr_ty.getRank() != 1 || attr_ty.getNumElements() != rank ||
|
||||||
!attr_ty.getElementType().isInteger(64) ||
|
!attr_ty.getElementType().isSignlessInteger(64) ||
|
||||||
limit_indices.getType() != attr_ty || strides.getType() != attr_ty)
|
limit_indices.getType() != attr_ty || strides.getType() != attr_ty)
|
||||||
return ty;
|
return ty;
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ def HLO_FpTensor : TensorOf<[AnyFloat]>;
|
|||||||
|
|
||||||
def HLO_PredTensor : TensorOf<[HLO_Pred]>;
|
def HLO_PredTensor : TensorOf<[HLO_Pred]>;
|
||||||
|
|
||||||
def HLO_Tensor : TensorOf<[AnyFloat, AnyInteger, AnyComplex]>;
|
def HLO_Tensor : TensorOf<[AnyFloat, AnySignlessInteger, AnyComplex]>;
|
||||||
|
|
||||||
def HLO_ComplexTensor : TensorOf<[AnyComplex]>;
|
def HLO_ComplexTensor : TensorOf<[AnyComplex]>;
|
||||||
|
|
||||||
@ -64,13 +64,13 @@ def HLO_TensorOrTuple : AnyTypeOf<[HLO_Tensor, HLO_Tuple]>;
|
|||||||
// an index type (as it stores indices) but that is currently disallowed in
|
// an index type (as it stores indices) but that is currently disallowed in
|
||||||
// MLIR.
|
// MLIR.
|
||||||
def HLO_DimensionTensor : ShapedContainerType<
|
def HLO_DimensionTensor : ShapedContainerType<
|
||||||
[AnyInteger], And<[IsTensorTypePred, HasAnyRankOfPred<[1]>]>,
|
[AnySignlessInteger], And<[IsTensorTypePred, HasAnyRankOfPred<[1]>]>,
|
||||||
"a 1D tensor of dimensions">;
|
"a 1D tensor of dimensions">;
|
||||||
|
|
||||||
// In general, static shaped tensor constraints should be avoided unless
|
// In general, static shaped tensor constraints should be avoided unless
|
||||||
// it is for a legacy op which is only correct with static shapes.
|
// it is for a legacy op which is only correct with static shapes.
|
||||||
def HLO_StaticShapeTensor : StaticShapeTensorOf<[
|
def HLO_StaticShapeTensor : StaticShapeTensorOf<[
|
||||||
AnyFloat, AnyInteger, AnyComplex]>;
|
AnyFloat, AnySignlessInteger, AnyComplex]>;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// XLA combined type definitions.
|
// XLA combined type definitions.
|
||||||
@ -784,7 +784,7 @@ def HLO_ScalarsToDimensionTensorOp : HLO_Op<"scalars_to_dimension_tensor",
|
|||||||
compute shape arguments to dynamic operations.
|
compute shape arguments to dynamic operations.
|
||||||
}];
|
}];
|
||||||
|
|
||||||
let arguments = (ins Variadic<AnyInteger>);
|
let arguments = (ins Variadic<AnySignlessInteger>);
|
||||||
let results = (outs HLO_DimensionTensor);
|
let results = (outs HLO_DimensionTensor);
|
||||||
|
|
||||||
// Cannot be exported to legacy formats.
|
// Cannot be exported to legacy formats.
|
||||||
|
@ -40,7 +40,7 @@ static ElementsAttr getSplat(Builder* b, Value val, T constant) {
|
|||||||
|
|
||||||
// Handle integer elements.
|
// Handle integer elements.
|
||||||
Attribute elementAttr;
|
Attribute elementAttr;
|
||||||
if (valElementType.isa<IntegerType>())
|
if (valElementType.isSignlessInteger())
|
||||||
elementAttr = b->getIntegerAttr(valElementType, constant);
|
elementAttr = b->getIntegerAttr(valElementType, constant);
|
||||||
else if (valElementType.isa<FloatType>())
|
else if (valElementType.isa<FloatType>())
|
||||||
elementAttr = b->getFloatAttr(valElementType, constant);
|
elementAttr = b->getFloatAttr(valElementType, constant);
|
||||||
|
@ -42,7 +42,7 @@ def LHLO_PredBuffer : MemRefOf<[HLO_Pred]>;
|
|||||||
// Any integer or floating-point tensor types
|
// Any integer or floating-point tensor types
|
||||||
def LHLO_IntOrFpBuffer : MemRefOf<[HLO_Int, AnyFloat]>;
|
def LHLO_IntOrFpBuffer : MemRefOf<[HLO_Int, AnyFloat]>;
|
||||||
|
|
||||||
def LHLO_Buffer : MemRefOf<[AnyFloat, AnyInteger]>;
|
def LHLO_Buffer : MemRefOf<[AnyFloat, AnySignlessInteger]>;
|
||||||
|
|
||||||
def LHLO_TupleBuffer : NestedTupleOf<[LHLO_Buffer]>;
|
def LHLO_TupleBuffer : NestedTupleOf<[LHLO_Buffer]>;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ limitations under the License.
|
|||||||
#include "llvm/Support/SMLoc.h"
|
#include "llvm/Support/SMLoc.h"
|
||||||
#include "llvm/Support/SourceMgr.h"
|
#include "llvm/Support/SourceMgr.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
@ -1221,7 +1221,7 @@ LogicalResult AddDynamicParameterBindings(mlir::ModuleOp module,
|
|||||||
<< "requires arg " << padding_arg_index
|
<< "requires arg " << padding_arg_index
|
||||||
<< " to be a scalar for use as a dynamic parameter";
|
<< " to be a scalar for use as a dynamic parameter";
|
||||||
|
|
||||||
if (!mlir::getElementTypeOrSelf(padding_arg_type).isa<IntegerType>())
|
if (!mlir::getElementTypeOrSelf(padding_arg_type).isSignlessInteger())
|
||||||
return entry_func.emitError()
|
return entry_func.emitError()
|
||||||
<< "requires arg " << padding_arg_index
|
<< "requires arg " << padding_arg_index
|
||||||
<< " to be of an int type for use as a dynamic parameter";
|
<< " to be of an int type for use as a dynamic parameter";
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This file implements logic for lowering HLO dialect to LHLO dialect.
|
// This file implements logic for lowering HLO dialect to LHLO dialect.
|
||||||
|
|
||||||
#include "absl/memory/memory.h"
|
#include "absl/memory/memory.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#ifndef TENSORFLOW_COMPILER_MLIR_XLA_TRANSFORMS_HLO_SHAPE_DERIVATION_H_
|
#ifndef TENSORFLOW_COMPILER_MLIR_XLA_TRANSFORMS_HLO_SHAPE_DERIVATION_H_
|
||||||
#define TENSORFLOW_COMPILER_MLIR_XLA_TRANSFORMS_HLO_SHAPE_DERIVATION_H_
|
#define TENSORFLOW_COMPILER_MLIR_XLA_TRANSFORMS_HLO_SHAPE_DERIVATION_H_
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
|
@ -18,7 +18,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Block.h" // TF:llvm-project
|
#include "mlir/IR/Block.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -24,7 +24,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/Optional.h"
|
#include "llvm/ADT/Optional.h"
|
||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
#include "mlir/Dialect/Traits.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
#include "mlir/IR/Diagnostics.h" // TF:llvm-project
|
||||||
@ -119,7 +119,7 @@ static DenseIntElementsAttr GetI32ElementsAttr(ArrayRef<int32_t> values,
|
|||||||
Type GetSumAccumulationType(Type input_type) {
|
Type GetSumAccumulationType(Type input_type) {
|
||||||
MLIRContext *ctx = input_type.getContext();
|
MLIRContext *ctx = input_type.getContext();
|
||||||
if (input_type.isBF16() || input_type.isF16()) return FloatType::getF32(ctx);
|
if (input_type.isBF16() || input_type.isF16()) return FloatType::getF32(ctx);
|
||||||
if (input_type.isInteger(8) || input_type.isInteger(16))
|
if (input_type.isSignlessInteger(8) || input_type.isSignlessInteger(16))
|
||||||
return IntegerType::get(32, ctx);
|
return IntegerType::get(32, ctx);
|
||||||
return input_type;
|
return input_type;
|
||||||
}
|
}
|
||||||
@ -1274,7 +1274,7 @@ class ConvertMaxPoolOp : public OpRewritePattern<TF::MaxPoolOp> {
|
|||||||
PatternRewriter &rewriter) const override {
|
PatternRewriter &rewriter) const override {
|
||||||
Type element_type =
|
Type element_type =
|
||||||
op.input().getType().cast<TensorType>().getElementType();
|
op.input().getType().cast<TensorType>().getElementType();
|
||||||
if (!element_type.isIntOrFloat()) return matchFailure();
|
if (!element_type.isSignlessIntOrFloat()) return matchFailure();
|
||||||
Location loc = op.getLoc();
|
Location loc = op.getLoc();
|
||||||
ConstOp init = GetMinValueForType(element_type, loc, &rewriter);
|
ConstOp init = GetMinValueForType(element_type, loc, &rewriter);
|
||||||
|
|
||||||
@ -2248,7 +2248,7 @@ class ConvertArgMinMaxOp : public OpRewritePattern<OpTy> {
|
|||||||
Type input_element_type = input_type.getElementType();
|
Type input_element_type = input_type.getElementType();
|
||||||
// TODO(bixia): Clarify whether tf.ArgMax supports complex data types. If
|
// TODO(bixia): Clarify whether tf.ArgMax supports complex data types. If
|
||||||
// tf.ArgMax doesn't support complex data types, this check can be removed.
|
// tf.ArgMax doesn't support complex data types, this check can be removed.
|
||||||
if (!input_element_type.isIntOrFloat()) return this->matchFailure();
|
if (!input_element_type.isSignlessIntOrFloat()) return this->matchFailure();
|
||||||
|
|
||||||
Location loc = op.getLoc();
|
Location loc = op.getLoc();
|
||||||
Value init_value =
|
Value init_value =
|
||||||
|
@ -28,7 +28,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/SmallSet.h"
|
#include "llvm/ADT/SmallSet.h"
|
||||||
#include "llvm/ADT/StringSet.h"
|
#include "llvm/ADT/StringSet.h"
|
||||||
#include "llvm/ADT/iterator_range.h"
|
#include "llvm/ADT/iterator_range.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This is the legalization pattern definition file for TF to XLA.
|
// This is the legalization pattern definition file for TF to XLA.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
include "tensorflow/compiler/mlir/tensorflow/ir/tf_ops.td"
|
||||||
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
||||||
|
|
||||||
@ -504,8 +504,8 @@ def : Pat<(TF_SignOp $x),
|
|||||||
)>;
|
)>;
|
||||||
|
|
||||||
def BothElementTypesSameWidthIntOrFloat : Constraint<CPred<
|
def BothElementTypesSameWidthIntOrFloat : Constraint<CPred<
|
||||||
"getElementTypeOrSelf($0.getType()).isIntOrFloat() && "
|
"getElementTypeOrSelf($0.getType()).isSignlessIntOrFloat() && "
|
||||||
"getElementTypeOrSelf($1.getType()).isIntOrFloat() && "
|
"getElementTypeOrSelf($1.getType()).isSignlessIntOrFloat() && "
|
||||||
"getElementTypeOrSelf($0.getType()).getIntOrFloatBitWidth() == "
|
"getElementTypeOrSelf($0.getType()).getIntOrFloatBitWidth() == "
|
||||||
"getElementTypeOrSelf($1.getType()).getIntOrFloatBitWidth()">,
|
"getElementTypeOrSelf($1.getType()).getIntOrFloatBitWidth()">,
|
||||||
"element types must be integers or floats of same width">;
|
"element types must be integers or floats of same width">;
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This file implements logic for lowering XLA dialect to Standard dialect.
|
// This file implements logic for lowering XLA dialect to Standard dialect.
|
||||||
|
|
||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
||||||
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
#include "mlir/Pass/Pass.h" // TF:llvm-project
|
||||||
@ -45,8 +45,8 @@ class CompareIConvert : public OpRewritePattern<xla_hlo::CompareOp> {
|
|||||||
// Broadcasting not supported by this rewrite.
|
// Broadcasting not supported by this rewrite.
|
||||||
if (lhs_type.getShape() != rhs_type.getShape()) return matchFailure();
|
if (lhs_type.getShape() != rhs_type.getShape()) return matchFailure();
|
||||||
|
|
||||||
if (!lhs_type.getElementType().isa<IntegerType>() ||
|
if (!lhs_type.getElementType().isSignlessInteger() ||
|
||||||
!rhs_type.getElementType().isa<IntegerType>())
|
!rhs_type.getElementType().isSignlessInteger())
|
||||||
return matchFailure();
|
return matchFailure();
|
||||||
|
|
||||||
auto comparison_direction = op.comparison_direction();
|
auto comparison_direction = op.comparison_direction();
|
||||||
@ -113,7 +113,8 @@ class ConvertIotaOp : public OpRewritePattern<xla_hlo::IotaOp> {
|
|||||||
PatternRewriter &rewriter) const override {
|
PatternRewriter &rewriter) const override {
|
||||||
auto output_type = op.getType().cast<ShapedType>();
|
auto output_type = op.getType().cast<ShapedType>();
|
||||||
// TODO(prakalps): Handle FP and ComplexType iota ops.
|
// TODO(prakalps): Handle FP and ComplexType iota ops.
|
||||||
if (!output_type.getElementType().isa<IntegerType>()) return matchFailure();
|
if (!output_type.getElementType().isSignlessInteger())
|
||||||
|
return matchFailure();
|
||||||
auto output_size = output_type.getNumElements();
|
auto output_size = output_type.getNumElements();
|
||||||
auto dimension = op.iota_dimension().getSExtValue();
|
auto dimension = op.iota_dimension().getSExtValue();
|
||||||
auto max_dim_size = output_type.getDimSize(dimension);
|
auto max_dim_size = output_type.getDimSize(dimension);
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
// This is the legalization pattern definition file for XLA to StandardOps.
|
// This is the legalization pattern definition file for XLA to StandardOps.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "absl/memory/memory.h"
|
#include "absl/memory/memory.h"
|
||||||
#include "mlir/Dialect/AffineOps/AffineOps.h" // TF:llvm-project
|
#include "mlir/Dialect/AffineOps/AffineOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
|
@ -22,7 +22,7 @@ limitations under the License.
|
|||||||
#include "mlir/Dialect/GPU/GPUDialect.h" // TF:llvm-project
|
#include "mlir/Dialect/GPU/GPUDialect.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/LoopOps/LoopOps.h" // TF:llvm-project
|
#include "mlir/Dialect/LoopOps/LoopOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
// equivalent real value operations.
|
// equivalent real value operations.
|
||||||
|
|
||||||
include "mlir/IR/OpBase.td"
|
include "mlir/IR/OpBase.td"
|
||||||
include "mlir/Dialect/StandardOps/Ops.td"
|
include "mlir/Dialect/StandardOps/IR/Ops.td"
|
||||||
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
include "tensorflow/compiler/mlir/xla/ir/hlo_ops.td"
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
|
@ -18,7 +18,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "llvm/ADT/StringRef.h"
|
#include "llvm/ADT/StringRef.h"
|
||||||
#include "llvm/ADT/StringSwitch.h"
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "tensorflow/compiler/mlir/xla/ir/hlo_ops.h"
|
#include "tensorflow/compiler/mlir/xla/ir/hlo_ops.h"
|
||||||
#include "tensorflow/compiler/mlir/xla/ir/lhlo_ops.h"
|
#include "tensorflow/compiler/mlir/xla/ir/lhlo_ops.h"
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ inline Value MapXlaCompareOpToStdScalarOp(XLACompareOpTy xla_op,
|
|||||||
const auto& lhs = args[0];
|
const auto& lhs = args[0];
|
||||||
const auto& rhs = args[1];
|
const auto& rhs = args[1];
|
||||||
Type element_type = lhs.getType();
|
Type element_type = lhs.getType();
|
||||||
if (element_type.isa<IntegerType>()) {
|
if (element_type.isSignlessInteger()) {
|
||||||
Optional<CmpIPredicate> predicate =
|
Optional<CmpIPredicate> predicate =
|
||||||
getCmpPredicate<CmpIPredicate>(xla_op.comparison_direction());
|
getCmpPredicate<CmpIPredicate>(xla_op.comparison_direction());
|
||||||
assert(predicate.hasValue() && "expected valid comparison direction");
|
assert(predicate.hasValue() && "expected valid comparison direction");
|
||||||
@ -288,8 +288,8 @@ template <>
|
|||||||
inline Value MapXlaOpToStdScalarOp<xla_lhlo::ConvertOp>(
|
inline Value MapXlaOpToStdScalarOp<xla_lhlo::ConvertOp>(
|
||||||
xla_lhlo::ConvertOp xla_op, ArrayRef<Type> result_types,
|
xla_lhlo::ConvertOp xla_op, ArrayRef<Type> result_types,
|
||||||
ArrayRef<Value> args, OpBuilder* b) {
|
ArrayRef<Value> args, OpBuilder* b) {
|
||||||
const Type& sourceType = args.front().getType();
|
Type sourceType = args.front().getType();
|
||||||
const Type& targetType = result_types.front();
|
Type targetType = result_types.front();
|
||||||
|
|
||||||
if (mlir::SIToFPOp::areCastCompatible(sourceType, targetType)) {
|
if (mlir::SIToFPOp::areCastCompatible(sourceType, targetType)) {
|
||||||
return b->create<mlir::SIToFPOp>(xla_op.getLoc(), result_types, args,
|
return b->create<mlir::SIToFPOp>(xla_op.getLoc(), result_types, args,
|
||||||
@ -307,7 +307,7 @@ inline Value MapXlaOpToStdScalarOp<xla_lhlo::ConvertOp>(
|
|||||||
// No conversion is needed for the same width floats
|
// No conversion is needed for the same width floats
|
||||||
return args.front();
|
return args.front();
|
||||||
}
|
}
|
||||||
if (sourceType.isa<IntegerType>() && targetType.isa<IntegerType>()) {
|
if (sourceType.isSignlessInteger() && targetType.isSignlessInteger()) {
|
||||||
IntegerType src = sourceType.cast<IntegerType>();
|
IntegerType src = sourceType.cast<IntegerType>();
|
||||||
IntegerType res = targetType.cast<IntegerType>();
|
IntegerType res = targetType.cast<IntegerType>();
|
||||||
if (src.getWidth() > res.getWidth()) {
|
if (src.getWidth() > res.getWidth()) {
|
||||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
||||||
|
@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
#include "mlir/IR/MLIRContext.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Operation.h" // TF:llvm-project
|
#include "mlir/IR/Operation.h" // TF:llvm-project
|
||||||
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
#include "mlir/IR/PatternMatch.h" // TF:llvm-project
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/APInt.h"
|
#include "llvm/ADT/APInt.h"
|
||||||
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Linalg/IR/LinalgTypes.h" // TF:llvm-project
|
#include "mlir/Dialect/Linalg/IR/LinalgTypes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
@ -83,7 +83,7 @@ class PointwiseToLinalgConverter : public OpConversionPattern<OpTy> {
|
|||||||
emitError(loc, "lhlo to linalg conversion expects ranked args");
|
emitError(loc, "lhlo to linalg conversion expects ranked args");
|
||||||
return ConversionPattern::matchFailure();
|
return ConversionPattern::matchFailure();
|
||||||
}
|
}
|
||||||
if (!argType.getElementType().isIntOrFloat()) {
|
if (!argType.getElementType().isSignlessIntOrFloat()) {
|
||||||
return ConversionPattern::matchFailure();
|
return ConversionPattern::matchFailure();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ class ScalarPointwiseToStandardConverter : public OpConversionPattern<LhloOp> {
|
|||||||
auto loc = lhlo_op.getLoc();
|
auto loc = lhlo_op.getLoc();
|
||||||
auto argType =
|
auto argType =
|
||||||
lhlo_op.getOperand(0).getType().template dyn_cast<ShapedType>();
|
lhlo_op.getOperand(0).getType().template dyn_cast<ShapedType>();
|
||||||
if (!argType || !argType.getElementType().isIntOrFloat() ||
|
if (!argType || !argType.getElementType().isSignlessIntOrFloat() ||
|
||||||
(argType.getRank() != 0)) {
|
(argType.getRank() != 0)) {
|
||||||
return ConversionPattern::matchFailure();
|
return ConversionPattern::matchFailure();
|
||||||
}
|
}
|
||||||
@ -385,7 +385,7 @@ class IotaConverter : public OpConversionPattern<xla_lhlo::IotaOp> {
|
|||||||
if (!resultMemrefType) return matchFailure();
|
if (!resultMemrefType) return matchFailure();
|
||||||
|
|
||||||
auto resultElementType = resultMemrefType.getElementType();
|
auto resultElementType = resultMemrefType.getElementType();
|
||||||
if (!resultElementType.isIntOrFloat()) return matchFailure();
|
if (!resultElementType.isSignlessIntOrFloat()) return matchFailure();
|
||||||
|
|
||||||
// Construct the indexing maps needed for linalg.generic ops.
|
// Construct the indexing maps needed for linalg.generic ops.
|
||||||
unsigned nloops = resultMemrefType.getRank();
|
unsigned nloops = resultMemrefType.getRank();
|
||||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
|||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "mlir/Dialect/AffineOps/AffineOps.h" // TF:llvm-project
|
#include "mlir/Dialect/AffineOps/AffineOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
#include "mlir/IR/AffineExpr.h" // TF:llvm-project
|
||||||
#include "mlir/IR/AffineMap.h" // TF:llvm-project
|
#include "mlir/IR/AffineMap.h" // TF:llvm-project
|
||||||
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#include "tensorflow/compiler/xla/service/mlir_gpu/hlo_dialect_emitter.h"
|
#include "tensorflow/compiler/xla/service/mlir_gpu/hlo_dialect_emitter.h"
|
||||||
|
|
||||||
#include "llvm/ADT/STLExtras.h"
|
#include "llvm/ADT/STLExtras.h"
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
#include "mlir/IR/StandardTypes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Types.h" // TF:llvm-project
|
#include "mlir/IR/Types.h" // TF:llvm-project
|
||||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
|
|
||||||
#include "tensorflow/compiler/xla/service/mlir_gpu/inject_errors_pass.h"
|
#include "tensorflow/compiler/xla/service/mlir_gpu/inject_errors_pass.h"
|
||||||
|
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h"
|
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||||
|
|
||||||
namespace mlir {
|
namespace mlir {
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
|||||||
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
#include "mlir/Dialect/Linalg/IR/LinalgOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/Linalg/Passes.h" // TF:llvm-project
|
#include "mlir/Dialect/Linalg/Passes.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/LoopOps/LoopOps.h" // TF:llvm-project
|
#include "mlir/Dialect/LoopOps/LoopOps.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
#include "mlir/IR/BlockAndValueMapping.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
#include "tensorflow/compiler/xla/service/mlir_gpu/lhlo_dialect_emitter.h"
|
#include "tensorflow/compiler/xla/service/mlir_gpu/lhlo_dialect_emitter.h"
|
||||||
|
|
||||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h" // TF:llvm-project
|
#include "mlir/Dialect/LLVMIR/LLVMDialect.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
|||||||
#include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h" // TF:llvm-project
|
#include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/GPU/GPUDialect.h" // TF:llvm-project
|
#include "mlir/Dialect/GPU/GPUDialect.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/LLVMIR/LLVMDialect.h" // TF:llvm-project
|
#include "mlir/Dialect/LLVMIR/LLVMDialect.h" // TF:llvm-project
|
||||||
#include "mlir/Dialect/StandardOps/Ops.h" // TF:llvm-project
|
#include "mlir/Dialect/StandardOps/IR/Ops.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
#include "mlir/IR/Attributes.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||||
|
@ -597,8 +597,8 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Check out LLVM and MLIR from llvm-project.
|
# Check out LLVM and MLIR from llvm-project.
|
||||||
LLVM_COMMIT = "78be61871704a451a5d9462d7e96ed6c982746d4"
|
LLVM_COMMIT = "fee41517fe0f7ff9f0e204dd9200ebf32ca03cb8"
|
||||||
LLVM_SHA256 = "35ce5950da1c83c91ab10ea5ac6e88c46fca160044cfd9dc6e50c83879d963ef"
|
LLVM_SHA256 = "dceb84396e8c30348dbd426c53eeae6657f5c67a24830c9a610a037fffcbe5cf"
|
||||||
LLVM_URLS = [
|
LLVM_URLS = [
|
||||||
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT),
|
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT),
|
||||||
"https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT),
|
"https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT),
|
||||||
|
3
third_party/llvm/llvm.autogenerated.BUILD
vendored
3
third_party/llvm/llvm.autogenerated.BUILD
vendored
@ -443,7 +443,8 @@ llvm_target_list = [
|
|||||||
("-gen-dag-isel", "lib/Target/AArch64/AArch64GenDAGISel.inc"),
|
("-gen-dag-isel", "lib/Target/AArch64/AArch64GenDAGISel.inc"),
|
||||||
("-gen-fast-isel", "lib/Target/AArch64/AArch64GenFastISel.inc"),
|
("-gen-fast-isel", "lib/Target/AArch64/AArch64GenFastISel.inc"),
|
||||||
("-gen-global-isel", "lib/Target/AArch64/AArch64GenGlobalISel.inc"),
|
("-gen-global-isel", "lib/Target/AArch64/AArch64GenGlobalISel.inc"),
|
||||||
("-gen-global-isel-combiner -combiners=AArch64PreLegalizerCombinerHelper", "lib/Target/AArch64/AArch64GenGICombiner.inc"),
|
("-gen-global-isel-combiner -combiners=AMDGPUPreLegalizerCombinerHelper", "lib/Target/AMDGPU/AMDGPUGenPreLegalizeGICombiner.inc"),
|
||||||
|
("-gen-global-isel-combiner -combiners=AMDGPUPostLegalizerCombinerHelper", "lib/Target/AMDGPU/AMDGPUGenPostLegalizeGICombiner.inc"),
|
||||||
("-gen-callingconv", "lib/Target/AArch64/AArch64GenCallingConv.inc"),
|
("-gen-callingconv", "lib/Target/AArch64/AArch64GenCallingConv.inc"),
|
||||||
("-gen-subtarget", "lib/Target/AArch64/AArch64GenSubtargetInfo.inc"),
|
("-gen-subtarget", "lib/Target/AArch64/AArch64GenSubtargetInfo.inc"),
|
||||||
("-gen-disassembler", "lib/Target/AArch64/AArch64GenDisassemblerTables.inc"),
|
("-gen-disassembler", "lib/Target/AArch64/AArch64GenDisassemblerTables.inc"),
|
||||||
|
26
third_party/mlir/BUILD
vendored
26
third_party/mlir/BUILD
vendored
@ -199,15 +199,17 @@ gentbl(
|
|||||||
|
|
||||||
cc_library(
|
cc_library(
|
||||||
name = "LoopOpsTransforms",
|
name = "LoopOpsTransforms",
|
||||||
srcs = ["lib/Dialect/LoopOps/Transforms/ParallelLoopFusion.cpp"],
|
srcs = glob(["lib/Dialect/LoopOps/Transforms/*.cpp"]),
|
||||||
hdrs = ["include/mlir/Dialect/LoopOps/Passes.h"],
|
hdrs = ["include/mlir/Dialect/LoopOps/Passes.h"],
|
||||||
includes = ["include"],
|
includes = ["include"],
|
||||||
deps = [
|
deps = [
|
||||||
|
":AffineOps",
|
||||||
":IR",
|
":IR",
|
||||||
":LoopOps",
|
":LoopOps",
|
||||||
":Pass",
|
":Pass",
|
||||||
":StandardOps",
|
":StandardOps",
|
||||||
":Transforms",
|
":Transforms",
|
||||||
|
"@llvm-project//llvm:support",
|
||||||
],
|
],
|
||||||
alwayslink = 1,
|
alwayslink = 1,
|
||||||
)
|
)
|
||||||
@ -216,7 +218,7 @@ filegroup(
|
|||||||
name = "StdOpsTdFiles",
|
name = "StdOpsTdFiles",
|
||||||
srcs = [
|
srcs = [
|
||||||
"include/mlir/Analysis/CallInterfaces.td",
|
"include/mlir/Analysis/CallInterfaces.td",
|
||||||
"include/mlir/Dialect/StandardOps/Ops.td",
|
"include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
"include/mlir/IR/OpAsmInterface.td",
|
"include/mlir/IR/OpAsmInterface.td",
|
||||||
":OpBaseTdFiles",
|
":OpBaseTdFiles",
|
||||||
],
|
],
|
||||||
@ -228,23 +230,23 @@ gentbl(
|
|||||||
tbl_outs = [
|
tbl_outs = [
|
||||||
(
|
(
|
||||||
"-gen-op-decls",
|
"-gen-op-decls",
|
||||||
"include/mlir/Dialect/StandardOps/Ops.h.inc",
|
"include/mlir/Dialect/StandardOps/IR/Ops.h.inc",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"-gen-op-defs",
|
"-gen-op-defs",
|
||||||
"include/mlir/Dialect/StandardOps/Ops.cpp.inc",
|
"include/mlir/Dialect/StandardOps/IR/Ops.cpp.inc",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"-gen-enum-decls",
|
"-gen-enum-decls",
|
||||||
"include/mlir/Dialect/StandardOps/OpsEnums.h.inc",
|
"include/mlir/Dialect/StandardOps/IR/OpsEnums.h.inc",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"-gen-enum-defs",
|
"-gen-enum-defs",
|
||||||
"include/mlir/Dialect/StandardOps/OpsEnums.cpp.inc",
|
"include/mlir/Dialect/StandardOps/IR/OpsEnums.cpp.inc",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
tblgen = ":mlir-tblgen",
|
tblgen = ":mlir-tblgen",
|
||||||
td_file = "include/mlir/Dialect/StandardOps/Ops.td",
|
td_file = "include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
td_srcs = [
|
td_srcs = [
|
||||||
":StdOpsTdFiles",
|
":StdOpsTdFiles",
|
||||||
],
|
],
|
||||||
@ -384,13 +386,13 @@ cc_library(
|
|||||||
name = "StandardOps",
|
name = "StandardOps",
|
||||||
srcs = glob(
|
srcs = glob(
|
||||||
[
|
[
|
||||||
"lib/Dialect/StandardOps/*.cpp",
|
"lib/Dialect/StandardOps/IR/*.cpp",
|
||||||
"lib/Dialect/StandardOps/*.h",
|
"lib/Dialect/StandardOps/IR/*.h",
|
||||||
"lib/Dialect/StandardOps/EDSC/*.cpp",
|
"lib/Dialect/StandardOps/EDSC/*.cpp",
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
hdrs = glob([
|
hdrs = glob([
|
||||||
"include/mlir/Dialect/StandardOps/*.h",
|
"include/mlir/Dialect/StandardOps/IR/*.h",
|
||||||
"include/mlir/Dialect/StandardOps/EDSC/*.h",
|
"include/mlir/Dialect/StandardOps/EDSC/*.h",
|
||||||
]) + [
|
]) + [
|
||||||
"include/mlir/Analysis/CallInterfaces.h",
|
"include/mlir/Analysis/CallInterfaces.h",
|
||||||
@ -1693,6 +1695,7 @@ cc_library(
|
|||||||
"@llvm-project//mlir/test:TestDialect",
|
"@llvm-project//mlir/test:TestDialect",
|
||||||
"@llvm-project//mlir/test:TestIR",
|
"@llvm-project//mlir/test:TestIR",
|
||||||
"@llvm-project//mlir/test:TestPass",
|
"@llvm-project//mlir/test:TestPass",
|
||||||
|
"@llvm-project//mlir/test:TestSPIRV",
|
||||||
"@llvm-project//mlir/test:TestTransforms",
|
"@llvm-project//mlir/test:TestTransforms",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@ -1820,6 +1823,7 @@ cc_binary(
|
|||||||
"@llvm-project//mlir/test:TestDialect",
|
"@llvm-project//mlir/test:TestDialect",
|
||||||
"@llvm-project//mlir/test:TestIR",
|
"@llvm-project//mlir/test:TestIR",
|
||||||
"@llvm-project//mlir/test:TestPass",
|
"@llvm-project//mlir/test:TestPass",
|
||||||
|
"@llvm-project//mlir/test:TestSPIRV",
|
||||||
"@llvm-project//mlir/test:TestTransforms",
|
"@llvm-project//mlir/test:TestTransforms",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@ -2519,7 +2523,7 @@ exports_files(
|
|||||||
"include/mlir/Analysis/CallInterfaces.h",
|
"include/mlir/Analysis/CallInterfaces.h",
|
||||||
"include/mlir/Analysis/CallInterfaces.td",
|
"include/mlir/Analysis/CallInterfaces.td",
|
||||||
"include/mlir/Dialect/LLVMIR/LLVMOpBase.td",
|
"include/mlir/Dialect/LLVMIR/LLVMOpBase.td",
|
||||||
"include/mlir/Dialect/StandardOps/Ops.td",
|
"include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||||
"include/mlir/IR/OpAsmInterface.td",
|
"include/mlir/IR/OpAsmInterface.td",
|
||||||
"include/mlir/IR/OpBase.td",
|
"include/mlir/IR/OpBase.td",
|
||||||
"include/mlir/Transforms/InliningUtils.h",
|
"include/mlir/Transforms/InliningUtils.h",
|
||||||
|
13
third_party/mlir/test.BUILD
vendored
13
third_party/mlir/test.BUILD
vendored
@ -166,3 +166,16 @@ cc_library(
|
|||||||
"@llvm-project//mlir:VectorToLoops",
|
"@llvm-project//mlir:VectorToLoops",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "TestSPIRV",
|
||||||
|
srcs = glob([
|
||||||
|
"lib/Dialect/SPIRV/*.cpp",
|
||||||
|
]),
|
||||||
|
deps = [
|
||||||
|
"@llvm-project//mlir:IR",
|
||||||
|
"@llvm-project//mlir:Pass",
|
||||||
|
"@llvm-project//mlir:SPIRVDialect",
|
||||||
|
"@llvm-project//mlir:SPIRVLowering",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user