[polly] r299360 - [PerfMonitor] Use Intrinsics::getDeclaration

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 3 08:23:08 PDT 2017


Author: grosser
Date: Mon Apr  3 10:23:08 2017
New Revision: 299360

URL: http://llvm.org/viewvc/llvm-project?rev=299360&view=rev
Log:
[PerfMonitor] Use Intrinsics::getDeclaration

Instead of creating the declaration ourselves, we obtain it directly from the
LLVM intrinsic definitions. This addresses a post-review comment for r299359.

Suggested-by: Hongzing Zheng <etherzhhb at gmail.com>

Modified:
    polly/trunk/lib/CodeGen/PerfMonitor.cpp

Modified: polly/trunk/lib/CodeGen/PerfMonitor.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/PerfMonitor.cpp?rev=299360&r1=299359&r2=299360&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/PerfMonitor.cpp (original)
+++ polly/trunk/lib/CodeGen/PerfMonitor.cpp Mon Apr  3 10:23:08 2017
@@ -12,6 +12,7 @@
 #include "polly/CodeGen/PerfMonitor.h"
 #include "polly/CodeGen/RuntimeDebugBuilder.h"
 #include "llvm/ADT/Triple.h"
+#include "llvm/IR/Intrinsics.h"
 
 using namespace llvm;
 using namespace polly;
@@ -56,17 +57,7 @@ void PerfMonitor::addToGlobalConstructor
 }
 
 Function *PerfMonitor::getRDTSCP() {
-  const char *Name = "llvm.x86.rdtscp";
-  Function *F = M->getFunction(Name);
-
-  if (!F) {
-    GlobalValue::LinkageTypes Linkage = Function::ExternalLinkage;
-    FunctionType *Ty = FunctionType::get(Builder.getInt64Ty(),
-                                         {Builder.getInt8PtrTy()}, false);
-    F = Function::Create(Ty, Linkage, Name, M);
-  }
-
-  return F;
+  return Intrinsic::getDeclaration(M, Intrinsic::x86_rdtscp);
 }
 
 PerfMonitor::PerfMonitor(Module *M) : M(M), Builder(M->getContext()) {




More information about the llvm-commits mailing list