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