181ad6265SDimitry Andric/*===-- MemEntryDef.inc - MemProf profiling runtime macros -*- C++ -*-======== *\ 281ad6265SDimitry Andric|* 381ad6265SDimitry Andric|* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 481ad6265SDimitry Andric|* See https://llvm.org/LICENSE.txt for license information. 581ad6265SDimitry Andric|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 681ad6265SDimitry Andric|* 781ad6265SDimitry Andric\*===----------------------------------------------------------------------===*/ 881ad6265SDimitry Andric/* 981ad6265SDimitry Andric * This file defines the macros for memprof profiling data structures. 1081ad6265SDimitry Andric * Eg. usage to define the memprof meminfoblock struct: 1181ad6265SDimitry Andric * 1281ad6265SDimitry Andric * struct MemInfoBlock { 1381ad6265SDimitry Andric * #define MIBEntryDef(NameTag, Name, Type) Type Name; 1481ad6265SDimitry Andric * #include MIBEntryDef.inc 1581ad6265SDimitry Andric * #undef MIBEntryDef 1681ad6265SDimitry Andric * }; 1781ad6265SDimitry Andric * 1881ad6265SDimitry Andric * This file has two identical copies. The primary copy lives in LLVM and 1981ad6265SDimitry Andric * the other one sits in compiler-rt/include/profile directory. To make changes 2081ad6265SDimitry Andric * in this file, first modify the primary copy and copy it over to compiler-rt. 2181ad6265SDimitry Andric * Testing of any change in this file can start only after the two copies are 2281ad6265SDimitry Andric * synced up. 2381ad6265SDimitry Andric * 2481ad6265SDimitry Andric\*===----------------------------------------------------------------------===*/ 2581ad6265SDimitry Andric#ifndef MIBEntryDef 2681ad6265SDimitry Andric#define MIBEntryDef(NameTag, Name, Type) 2781ad6265SDimitry Andric#endif 2881ad6265SDimitry Andric 2981ad6265SDimitry AndricMIBEntryDef(AllocCount = 1, AllocCount, uint32_t) 3081ad6265SDimitry AndricMIBEntryDef(TotalAccessCount = 2, TotalAccessCount, uint64_t) 3181ad6265SDimitry AndricMIBEntryDef(MinAccessCount = 3, MinAccessCount, uint64_t) 3281ad6265SDimitry AndricMIBEntryDef(MaxAccessCount = 4, MaxAccessCount, uint64_t) 3381ad6265SDimitry AndricMIBEntryDef(TotalSize = 5, TotalSize, uint64_t) 3481ad6265SDimitry AndricMIBEntryDef(MinSize = 6, MinSize, uint32_t) 3581ad6265SDimitry AndricMIBEntryDef(MaxSize = 7, MaxSize, uint32_t) 3681ad6265SDimitry AndricMIBEntryDef(AllocTimestamp = 8, AllocTimestamp, uint32_t) 3781ad6265SDimitry AndricMIBEntryDef(DeallocTimestamp = 9, DeallocTimestamp, uint32_t) 3881ad6265SDimitry AndricMIBEntryDef(TotalLifetime = 10, TotalLifetime, uint64_t) 3981ad6265SDimitry AndricMIBEntryDef(MinLifetime = 11, MinLifetime, uint32_t) 4081ad6265SDimitry AndricMIBEntryDef(MaxLifetime = 12, MaxLifetime, uint32_t) 4181ad6265SDimitry AndricMIBEntryDef(AllocCpuId = 13, AllocCpuId, uint32_t) 4281ad6265SDimitry AndricMIBEntryDef(DeallocCpuId = 14, DeallocCpuId, uint32_t) 4381ad6265SDimitry AndricMIBEntryDef(NumMigratedCpu = 15, NumMigratedCpu, uint32_t) 4481ad6265SDimitry AndricMIBEntryDef(NumLifetimeOverlaps = 16, NumLifetimeOverlaps, uint32_t) 4581ad6265SDimitry AndricMIBEntryDef(NumSameAllocCpu = 17, NumSameAllocCpu, uint32_t) 4681ad6265SDimitry AndricMIBEntryDef(NumSameDeallocCpu = 18, NumSameDeallocCpu, uint32_t) 4781ad6265SDimitry AndricMIBEntryDef(DataTypeId = 19, DataTypeId, uint64_t) 48*bdd1243dSDimitry AndricMIBEntryDef(TotalAccessDensity = 20, TotalAccessDensity, uint64_t) 49*bdd1243dSDimitry AndricMIBEntryDef(MinAccessDensity = 21, MinAccessDensity, uint32_t) 50*bdd1243dSDimitry AndricMIBEntryDef(MaxAccessDensity = 22, MaxAccessDensity, uint32_t) 51*bdd1243dSDimitry AndricMIBEntryDef(TotalLifetimeAccessDensity = 23, TotalLifetimeAccessDensity, uint64_t) 52*bdd1243dSDimitry AndricMIBEntryDef(MinLifetimeAccessDensity = 24, MinLifetimeAccessDensity, uint32_t) 53*bdd1243dSDimitry AndricMIBEntryDef(MaxLifetimeAccessDensity = 25, MaxLifetimeAccessDensity, uint32_t) 54