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 "mlir/Dialect/QuantOps/QuantOps.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/Builders.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/ToolOutputFile.h"
|
||||
#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/Function.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.
|
||||
static StatusOr<tflite::TensorType> GetTFLiteType(Type type,
|
||||
bool is_signed = true) {
|
||||
if (!is_signed && type.isInteger(8)) {
|
||||
if (!is_signed && type.isSignlessInteger(8)) {
|
||||
return tflite::TensorType_UINT8;
|
||||
}
|
||||
if (!is_signed) {
|
||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/SetVector.h"
|
||||
#include "llvm/ADT/SmallVector.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/Builders.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],
|
||||
float_calculate, is_commutative);
|
||||
|
||||
if (elemType.isa<IntegerType>())
|
||||
if (elemType.isSignlessInteger())
|
||||
return ConstFoldBinaryOp<IntegerAttr>(result_type, operands[0], operands[1],
|
||||
int_calculate, is_commutative);
|
||||
|
||||
@ -1560,7 +1560,7 @@ OpFoldResult RangeOp::fold(ArrayRef<Attribute> operands) {
|
||||
limit_tensor.getType().getRank() == 0 &&
|
||||
delta_tensor.getType().getRank() == 0);
|
||||
Type elem_type = getType().cast<ShapedType>().getElementType();
|
||||
if (elem_type.isa<IntegerType>()) {
|
||||
if (elem_type.isSignlessInteger()) {
|
||||
auto start_attr = start_tensor.getValue<IntegerAttr>({});
|
||||
auto limit_attr = limit_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
|
||||
// DenseElementsAttr does not support it.
|
||||
if (!getType().cast<ShapedType>().getElementType().isIntOrFloat())
|
||||
if (!getType().cast<ShapedType>().getElementType().isSignlessIntOrFloat())
|
||||
return nullptr;
|
||||
|
||||
assert(perm_tensor.getType().getRank() == 1);
|
||||
|
@ -25,7 +25,7 @@ limitations under the License.
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "mlir/Dialect/QuantOps/FakeQuantSupport.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/AffineMap.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 "mlir/Dialect/QuantOps/QuantOps.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/Builders.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/QuantOps.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/BlockAndValueMapping.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();
|
||||
if (auto op_inst = dyn_cast_or_null<DQ>(operand.getDefiningOp())) {
|
||||
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
|
||||
// DQ op in the pattern.
|
||||
inputs.push_back(operand);
|
||||
@ -225,7 +225,7 @@ struct QuantizationPattern : public RewritePattern {
|
||||
auto user = llvm::cast<Q>(*result.user_begin());
|
||||
outputs_replaced.insert({user.output(), enumerated_result.index()});
|
||||
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
|
||||
// D op in the pattern.
|
||||
outputs_replaced.insert({result, enumerated_result.index()});
|
||||
|
@ -26,7 +26,7 @@ limitations under the License.
|
||||
#include "llvm/Support/Casting.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#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/MLIRContext.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.
|
||||
==============================================================================*/
|
||||
|
||||
#include "mlir/Dialect/StandardOps/Ops.h"
|
||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||
#include "mlir/IR/AffineExpr.h"
|
||||
#include "mlir/IR/AffineMap.h"
|
||||
#include "mlir/IR/Attributes.h"
|
||||
|
@ -22,7 +22,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/StringSwitch.h"
|
||||
#include "llvm/Support/Casting.h"
|
||||
#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/Block.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/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/Block.h" // TF:llvm-project
|
||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||
// TFLite legalization patterns
|
||||
|
||||
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/tensorflow/ir/tf_ops.td"
|
||||
|
||||
@ -341,7 +341,7 @@ def : Pat<(TF_MatrixDiagOp $diagonal), (TFL_MatrixDiagOp $diagonal)>;
|
||||
class I32VectorElementsAttr<int len> : ElementsAttrBase<
|
||||
CPred<"$_self.isa<DenseIntElementsAttr>() &&"
|
||||
"$_self.cast<DenseIntElementsAttr>().getType()."
|
||||
"getElementType().isInteger(32)">,
|
||||
"getElementType().isSignlessInteger(32)">,
|
||||
"32-bit int elements attribute of shape [" # len # "]"> {
|
||||
|
||||
let storageType = [{ DenseIntElementsAttr }];
|
||||
|
@ -255,7 +255,7 @@ PatternMatchResult ConvertTFReshapeOp::matchAndRewrite(
|
||||
|
||||
ShapedType shape_type = shape.getType().cast<ShapedType>();
|
||||
// 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();
|
||||
IntegerType new_ele_type = rewriter.getIntegerType(32);
|
||||
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.
|
||||
|
||||
#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/Builders.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/Optional.h"
|
||||
#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/MLIRContext.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/Debug.h"
|
||||
#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/Block.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 {
|
||||
Type dtype = op.element_dtype();
|
||||
if (!(dtype.isF16() || dtype.isF32() || dtype.isF64() ||
|
||||
dtype.isInteger(1) || dtype.isInteger(8) || dtype.isInteger(16) ||
|
||||
dtype.isInteger(32) || dtype.isInteger(64))) {
|
||||
dtype.isInteger(1) || dtype.isSignlessInteger(8) ||
|
||||
dtype.isSignlessInteger(16) || dtype.isSignlessInteger(32) ||
|
||||
dtype.isSignlessInteger(64))) {
|
||||
op.emitError(
|
||||
"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 "
|
||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/StringSwitch.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/Matchers.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.
|
||||
|
||||
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/tensorflow/ir/tf_ops.td"
|
||||
|
||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||
// This is the quantization pattern definition file for TensorFlow Lite.
|
||||
|
||||
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"
|
||||
|
||||
// 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/CommandLine.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/Builders.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.
|
||||
|
||||
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"
|
||||
|
||||
// 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/StringMap.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/Block.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/Dialect/StandardOps/Ops.td"
|
||||
include "mlir/Dialect/StandardOps/IR/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/SetVector.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/Identifier.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/SetVector.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/Identifier.h" // TF:llvm-project
|
||||
#include "mlir/IR/Location.h" // TF:llvm-project
|
||||
|
@ -38,7 +38,7 @@ FloatAttr GetSingleElementAsFloatOrSelf(Attribute attr) {
|
||||
|
||||
IntegerAttr ExtractSingleElementAsInteger(ElementsAttr attr) {
|
||||
if (attr.getType().getNumElements() != 1 ||
|
||||
!attr.getType().getElementType().isa<IntegerType>()) {
|
||||
!attr.getType().getElementType().isSignlessInteger()) {
|
||||
return {};
|
||||
}
|
||||
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_
|
||||
#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 TFL {
|
||||
|
@ -21,7 +21,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/Casting.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/Builders.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/StringExtras.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/Builders.h" // TF:llvm-project
|
||||
#include "mlir/IR/Function.h" // TF:llvm-project
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||
|
||||
#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"
|
||||
|
||||
namespace mlir {
|
||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||
#ifndef 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 TFL {
|
||||
|
@ -19,7 +19,7 @@ limitations under the License.
|
||||
#ifndef 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
|
||||
|
||||
namespace mlir {
|
||||
|
@ -90,7 +90,7 @@ gentbl(
|
||||
td_file = "ir/tf_saved_model_ops.td",
|
||||
td_srcs = [
|
||||
"@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_srcs = [
|
||||
"@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_srcs = [
|
||||
"@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/Support/Casting.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/IR/Attributes.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
|
||||
def TF_ElementType : Type<Or<[AnyFloat.predicate,
|
||||
AnyInteger.predicate,
|
||||
AnySignlessInteger.predicate,
|
||||
AnyComplex.predicate,
|
||||
TF_TFDialectType.predicate]>,
|
||||
"tf.dtype">;
|
||||
|
@ -35,7 +35,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/StringSwitch.h"
|
||||
#include "llvm/ADT/iterator_range.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/IR/Attributes.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();
|
||||
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")
|
||||
<< variadic_idx_str;
|
||||
|
||||
|
@ -91,7 +91,7 @@ class TensorFlowType : public Type {
|
||||
// Returns true if the specified type is a valid TensorFlow element type.
|
||||
static inline bool IsValidTFElementType(Type type) {
|
||||
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.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||
// `tf_device.launch` with equivalent `tf_device.launch_func` operations.
|
||||
|
||||
#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/Block.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.
|
||||
==============================================================================*/
|
||||
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"
|
||||
|
||||
// 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/SmallVector.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/Builders.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/SmallVector.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/Builders.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/Debug.h"
|
||||
#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/Block.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
|
||||
// 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/Builders.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.
|
||||
==============================================================================*/
|
||||
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"
|
||||
|
||||
// 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 RealTensor : TensorOf<[AnyInteger, AnyFloat]>;
|
||||
def RealTensor : TensorOf<[AnySignlessInteger, AnyFloat]>;
|
||||
|
||||
def : Pat<(TF_SquareOp $val), (TF_MulOp $val, $val)>;
|
||||
|
||||
@ -179,7 +179,7 @@ def LowerL2LossOp :
|
||||
// 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_ConstOp (GetScalarOfType<0> $input)))>;
|
||||
|
||||
@ -224,6 +224,6 @@ def CreateTFShapeOp : NativeCodeCall<
|
||||
|
||||
// TODO(hinsu): Support inputs of TensorList types.
|
||||
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)),
|
||||
(CreateTFShapeOp $src_op, $input, /*use 32bit*/ConstBoolAttrFalse))>;
|
||||
|
@ -14,7 +14,7 @@ limitations under the License.
|
||||
==============================================================================*/
|
||||
#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/Builders.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.
|
||||
==============================================================================*/
|
||||
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"
|
||||
|
||||
def IsDataFormatNHWC : ConstantAttr<TF_ConvnetDataFormatAttr, "NHWC">;
|
||||
|
@ -27,7 +27,7 @@ limitations under the License.
|
||||
|
||||
#include "llvm/ADT/StringRef.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/StandardTypes.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/SmallVector.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/Block.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/Debug.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/Builders.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/StringRef.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/Builders.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/STLExtras.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/Builders.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/Sequence.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/Operation.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/Support/Debug.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/Operation.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/StringRef.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/Builders.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/Support/raw_ostream.h"
|
||||
#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/Builders.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_
|
||||
#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/lib/core/status.h"
|
||||
|
||||
|
@ -14,7 +14,7 @@ limitations under the License.
|
||||
==============================================================================*/
|
||||
|
||||
#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/Operation.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/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/MLIRContext.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 "llvm/ADT/StringRef.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/Function.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/SmallVector.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/BlockAndValueMapping.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 "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/Location.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.
|
||||
ShapedType attr_ty = start_indices.getType();
|
||||
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)
|
||||
return ty;
|
||||
|
||||
|
@ -52,7 +52,7 @@ def HLO_FpTensor : TensorOf<[AnyFloat]>;
|
||||
|
||||
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]>;
|
||||
|
||||
@ -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
|
||||
// MLIR.
|
||||
def HLO_DimensionTensor : ShapedContainerType<
|
||||
[AnyInteger], And<[IsTensorTypePred, HasAnyRankOfPred<[1]>]>,
|
||||
[AnySignlessInteger], And<[IsTensorTypePred, HasAnyRankOfPred<[1]>]>,
|
||||
"a 1D tensor of dimensions">;
|
||||
|
||||
// In general, static shaped tensor constraints should be avoided unless
|
||||
// it is for a legacy op which is only correct with static shapes.
|
||||
def HLO_StaticShapeTensor : StaticShapeTensorOf<[
|
||||
AnyFloat, AnyInteger, AnyComplex]>;
|
||||
AnyFloat, AnySignlessInteger, AnyComplex]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// XLA combined type definitions.
|
||||
@ -784,7 +784,7 @@ def HLO_ScalarsToDimensionTensorOp : HLO_Op<"scalars_to_dimension_tensor",
|
||||
compute shape arguments to dynamic operations.
|
||||
}];
|
||||
|
||||
let arguments = (ins Variadic<AnyInteger>);
|
||||
let arguments = (ins Variadic<AnySignlessInteger>);
|
||||
let results = (outs HLO_DimensionTensor);
|
||||
|
||||
// Cannot be exported to legacy formats.
|
||||
|
@ -40,7 +40,7 @@ static ElementsAttr getSplat(Builder* b, Value val, T constant) {
|
||||
|
||||
// Handle integer elements.
|
||||
Attribute elementAttr;
|
||||
if (valElementType.isa<IntegerType>())
|
||||
if (valElementType.isSignlessInteger())
|
||||
elementAttr = b->getIntegerAttr(valElementType, constant);
|
||||
else if (valElementType.isa<FloatType>())
|
||||
elementAttr = b->getFloatAttr(valElementType, constant);
|
||||
|
@ -42,7 +42,7 @@ def LHLO_PredBuffer : MemRefOf<[HLO_Pred]>;
|
||||
// Any integer or floating-point tensor types
|
||||
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]>;
|
||||
|
||||
|
@ -27,7 +27,7 @@ limitations under the License.
|
||||
#include "llvm/Support/SMLoc.h"
|
||||
#include "llvm/Support/SourceMgr.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/Function.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
|
||||
<< " 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()
|
||||
<< "requires arg " << padding_arg_index
|
||||
<< " 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.
|
||||
|
||||
#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/BlockAndValueMapping.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_
|
||||
#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/Builders.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/StringSwitch.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/BlockAndValueMapping.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/STLExtras.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/IR/Attributes.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) {
|
||||
MLIRContext *ctx = input_type.getContext();
|
||||
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 input_type;
|
||||
}
|
||||
@ -1274,7 +1274,7 @@ class ConvertMaxPoolOp : public OpRewritePattern<TF::MaxPoolOp> {
|
||||
PatternRewriter &rewriter) const override {
|
||||
Type element_type =
|
||||
op.input().getType().cast<TensorType>().getElementType();
|
||||
if (!element_type.isIntOrFloat()) return matchFailure();
|
||||
if (!element_type.isSignlessIntOrFloat()) return matchFailure();
|
||||
Location loc = op.getLoc();
|
||||
ConstOp init = GetMinValueForType(element_type, loc, &rewriter);
|
||||
|
||||
@ -2248,7 +2248,7 @@ class ConvertArgMinMaxOp : public OpRewritePattern<OpTy> {
|
||||
Type input_element_type = input_type.getElementType();
|
||||
// TODO(bixia): Clarify whether tf.ArgMax supports complex data types. If
|
||||
// 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();
|
||||
Value init_value =
|
||||
|
@ -28,7 +28,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/SmallSet.h"
|
||||
#include "llvm/ADT/StringSet.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/BlockAndValueMapping.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.
|
||||
|
||||
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/xla/ir/hlo_ops.td"
|
||||
|
||||
@ -504,8 +504,8 @@ def : Pat<(TF_SignOp $x),
|
||||
)>;
|
||||
|
||||
def BothElementTypesSameWidthIntOrFloat : Constraint<CPred<
|
||||
"getElementTypeOrSelf($0.getType()).isIntOrFloat() && "
|
||||
"getElementTypeOrSelf($1.getType()).isIntOrFloat() && "
|
||||
"getElementTypeOrSelf($0.getType()).isSignlessIntOrFloat() && "
|
||||
"getElementTypeOrSelf($1.getType()).isSignlessIntOrFloat() && "
|
||||
"getElementTypeOrSelf($0.getType()).getIntOrFloatBitWidth() == "
|
||||
"getElementTypeOrSelf($1.getType()).getIntOrFloatBitWidth()">,
|
||||
"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.
|
||||
|
||||
#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/PatternMatch.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.
|
||||
if (lhs_type.getShape() != rhs_type.getShape()) return matchFailure();
|
||||
|
||||
if (!lhs_type.getElementType().isa<IntegerType>() ||
|
||||
!rhs_type.getElementType().isa<IntegerType>())
|
||||
if (!lhs_type.getElementType().isSignlessInteger() ||
|
||||
!rhs_type.getElementType().isSignlessInteger())
|
||||
return matchFailure();
|
||||
|
||||
auto comparison_direction = op.comparison_direction();
|
||||
@ -113,7 +113,8 @@ class ConvertIotaOp : public OpRewritePattern<xla_hlo::IotaOp> {
|
||||
PatternRewriter &rewriter) const override {
|
||||
auto output_type = op.getType().cast<ShapedType>();
|
||||
// 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 dimension = op.iota_dimension().getSExtValue();
|
||||
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.
|
||||
|
||||
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"
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||
|
||||
#include "absl/memory/memory.h"
|
||||
#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/Location.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/Linalg/IR/LinalgOps.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/BlockAndValueMapping.h" // TF:llvm-project
|
||||
#include "mlir/IR/Builders.h" // TF:llvm-project
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||
// equivalent real value operations.
|
||||
|
||||
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"
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||
|
||||
#include "llvm/ADT/STLExtras.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/Function.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/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/lhlo_ops.h"
|
||||
|
||||
@ -206,7 +206,7 @@ inline Value MapXlaCompareOpToStdScalarOp(XLACompareOpTy xla_op,
|
||||
const auto& lhs = args[0];
|
||||
const auto& rhs = args[1];
|
||||
Type element_type = lhs.getType();
|
||||
if (element_type.isa<IntegerType>()) {
|
||||
if (element_type.isSignlessInteger()) {
|
||||
Optional<CmpIPredicate> predicate =
|
||||
getCmpPredicate<CmpIPredicate>(xla_op.comparison_direction());
|
||||
assert(predicate.hasValue() && "expected valid comparison direction");
|
||||
@ -288,8 +288,8 @@ template <>
|
||||
inline Value MapXlaOpToStdScalarOp<xla_lhlo::ConvertOp>(
|
||||
xla_lhlo::ConvertOp xla_op, ArrayRef<Type> result_types,
|
||||
ArrayRef<Value> args, OpBuilder* b) {
|
||||
const Type& sourceType = args.front().getType();
|
||||
const Type& targetType = result_types.front();
|
||||
Type sourceType = args.front().getType();
|
||||
Type targetType = result_types.front();
|
||||
|
||||
if (mlir::SIToFPOp::areCastCompatible(sourceType, targetType)) {
|
||||
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
|
||||
return args.front();
|
||||
}
|
||||
if (sourceType.isa<IntegerType>() && targetType.isa<IntegerType>()) {
|
||||
if (sourceType.isSignlessInteger() && targetType.isSignlessInteger()) {
|
||||
IntegerType src = sourceType.cast<IntegerType>();
|
||||
IntegerType res = targetType.cast<IntegerType>();
|
||||
if (src.getWidth() > res.getWidth()) {
|
||||
|
@ -15,7 +15,7 @@ limitations under the License.
|
||||
|
||||
#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/Operation.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.
|
||||
==============================================================================*/
|
||||
|
||||
#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/Operation.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 "mlir/Dialect/Linalg/IR/LinalgOps.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/Attributes.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");
|
||||
return ConversionPattern::matchFailure();
|
||||
}
|
||||
if (!argType.getElementType().isIntOrFloat()) {
|
||||
if (!argType.getElementType().isSignlessIntOrFloat()) {
|
||||
return ConversionPattern::matchFailure();
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ class ScalarPointwiseToStandardConverter : public OpConversionPattern<LhloOp> {
|
||||
auto loc = lhlo_op.getLoc();
|
||||
auto argType =
|
||||
lhlo_op.getOperand(0).getType().template dyn_cast<ShapedType>();
|
||||
if (!argType || !argType.getElementType().isIntOrFloat() ||
|
||||
if (!argType || !argType.getElementType().isSignlessIntOrFloat() ||
|
||||
(argType.getRank() != 0)) {
|
||||
return ConversionPattern::matchFailure();
|
||||
}
|
||||
@ -385,7 +385,7 @@ class IotaConverter : public OpConversionPattern<xla_lhlo::IotaOp> {
|
||||
if (!resultMemrefType) return matchFailure();
|
||||
|
||||
auto resultElementType = resultMemrefType.getElementType();
|
||||
if (!resultElementType.isIntOrFloat()) return matchFailure();
|
||||
if (!resultElementType.isSignlessIntOrFloat()) return matchFailure();
|
||||
|
||||
// Construct the indexing maps needed for linalg.generic ops.
|
||||
unsigned nloops = resultMemrefType.getRank();
|
||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#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/AffineMap.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 "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/StandardTypes.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 "mlir/Dialect/StandardOps/Ops.h"
|
||||
#include "mlir/Dialect/StandardOps/IR/Ops.h"
|
||||
|
||||
namespace mlir {
|
||||
namespace {
|
||||
|
@ -31,7 +31,7 @@ limitations under the License.
|
||||
#include "mlir/Dialect/Linalg/IR/LinalgOps.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/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/BlockAndValueMapping.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 "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/Builders.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/Dialect/GPU/GPUDialect.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/Function.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.
|
||||
LLVM_COMMIT = "78be61871704a451a5d9462d7e96ed6c982746d4"
|
||||
LLVM_SHA256 = "35ce5950da1c83c91ab10ea5ac6e88c46fca160044cfd9dc6e50c83879d963ef"
|
||||
LLVM_COMMIT = "fee41517fe0f7ff9f0e204dd9200ebf32ca03cb8"
|
||||
LLVM_SHA256 = "dceb84396e8c30348dbd426c53eeae6657f5c67a24830c9a610a037fffcbe5cf"
|
||||
LLVM_URLS = [
|
||||
"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),
|
||||
|
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-fast-isel", "lib/Target/AArch64/AArch64GenFastISel.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-subtarget", "lib/Target/AArch64/AArch64GenSubtargetInfo.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(
|
||||
name = "LoopOpsTransforms",
|
||||
srcs = ["lib/Dialect/LoopOps/Transforms/ParallelLoopFusion.cpp"],
|
||||
srcs = glob(["lib/Dialect/LoopOps/Transforms/*.cpp"]),
|
||||
hdrs = ["include/mlir/Dialect/LoopOps/Passes.h"],
|
||||
includes = ["include"],
|
||||
deps = [
|
||||
":AffineOps",
|
||||
":IR",
|
||||
":LoopOps",
|
||||
":Pass",
|
||||
":StandardOps",
|
||||
":Transforms",
|
||||
"@llvm-project//llvm:support",
|
||||
],
|
||||
alwayslink = 1,
|
||||
)
|
||||
@ -216,7 +218,7 @@ filegroup(
|
||||
name = "StdOpsTdFiles",
|
||||
srcs = [
|
||||
"include/mlir/Analysis/CallInterfaces.td",
|
||||
"include/mlir/Dialect/StandardOps/Ops.td",
|
||||
"include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||
"include/mlir/IR/OpAsmInterface.td",
|
||||
":OpBaseTdFiles",
|
||||
],
|
||||
@ -228,23 +230,23 @@ gentbl(
|
||||
tbl_outs = [
|
||||
(
|
||||
"-gen-op-decls",
|
||||
"include/mlir/Dialect/StandardOps/Ops.h.inc",
|
||||
"include/mlir/Dialect/StandardOps/IR/Ops.h.inc",
|
||||
),
|
||||
(
|
||||
"-gen-op-defs",
|
||||
"include/mlir/Dialect/StandardOps/Ops.cpp.inc",
|
||||
"include/mlir/Dialect/StandardOps/IR/Ops.cpp.inc",
|
||||
),
|
||||
(
|
||||
"-gen-enum-decls",
|
||||
"include/mlir/Dialect/StandardOps/OpsEnums.h.inc",
|
||||
"include/mlir/Dialect/StandardOps/IR/OpsEnums.h.inc",
|
||||
),
|
||||
(
|
||||
"-gen-enum-defs",
|
||||
"include/mlir/Dialect/StandardOps/OpsEnums.cpp.inc",
|
||||
"include/mlir/Dialect/StandardOps/IR/OpsEnums.cpp.inc",
|
||||
),
|
||||
],
|
||||
tblgen = ":mlir-tblgen",
|
||||
td_file = "include/mlir/Dialect/StandardOps/Ops.td",
|
||||
td_file = "include/mlir/Dialect/StandardOps/IR/Ops.td",
|
||||
td_srcs = [
|
||||
":StdOpsTdFiles",
|
||||
],
|
||||
@ -384,13 +386,13 @@ cc_library(
|
||||
name = "StandardOps",
|
||||
srcs = glob(
|
||||
[
|
||||
"lib/Dialect/StandardOps/*.cpp",
|
||||
"lib/Dialect/StandardOps/*.h",
|
||||
"lib/Dialect/StandardOps/IR/*.cpp",
|
||||
"lib/Dialect/StandardOps/IR/*.h",
|
||||
"lib/Dialect/StandardOps/EDSC/*.cpp",
|
||||
],
|
||||
),
|
||||
hdrs = glob([
|
||||
"include/mlir/Dialect/StandardOps/*.h",
|
||||
"include/mlir/Dialect/StandardOps/IR/*.h",
|
||||
"include/mlir/Dialect/StandardOps/EDSC/*.h",
|
||||
]) + [
|
||||
"include/mlir/Analysis/CallInterfaces.h",
|
||||
@ -1693,6 +1695,7 @@ cc_library(
|
||||
"@llvm-project//mlir/test:TestDialect",
|
||||
"@llvm-project//mlir/test:TestIR",
|
||||
"@llvm-project//mlir/test:TestPass",
|
||||
"@llvm-project//mlir/test:TestSPIRV",
|
||||
"@llvm-project//mlir/test:TestTransforms",
|
||||
],
|
||||
)
|
||||
@ -1820,6 +1823,7 @@ cc_binary(
|
||||
"@llvm-project//mlir/test:TestDialect",
|
||||
"@llvm-project//mlir/test:TestIR",
|
||||
"@llvm-project//mlir/test:TestPass",
|
||||
"@llvm-project//mlir/test:TestSPIRV",
|
||||
"@llvm-project//mlir/test:TestTransforms",
|
||||
],
|
||||
)
|
||||
@ -2519,7 +2523,7 @@ exports_files(
|
||||
"include/mlir/Analysis/CallInterfaces.h",
|
||||
"include/mlir/Analysis/CallInterfaces.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/OpBase.td",
|
||||
"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",
|
||||
],
|
||||
)
|
||||
|
||||
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