summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/PerfMonitor.cpp
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2018-09-11 14:17:44 +0000
committerTobias Grosser <tobias@grosser.es>2018-09-11 14:17:44 +0000
commit4beb2f964b4d8b1017b17c19b48a3ddfdfcf1312 (patch)
tree71b8b69d8a18017f3fa0e04f782015439377a727 /polly/lib/CodeGen/PerfMonitor.cpp
parente2745b5d86747073e0772b16654e951a14825cfd (diff)
downloadbcm5719-llvm-4beb2f964b4d8b1017b17c19b48a3ddfdfcf1312.tar.gz
bcm5719-llvm-4beb2f964b4d8b1017b17c19b48a3ddfdfcf1312.zip
[PerfMonitor] Fix rdtscp callsites
Summary: Update all rdtscp callsites in PerfMonitor so that they conform with the signature changes introduced in r341698. Reviewers: grosser, bollu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D51928 llvm-svn: 341946
Diffstat (limited to 'polly/lib/CodeGen/PerfMonitor.cpp')
-rw-r--r--polly/lib/CodeGen/PerfMonitor.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/polly/lib/CodeGen/PerfMonitor.cpp b/polly/lib/CodeGen/PerfMonitor.cpp
index fce65fdeea9..9cc99de4edc 100644
--- a/polly/lib/CodeGen/PerfMonitor.cpp
+++ b/polly/lib/CodeGen/PerfMonitor.cpp
@@ -113,9 +113,6 @@ void PerfMonitor::addGlobalVariables() {
TryRegisterGlobal(M, "__polly_perf_cycles_in_scop_start", Builder.getInt64(0),
&CyclesInScopStartPtr);
-
- TryRegisterGlobal(M, "__polly_perf_write_loation", Builder.getInt32(0),
- &RDTSCPWriteLocation);
}
static const char *InitFunctionName = "__polly_perf_init";
@@ -142,9 +139,9 @@ Function *PerfMonitor::insertFinalReporting() {
// Measure current cycles and compute final timings.
Function *RDTSCPFn = getRDTSCP();
- Value *CurrentCycles = Builder.CreateCall(
- RDTSCPFn,
- Builder.CreatePointerCast(RDTSCPWriteLocation, Builder.getInt8PtrTy()));
+
+ Value *CurrentCycles =
+ Builder.CreateExtractValue(Builder.CreateCall(RDTSCPFn), {0});
Value *CyclesStart = Builder.CreateLoad(CyclesTotalStartPtr, true);
Value *CyclesTotal = Builder.CreateSub(CurrentCycles, CyclesStart);
Value *CyclesInScops = Builder.CreateLoad(CyclesInScopsPtr, true);
@@ -255,9 +252,8 @@ Function *PerfMonitor::insertInitFunction(Function *FinalReporting) {
if (Supported) {
// Read the currently cycle counter and store the result for later.
Function *RDTSCPFn = getRDTSCP();
- Value *CurrentCycles = Builder.CreateCall(
- RDTSCPFn,
- Builder.CreatePointerCast(RDTSCPWriteLocation, Builder.getInt8PtrTy()));
+ Value *CurrentCycles =
+ Builder.CreateExtractValue(Builder.CreateCall(RDTSCPFn), {0});
Builder.CreateStore(CurrentCycles, CyclesTotalStartPtr, true);
}
Builder.CreateRetVoid();
@@ -271,9 +267,8 @@ void PerfMonitor::insertRegionStart(Instruction *InsertBefore) {
Builder.SetInsertPoint(InsertBefore);
Function *RDTSCPFn = getRDTSCP();
- Value *CurrentCycles = Builder.CreateCall(
- RDTSCPFn,
- Builder.CreatePointerCast(RDTSCPWriteLocation, Builder.getInt8PtrTy()));
+ Value *CurrentCycles =
+ Builder.CreateExtractValue(Builder.CreateCall(RDTSCPFn), {0});
Builder.CreateStore(CurrentCycles, CyclesInScopStartPtr, true);
}
@@ -284,9 +279,8 @@ void PerfMonitor::insertRegionEnd(Instruction *InsertBefore) {
Builder.SetInsertPoint(InsertBefore);
Function *RDTSCPFn = getRDTSCP();
LoadInst *CyclesStart = Builder.CreateLoad(CyclesInScopStartPtr, true);
- Value *CurrentCycles = Builder.CreateCall(
- RDTSCPFn,
- Builder.CreatePointerCast(RDTSCPWriteLocation, Builder.getInt8PtrTy()));
+ Value *CurrentCycles =
+ Builder.CreateExtractValue(Builder.CreateCall(RDTSCPFn), {0});
Value *CyclesInScop = Builder.CreateSub(CurrentCycles, CyclesStart);
Value *CyclesInScops = Builder.CreateLoad(CyclesInScopsPtr, true);
CyclesInScops = Builder.CreateAdd(CyclesInScops, CyclesInScop);
OpenPOWER on IntegriCloud