summaryrefslogtreecommitdiff
path: root/src/passes/MergeSimilarFunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/MergeSimilarFunctions.cpp')
-rw-r--r--src/passes/MergeSimilarFunctions.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/passes/MergeSimilarFunctions.cpp b/src/passes/MergeSimilarFunctions.cpp
index 8e039566a..525d7c38f 100644
--- a/src/passes/MergeSimilarFunctions.cpp
+++ b/src/passes/MergeSimilarFunctions.cpp
@@ -565,7 +565,9 @@ Function* EquivalentClass::createShared(Module* module,
operands.push_back(
ExpressionManipulator::flexibleCopy(operand, *module, copier));
}
- return builder.makeCallRef(paramExpr, operands, call->type);
+ auto returnType = module->getFunction(call->target)->getResults();
+ return builder.makeCallRef(
+ paramExpr, operands, returnType, call->isReturn);
}
}
}
@@ -616,6 +618,7 @@ EquivalentClass::replaceWithThunk(Builder& builder,
callOperands.push_back(value);
}
+ // TODO: make a return_call when possible?
auto ret = builder.makeCall(shared->name, callOperands, target->getResults());
target->vars.clear();
target->body = ret;