mirror of
https://github.com/intel/llvm.git
synced 2026-01-20 01:58:44 +08:00
[MLIR] Move ConcatOp to its lexicographic position
Purely cosmetic change. The operation implementations in `Shape.cpp` are now lexicographic order. Differential Revision: https://reviews.llvm.org/D80277
This commit is contained in:
@@ -180,6 +180,34 @@ OpFoldResult BroadcastOp::fold(ArrayRef<Attribute> operands) {
|
||||
return builder.getIndexTensorAttr(resultShape);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ConcatOp
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
LogicalResult
|
||||
ConcatOp::inferReturnTypes(MLIRContext *context, Optional<Location> location,
|
||||
ValueRange operands, DictionaryAttr attributes,
|
||||
RegionRange regions,
|
||||
SmallVectorImpl<Type> &inferredReturnTypes) {
|
||||
auto shapeType = ShapeType::get(context);
|
||||
inferredReturnTypes.push_back(shapeType);
|
||||
return success();
|
||||
}
|
||||
|
||||
OpFoldResult ConcatOp::fold(ArrayRef<Attribute> operands) {
|
||||
if (!operands[0] || !operands[1])
|
||||
return nullptr;
|
||||
auto lhsShape = llvm::to_vector<6>(
|
||||
operands[0].cast<DenseIntElementsAttr>().getValues<int64_t>());
|
||||
auto rhsShape = llvm::to_vector<6>(
|
||||
operands[1].cast<DenseIntElementsAttr>().getValues<int64_t>());
|
||||
SmallVector<int64_t, 6> resultShape;
|
||||
resultShape.append(lhsShape.begin(), lhsShape.end());
|
||||
resultShape.append(rhsShape.begin(), rhsShape.end());
|
||||
Builder builder(getContext());
|
||||
return builder.getIndexTensorAttr(resultShape);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ConstShapeOp
|
||||
//===----------------------------------------------------------------------===//
|
||||
@@ -341,34 +369,6 @@ LogicalResult SplitAtOp::fold(ArrayRef<Attribute> operands,
|
||||
return success();
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ConcatOp
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
LogicalResult
|
||||
ConcatOp::inferReturnTypes(MLIRContext *context, Optional<Location> location,
|
||||
ValueRange operands, DictionaryAttr attributes,
|
||||
RegionRange regions,
|
||||
SmallVectorImpl<Type> &inferredReturnTypes) {
|
||||
auto shapeType = ShapeType::get(context);
|
||||
inferredReturnTypes.push_back(shapeType);
|
||||
return success();
|
||||
}
|
||||
|
||||
OpFoldResult ConcatOp::fold(ArrayRef<Attribute> operands) {
|
||||
if (!operands[0] || !operands[1])
|
||||
return nullptr;
|
||||
auto lhsShape = llvm::to_vector<6>(
|
||||
operands[0].cast<DenseIntElementsAttr>().getValues<int64_t>());
|
||||
auto rhsShape = llvm::to_vector<6>(
|
||||
operands[1].cast<DenseIntElementsAttr>().getValues<int64_t>());
|
||||
SmallVector<int64_t, 6> resultShape;
|
||||
resultShape.append(lhsShape.begin(), lhsShape.end());
|
||||
resultShape.append(rhsShape.begin(), rhsShape.end());
|
||||
Builder builder(getContext());
|
||||
return builder.getIndexTensorAttr(resultShape);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ToExtentTensorOp
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
Reference in New Issue
Block a user