[Beignet] [PATCH] Use CreateCall instead of CreateCall2 because llvm3.7 has removed CreateCall2.

Yan Wang yan.wang at linux.intel.com
Wed Nov 18 02:47:15 PST 2015


Signed-off-by: Yan Wang <yan.wang at linux.intel.com>
---
 backend/src/llvm/llvm_profiling.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/backend/src/llvm/llvm_profiling.cpp b/backend/src/llvm/llvm_profiling.cpp
index 8c9157c..e548305 100644
--- a/backend/src/llvm/llvm_profiling.cpp
+++ b/backend/src/llvm/llvm_profiling.cpp
@@ -177,12 +177,21 @@ namespace gbe
       builder->SetInsertPoint(instI);
       /* Add the timestamp store function call. */
       // __gen_ocl_store_timestamp(int nth, int type);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+      builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction(
+              "__gen_ocl_calc_timestamp", Type::getVoidTy(module->getContext()),
+              IntegerType::getInt32Ty(module->getContext()),
+              IntegerType::getInt32Ty(module->getContext()),
+              NULL)),
+          /* the args */ {ConstantInt::get(intTy, pointNum++), ConstantInt::get(intTy, profilingType)});
+#else
       builder->CreateCall2(cast<llvm::Function>(module->getOrInsertFunction(
               "__gen_ocl_calc_timestamp", Type::getVoidTy(module->getContext()),
               IntegerType::getInt32Ty(module->getContext()),
               IntegerType::getInt32Ty(module->getContext()),
               NULL)),
           /* the args */ ConstantInt::get(intTy, pointNum++), ConstantInt::get(intTy, profilingType));
+#endif
     }
     /* We insert one store_profiling at the end of the last block to hold the place. */
     llvm::Function::iterator BE = F.end();
@@ -190,12 +199,21 @@ namespace gbe
     BasicBlock::iterator retInst = BE->end();
     retInst--;
     builder->SetInsertPoint(retInst);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+    builder->CreateCall(cast<llvm::Function>(module->getOrInsertFunction(
+            "__gen_ocl_store_profiling", Type::getVoidTy(module->getContext()),
+            ptrTy,
+            IntegerType::getInt32Ty(module->getContext()),
+            NULL)),
+        /* the args */{profilingBuf, ConstantInt::get(intTy, profilingType)});
+#else
     builder->CreateCall2(cast<llvm::Function>(module->getOrInsertFunction(
             "__gen_ocl_store_profiling", Type::getVoidTy(module->getContext()),
             ptrTy,
             IntegerType::getInt32Ty(module->getContext()),
             NULL)),
         /* the args */profilingBuf, ConstantInt::get(intTy, profilingType));
+#endif
 
     delete builder;
     return changed;
-- 
1.9.3



More information about the Beignet mailing list