@@ -74,7 +74,6 @@ struct LoweringPreparePass
7474 void lowerDynamicCastOp (cir::DynamicCastOp op);
7575 void lowerArrayDtor (cir::ArrayDtor op);
7676 void lowerArrayCtor (cir::ArrayCtor op);
77- void lowerTrivialConstructorCall (cir::CallOp op);
7877
7978 // / Build the function that initializes the specified global
8079 cir::FuncOp buildCXXGlobalVarDeclInitFunc (cir::GlobalOp op);
@@ -987,29 +986,6 @@ void LoweringPreparePass::lowerArrayCtor(cir::ArrayCtor op) {
987986 true );
988987}
989988
990- void LoweringPreparePass::lowerTrivialConstructorCall (cir::CallOp op) {
991- FuncOp funcOp = getCalledFunction (op);
992- if (!funcOp)
993- return ;
994-
995- mlir::Attribute cxxSpecialMember = funcOp.getCxxSpecialMemberAttr ();
996- if (!cxxSpecialMember)
997- return ;
998-
999- if (auto cxxCtor = dyn_cast<cir::CXXCtorAttr>(cxxSpecialMember)) {
1000- if (cxxCtor.getCtorKind () == cir::CtorKind::Copy) {
1001- // Replace the trivial copy constructor call with a `CopyOp`
1002- CIRBaseBuilderTy builder (getContext ());
1003- auto operands = op.getOperands ();
1004- mlir::Value dest = operands[0 ];
1005- mlir::Value src = operands[1 ];
1006- builder.setInsertionPoint (op);
1007- builder.createCopy (dest, src);
1008- op.erase ();
1009- }
1010- }
1011- }
1012-
1013989void LoweringPreparePass::runOnOp (mlir::Operation *op) {
1014990 if (auto arrayCtor = dyn_cast<cir::ArrayCtor>(op)) {
1015991 lowerArrayCtor (arrayCtor);
@@ -1032,8 +1008,6 @@ void LoweringPreparePass::runOnOp(mlir::Operation *op) {
10321008 globalCtorList.emplace_back (fnOp.getName (), globalCtor.value ());
10331009 else if (auto globalDtor = fnOp.getGlobalDtorPriority ())
10341010 globalDtorList.emplace_back (fnOp.getName (), globalDtor.value ());
1035- } else if (auto callOp = dyn_cast<cir::CallOp>(op)) {
1036- lowerTrivialConstructorCall (callOp);
10371011 }
10381012}
10391013
0 commit comments