diff --git a/hpvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp b/hpvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
index d17429c76b3c0886e4c19061a55af189edd9814c..4823c8039d1f74d68ca144e53e81e7b23ff2c949 100644
--- a/hpvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
+++ b/hpvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
@@ -99,7 +99,6 @@ private:
   //Functions
   std::vector<IntrinsicInst*>* getUseList(Value* LI);
   Value* addLoop(Instruction* I, Value* limit, const Twine& indexName = "");
-  void addDoWhileLoop(Instruction*, Instruction*, Value*);
   void addWhileLoop(Instruction*, Instruction*, Instruction*, Value*);
   Instruction *addWhileLoopCounter(BasicBlock *, BasicBlock *, BasicBlock *);
   Argument* getArgumentFromEnd(Function* F, unsigned offset);
@@ -362,34 +361,6 @@ Instruction* CGT_X86::addWhileLoopCounter(BasicBlock *Entry, BasicBlock *Cond,
   return CounterPhi;
 }
 
-/* Add Loop around the instruction I
- * Algorithm:
- * (1) Split the basic block of instruction I into three parts, where the
- * middleblock/body would contain instruction I.
- * (2) Add phi node before instruction I. Add incoming edge to phi node from
- * predecessor
- * (3) Add increment and compare instruction to index variable
- * (4) Replace terminator/branch instruction of body with conditional branch
- * which loops over bidy if true and goes to end if false
- * (5) Update phi node of body
- */
-void CGT_X86::addDoWhileLoop(Instruction* From, Instruction* To, Value* TerminationCond) {
-  BasicBlock* Entry = From->getParent();
-  BasicBlock* ForBody = Entry->splitBasicBlock(From, "for.body");
-
-  // To Instruction should also belong to the same basic block as the From basic
-  // block will have a terminator instruction
-  assert(To->getParent() == ForBody
-         && "To Instruction should also belong to the same basic block!");
-  BasicBlock* ForEnd = ForBody->splitBasicBlock(To, "for.end");
-
-  // Replace the terminator instruction of for.body with new conditional
-  // branch which loops over body if true and branches to for.end otherwise
-  BranchInst* BI = BranchInst::Create(ForEnd, ForBody, TerminationCond);
-  ReplaceInstWithInst(ForBody->getTerminator(), BI);
-
-}
-
 /* Add Loop around the instruction I
  * Algorithm:
  * (1) Split the basic block of instruction I into three parts, where the
@@ -1231,11 +1202,6 @@ Function* CGT_X86::createFunctionFilter(DFNode* C) {
                                            RI);
   }
 
-  // Add loop around the basic block, which exits the loop if isLastInput is false
-  //addDoWhileLoop(cast<Instruction>(Cond)->getNextNode(), RI, Cond);
-//  addWhileLoop(cast<Instruction>(isLastInputPop), cast<Instruction>(Cond)->getNextNode(),
-//                RI, Cond);
-
   // Add loop around the basic block, which exits the loop if isLastInput is false
   // Pointers to keep the created loop structure
   BasicBlock *EntryBB, *CondBB, *BodyBB;
@@ -1763,40 +1729,6 @@ void CGT_X86::codeGen(DFLeafNode* N) {
            << N->getFuncPointer()->getName() <<  "\n";
 
     switch (N->getTag()) {
-       case visc::CUDNN_TARGET: {
-          errs() << "CUDNN hint found. Store CUDNN function as CPU funtion.\n";
-         // Make sure there is a generated x86 function for cudnn
-         assert(N->getGenFuncForTarget(visc::CUDNN_TARGET) && "");
-         assert(N->hasX86GenFuncForTarget(visc::CUDNN_TARGET) && "");
-         // Store the CUDNN x86 function as the CPU generated function
-         Function *Ftmp = N->getGenFuncForTarget(N->getTag());
-         // after adding the required number of arguments
-         if (!N->getParent()->isChildGraphStreaming())
-           Ftmp = addIdxDimArgs(Ftmp);
-
-         N->removeGenFuncForTarget(visc::CUDNN_TARGET);
-         N->setTag(visc::None);
-         N->addGenFunc(Ftmp, visc::CPU_TARGET, true);
-         N->setTag(visc::CPU_TARGET);
-         break;
-         }
-       case visc::PROMISE_TARGET: {
-          errs() << "Promise hint found. Store PROMISE function as CPU funtion.\n";
-         // Make sure there is a generated x86 function for promise
-         assert(N->getGenFuncForTarget(visc::PROMISE_TARGET) && "");
-         assert(N->hasX86GenFuncForTarget(visc::PROMISE_TARGET) && "");
-         // Store the PROMISE x86 function as the CPU generated function
-         Function *Ftmp = N->getGenFuncForTarget(N->getTag());
-         // after adding the required number of arguments
-         if (!N->getParent()->isChildGraphStreaming())
-           Ftmp = addIdxDimArgs(Ftmp);
-
-         N->setTag(visc::None);
-         N->removeGenFuncForTarget(visc::PROMISE_TARGET);
-         N->addGenFunc(Ftmp, visc::CPU_TARGET, true);
-         N->setTag(visc::CPU_TARGET);
-         break;
-         }
        case visc::GPU_TARGET:
          // A leaf node should not have an x86 function for GPU
          // by design of DFG2LLVM_NVPTX backend