diff options
| author | Tobias Grosser <tobias@grosser.es> | 2018-09-11 14:17:44 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2018-09-11 14:17:44 +0000 |
| commit | 4beb2f964b4d8b1017b17c19b48a3ddfdfcf1312 (patch) | |
| tree | 71b8b69d8a18017f3fa0e04f782015439377a727 /polly/lib/CodeGen/PerfMonitor.cpp | |
| parent | e2745b5d86747073e0772b16654e951a14825cfd (diff) | |
| download | bcm5719-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.cpp | 24 |
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); |

