LLVM API Documentation
00001 //===- Transforms/Instrumentation.h - Instrumentation passes ----*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This files defines constructor functions for instrumentation passes. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_H 00015 #define LLVM_TRANSFORMS_INSTRUMENTATION_H 00016 00017 namespace llvm { 00018 00019 class ModulePass; 00020 class FunctionPass; 00021 00022 // Reoptimizer support pass: add instrumentation calls to back-edges of loops 00023 ModulePass *createLoopInstrumentationPass (); 00024 00025 // Reoptimizer support pass: combine multiple back-edges w/ same target into one 00026 FunctionPass *createCombineBranchesPass(); 00027 00028 // Reoptimizer support pass: emit table of global functions 00029 FunctionPass *createEmitFunctionTablePass (); 00030 00031 00032 //===----------------------------------------------------------------------===// 00033 // Support for inserting LLVM code to print values at basic block and function 00034 // exits. 00035 // 00036 00037 // Just trace function entry/exit 00038 FunctionPass *createTraceValuesPassForBasicBlocks(); 00039 00040 // Trace BB's and methods 00041 FunctionPass *createTraceValuesPassForFunction(); 00042 00043 } // End llvm namespace 00044 00045 #endif