Skip to content

Commit 764ffad

Browse files
committed
Removed unnecessary comments
1 parent b6b5f6e commit 764ffad

File tree

2 files changed

+12
-45
lines changed

2 files changed

+12
-45
lines changed

mlir/lib/Dialect/EmitC/Transforms/ConvertFuncToClass.cpp

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,12 @@ struct ConvertFuncToClassPass
2929
emitc::FuncOp funcOp = getOperation();
3030
MLIRContext *context = funcOp->getContext();
3131

32-
// Wrap each C operator op with an expression op.
3332
OpBuilder builder(context);
3433
createClass(funcOp, builder);
35-
36-
// // Create the new function inside the class
37-
// auto funcType = FunctionType::get(funcOp.getContext(),
38-
// funcOp.getFunctionType().getInputs(),
39-
// funcOp.getFunctionType().getResults()); auto newFuncOp =
40-
// builder.create<emitc::FuncOp>(
41-
// funcOp.getLoc(),builder.getStringAttr("execute"), funcType );
42-
43-
// builder.createBlock(&newFuncOp.getBody());
44-
// builder.setInsertionPointToStart(&newFuncOp.getBody().front());
45-
46-
// // 7. Remap original arguments to field pointers
47-
// IRMapping mapper;
48-
49-
// // 8. move or clone operations from original function
50-
// for (Operation &opToClone :
51-
// llvm::make_early_inc_range(funcOp.getBody().front())) {
52-
// if (isa<emitc::ConstantOp>(opToClone) ||
53-
// isa<emitc::SubscriptOp>(opToClone) ||
54-
// isa<emitc::LoadOp>(opToClone) ||
55-
// isa<emitc::AddOp>(opToClone) ||
56-
// isa<emitc::AssignOp>(opToClone) ||
57-
// isa<emitc::ReturnOp>(opToClone )) {
58-
// builder.clone(opToClone, mapper);
59-
// } else {
60-
// opToClone.emitOpError("Unsupported operation found");
61-
// }
62-
// }
63-
// if (funcOp->use_empty()) funcOp->erase();
6434
}
6535
};
6636

6737
} // namespace
6838

6939
} // namespace emitc
70-
} // namespace mlir
40+
} // namespace mlir

mlir/lib/Dialect/EmitC/Transforms/Transforms.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,12 @@ ExpressionOp createExpression(Operation *op, OpBuilder &builder) {
4545
ClassOp createClass(FuncOp funcOp, OpBuilder &builder) {
4646
builder.setInsertionPoint(funcOp);
4747

48-
// 2. Create the class
4948
auto classOp = builder.create<emitc::ClassOp>(
5049
funcOp.getLoc(), builder.getStringAttr("MyModelClass"));
5150

52-
// Create a block inside the class body and set insertion point
5351
builder.createBlock(&classOp.getBody());
5452
builder.setInsertionPointToStart(&classOp.getBody().front());
5553

56-
// 3. Extract input/output names from function arguments
5754
SmallVector<std::pair<StringRef, Type>> fields;
5855
llvm::SmallDenseMap<Value, Value> argToFieldMap;
5956

@@ -68,25 +65,26 @@ ClassOp createClass(FuncOp funcOp, OpBuilder &builder) {
6865
.getElementType()));
6966
fields.push_back({fieldName.str(), fieldType});
7067

71-
// 4.Create the class fields
7268
auto typeAttr = TypeAttr::get(val.getType());
7369
mlir::Attribute emptyAttr = builder.getAttr<mlir::UnitAttr>();
7470
auto dictAttr = DictionaryAttr::get(
7571
builder.getContext(),
7672
{builder.getNamedAttr(fieldName.str(), emptyAttr)});
7773
builder.create<emitc::FieldOp>(funcOp.getLoc(), fieldName, typeAttr,
7874
/* attributes*/ dictAttr);
79-
// 5. Get the pointers to the class fields
80-
auto pointer = emitc::PointerType::get(
81-
dyn_cast_or_null<emitc::ArrayType>(val.getType()).getElementType());
82-
auto ptr = builder.create<emitc::GetFieldOp>(
83-
funcOp.getLoc(), pointer, val, "MyModelClass", fieldName);
84-
argToFieldMap[val] = ptr;
75+
76+
// TODO: From my current understanding, we need to instantiate a class
77+
// so we can get the pointers from .field but we can't do that in here
78+
// so I'm unsure how I can rewrite the following line to ensure
79+
// GetFieldOp works correctly. auto pointer =
80+
// emitc::PointerType::get(dyn_cast_or_null<emitc::ArrayType>(val.getType()).getElementType());
81+
// auto ptr = builder.create<emitc::GetFieldOp>(funcOp.getLoc(),
82+
// pointer, val, "MyModelClass", fieldName);
83+
argToFieldMap[val] = nullptr;
8584
}
8685
}
8786
}
8887

89-
// Create the new function inside the class
9088
auto funcContext = funcOp.getContext();
9189
auto inputTypes = funcOp.getFunctionType().getInputs();
9290
auto results = funcOp.getFunctionType().getResults();
@@ -98,10 +96,8 @@ ClassOp createClass(FuncOp funcOp, OpBuilder &builder) {
9896
builder.createBlock(&newFuncOp.getBody());
9997
builder.setInsertionPointToStart(&newFuncOp.getBody().front());
10098

101-
// 7. Remap original arguments to field pointers
10299
IRMapping mapper;
103100

104-
// 8. move or clone operations from original function
105101
auto body = llvm::make_early_inc_range(funcOp.getBody().front());
106102
for (Operation &opToClone : body) {
107103
if (isa<emitc::ConstantOp>(opToClone) ||
@@ -114,7 +110,8 @@ ClassOp createClass(FuncOp funcOp, OpBuilder &builder) {
114110
}
115111
}
116112

117-
// if (funcOp->use_empty()) funcOp->erase();
113+
// TODO: Need to erase the funcOp after all this. Using funcOp->erase raises
114+
// errors:
118115

119116
return classOp;
120117
}

0 commit comments

Comments
 (0)