diff --git a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp index b3ea4c6216776bc380c0e46e3d1c35e3ad63aee3..fa99523df43dec18599e779370f2adea7b152daf 100644 --- a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp +++ b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp @@ -835,6 +835,7 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) { // Checking which node is the kernel launch DFNode* PNode = N->getParent(); + errs() << "Parent Node: " << PNode << " " << PNode->getFuncPointer()->getName() << "\n"; int pLevel = PNode->getLevel(); int pReplFactor = PNode->getNumOfDim(); @@ -900,7 +901,7 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) { } else { errs() << "WARNING: Visiting a node for which code already generated!\n"; } - + transformFunctionToVoid(F_nvptx); @@ -910,9 +911,10 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) { for (DFNode::const_indfedge_iterator ieb = N->indfedge_begin(), iee = N->indfedge_end(); ieb != iee; ++ieb) { DFNode *SrcDFNode = (*ieb)->getSourceDF(); - errs() << "Found edge from node: "<< SrcDFNode->getFuncPointer()->getName() << "\n"; + errs() << "Found edge from node: " << " " << SrcDFNode->getFuncPointer()->getName() << "\n"; + errs() << "Current Node: " << N->getFuncPointer()->getName() << "\n"; errs() << "isAllocationNode = "<< SrcDFNode->isAllocationNode() << "\n"; - if (SrcDFNode != PNode) { + if (!SrcDFNode->isDummyNode()) { assert(SrcDFNode->isAllocationNode()); kernel->AllocationNode = dyn_cast<DFLeafNode>(SrcDFNode); kernel->allocInArgMap = SrcDFNode->getInArgMap(); @@ -1333,8 +1335,9 @@ void CGT_NVPTX::writeKernelsModule() { void CGT_NVPTX::transformFunctionToVoid(Function* F) { + DEBUG(errs() << "Transforming function to void: " << F->getName() << "\n"); // FIXME: Maybe do that using the Node? - StructType* FRetTy = cast<StructType>(F->getReturnType()); + StructType* FRetTy = dyn_cast<StructType>(F->getReturnType()); assert(FRetTy && "Return Type must always be a struct"); // Keeps return statements, because we will need to replace them