summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/PerfMonitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/CodeGen/PerfMonitor.cpp')
-rw-r--r--polly/lib/CodeGen/PerfMonitor.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/polly/lib/CodeGen/PerfMonitor.cpp b/polly/lib/CodeGen/PerfMonitor.cpp
index cc0e277a015..3defeef737d 100644
--- a/polly/lib/CodeGen/PerfMonitor.cpp
+++ b/polly/lib/CodeGen/PerfMonitor.cpp
@@ -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::addToGlobalConstructors(Function *Fn) {
}
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()) {
OpenPOWER on IntegriCloud