brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 73bec2b Raw
62 lines · cpp
1// Test end-to-end optimization pipeline with PGHO, that it does not interfere2// with other allocation instrumentation features.3//4// RUN: split-file %s %t5// RUN: llvm-profdata merge %t/memprof.yaml -o %t/use.profdata6// RUN: %clang_cc1 -O2 -debug-info-kind=limited -fmemory-profile-use=%t/use.profdata -mllvm -optimize-hot-cold-new \7// RUN:            %t/src.cpp -triple x86_64-linux-gnu -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,DEFAULT8// RUN: %clang_cc1 -O2 -fsanitize=alloc-token -debug-info-kind=limited -fmemory-profile-use=%t/use.profdata -mllvm -optimize-hot-cold-new \9// RUN:             %t/src.cpp -triple x86_64-linux-gnu -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,ALLOCTOKEN10 11//--- memprof.yaml12---13HeapProfileRecords:14  - GUID: 0x7f8d88fcc70a347b15    AllocSites:16    - Callstack:17      - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }18      - { Function: 0xdb956436e78dd5fa, LineOffset: 1, Column: 13, IsInlineFrame: false }19      MemInfoBlock:20        AllocCount: 121        TotalAccessCount: 022        MinAccessCount: 023        MaxAccessCount: 024        TotalSize: 1025        MinSize: 1026        MaxSize: 1027        AllocTimestamp: 10028        DeallocTimestamp: 10029        TotalLifetime: 10000030        MinLifetime: 10000031        MaxLifetime: 10000032        AllocCpuId: 033        DeallocCpuId: 034        NumMigratedCpu: 035        NumLifetimeOverlaps: 036        NumSameAllocCpu: 037        NumSameDeallocCpu: 038        DataTypeId: 039        TotalAccessDensity: 040        MinAccessDensity: 041        MaxAccessDensity: 042        TotalLifetimeAccessDensity: 043        MinLifetimeAccessDensity: 044        MaxLifetimeAccessDensity: 045        AccessHistogramSize: 046        AccessHistogram: 047...48 49//--- src.cpp50// CHECK-LABEL: define{{.*}} ptr @_Z3foov()51// DEFAULT:    call {{.*}} ptr @_Znam12__hot_cold_t(i64 10, i8 -128)52// ALLOCTOKEN: call {{.*}} ptr @__alloc_token__Znam12__hot_cold_t(i64 10, i8 -128, i64 1538840549748785101){{.*}} !alloc_token53char *foo() {54  return new char[10];55}56 57int main() {58  char *a = foo();59  delete[] a;60  return 0;61}62