104317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick/*===-- Profiling.h - Profiling support library support routines ----------===*\ 28b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* 38b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* The LLVM Compiler Infrastructure 48b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* 504317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick|* This file is distributed under the University of Illinois Open Source 604317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick|* License. See LICENSE.TXT for details. 78b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* 88b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|*===----------------------------------------------------------------------===*| 98b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* 108b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* This file defines functions shared by the various different profiling 118b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* implementations. 128b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer|* 138b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer\*===----------------------------------------------------------------------===*/ 148b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 158b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#ifndef PROFILING_H 168b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#define PROFILING_H 178b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 188b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#include "llvm/Analysis/ProfileInfoTypes.h" /* for enum ProfilingType */ 198b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 208b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer/* save_arguments - Save argc and argv as passed into the program for the file 218b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer * we output. 228b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer */ 238b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencerint save_arguments(int argc, const char **argv); 248b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 2504317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick/* 2604317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick * Retrieves the file descriptor for the profile file. 2704317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick */ 2804317cc618aeae28910916469e074d8ce0fcaa03Andrew Trickint getOutFile(); 2904317cc618aeae28910916469e074d8ce0fcaa03Andrew Trick 308b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer/* write_profiling_data - Write out a typed packet of profiling data to the 318b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer * current output file. 328b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer */ 338b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencervoid write_profiling_data(enum ProfilingType PT, unsigned *Start, 348b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer unsigned NumElements); 358b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 368b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#endif 37