From f6b74ce9004690bb61c66cac67053e7518d7dbbd Mon Sep 17 00:00:00 2001
From: Hashim Sharif <hsharif3@tyler.cs.illinois.edu>
Date: Sat, 21 Nov 2020 01:00:52 -0600
Subject: [PATCH] Fixing restriction in CUDNN backend - non tensor intrinsics
 allowed

---
 llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp b/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
index abc4e9ef89..bc471845ad 100644
--- a/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
+++ b/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
@@ -264,9 +264,13 @@ void CGT_CUDNN::codeGen(DFLeafNode* N) {
 
     if (BuildDFG::isViscIntrinsic(I)) {
       IntrinsicInst* II = dyn_cast<IntrinsicInst>(I);
-      assert((II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")
-        && "Only HPVM tensor intrinsics allowed in ApproxHPVM leaf nodes\n");
+      //assert((II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")
+      //  && "Only HPVM tensor intrinsics allowed in ApproxHPVM leaf nodes\n");
 
+      if (!(II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")){
+	continue; // skip non-tensor ops 
+      }
+      
       /********************* Handle VISC Tensor intrinsics ********************/
       switch (II->getIntrinsicID()) {
 
@@ -427,7 +431,8 @@ void CGT_CUDNN::codeGen(DFLeafNode* N) {
       { /* llvm.visc.tensor.relu */
         DEBUG(errs() << F_cudnn->getName() << "\t: Handling tensor_pool_max\n");
 
-        // Argument list - tensorPooling(input, poolFunction, window_height, window_width, vertical_pad, horizontal_pad,
+        // Argument list - tensorPooling(input, poolFunction, window_height,
+	//                               window_width, vertical_pad, horizontal_pad,
 	//                               vertical_stride, horizontal_stride);
         std::vector<Value*> Args;
         Args.push_back(II->getOperand(0));
-- 
GitLab