Skip to content
Snippets Groups Projects
Commit d39e899d authored by Hashim Sharif's avatar Hashim Sharif
Browse files

Reverting createNode indexing in Fusion Pass

parent d471c29e
No related branches found
No related tags found
No related merge requests found
......@@ -157,8 +157,8 @@ IntrinsicInst* FuseHPVMTensorNodes::createIdenticalBindWithDifferentPort(
void FuseHPVMTensorNodes::createArgTypes(IntrinsicInst* II1,
IntrinsicInst* II2,
std::vector<Type*> &ArgTypes) {
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
// Arguments of the first node are simply added
for(auto& arg: F1->getArgumentList()) {
......@@ -193,8 +193,8 @@ void FuseHPVMTensorNodes::createArgTypes(IntrinsicInst* II1,
/* Get the return type of the function for fused node II1-II2 */
StructType* FuseHPVMTensorNodes::createReturnType(IntrinsicInst* II1,
IntrinsicInst* II2) {
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
// Based on the HPVM tensor node assumptions and the patterns we want to
// support, when two nodes are fused the result will always be the result
......@@ -211,8 +211,8 @@ StructType* FuseHPVMTensorNodes::createReturnType(IntrinsicInst* II1,
void FuseHPVMTensorNodes::copyArgumentNames(IntrinsicInst* II1,
IntrinsicInst* II2,
Function* F) {
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
Function::arg_iterator dest_it = F->arg_begin();
......@@ -254,8 +254,8 @@ void FuseHPVMTensorNodes::copyArgumentNames(IntrinsicInst* II1,
void FuseHPVMTensorNodes::copyAttrList(IntrinsicInst* II1,
IntrinsicInst* II2,
Function* F) {
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
Function::arg_iterator f1_ai = F1->arg_begin(), f1_ae = F1->arg_end();
Function::arg_iterator f2_ai = F2->arg_begin(), f2_ae = F2->arg_end();
......@@ -306,8 +306,8 @@ void FuseHPVMTensorNodes::copyAttrList(IntrinsicInst* II1,
Function* FuseHPVMTensorNodes::createEmptyDFNodeFunction(IntrinsicInst* II1,
IntrinsicInst* II2,
Module &M) {
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
DEBUG(errs () << "Constructing argument list\n");
// Construct argument list
......@@ -487,8 +487,8 @@ Function* FuseHPVMTensorNodes::createLeafDFNodeFunction(IntrinsicInst* II1,
ReturnInst::Create(M.getContext(), UndefValue::get(FfusedRetTy), BB);
// Get the node functions
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
// Initially, update FusedValueMap: it is populated with the arguments of F1
Function::arg_iterator fused_arg_it = Ffused->arg_begin();
......@@ -541,8 +541,8 @@ void FuseHPVMTensorNodes::updateParentNodeFunction(IntrinsicInst* II1,
// Compute the required shifting of positions for edges/binds to the second
// fusion node. No shifting is required for the first fusion node.
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
std::vector<unsigned> ShiftMap(F2->getFunctionType()->getNumParams(), 0);
unsigned shiftCount = F1->getFunctionType()->getNumParams();
......@@ -675,8 +675,8 @@ IntrinsicInst* FuseHPVMTensorNodes::FuseHPVMTensorNodesStep(IntrinsicInst* II1,
IntrinsicInst* II2,
Module &M) {
// Get the node functions
Function* F1 = cast<Function>((II1->getOperand(1))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(1))->stripPointerCasts());
Function* F1 = cast<Function>((II1->getOperand(0))->stripPointerCasts());
Function* F2 = cast<Function>((II2->getOperand(0))->stripPointerCasts());
// Create fused node function
Function *Ffused = createLeafDFNodeFunction(II1, II2, M);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment