X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FTransforms%2FInstrumentation.h;h=bbf3a69d246d79b086f7e01d5f9230825606dec3;hb=9f2539507c954e35a6e845c0665a2fcdb07faad1;hp=a6e08d30843885f61423eff071cb0fb9034050b5;hpb=b9eca537d08de504d43a9698244d32a59b359176;p=oota-llvm.git diff --git a/include/llvm/Transforms/Instrumentation.h b/include/llvm/Transforms/Instrumentation.h index a6e08d30843..bbf3a69d246 100644 --- a/include/llvm/Transforms/Instrumentation.h +++ b/include/llvm/Transforms/Instrumentation.h @@ -1,19 +1,43 @@ //===- Transforms/Instrumentation.h - Instrumentation passes ----*- C++ -*-===// // -// This files defines constructor functions for instrumentation passes. +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines constructor functions for instrumentation passes. // //===----------------------------------------------------------------------===// #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_H #define LLVM_TRANSFORMS_INSTRUMENTATION_H -class Pass; +namespace llvm { -//===----------------------------------------------------------------------===// -// Support for inserting LLVM code to print values at basic block and function -// exits. -// -Pass *createTraceValuesPassForFunction(); // Just trace function entry/exit -Pass *createTraceValuesPassForBasicBlocks(); // Trace BB's and methods +class ModulePass; +class FunctionPass; + +// Insert edge profiling instrumentation +ModulePass *createEdgeProfilerPass(); + +// Insert optimal edge profiling instrumentation +ModulePass *createOptimalEdgeProfilerPass(); + +// Insert path profiling instrumentation +ModulePass *createPathProfilerPass(); + +// Insert GCOV profiling instrumentation +ModulePass *createGCOVProfilerPass(bool EmitNotes = true, bool EmitData = true, + bool Use402Format = false, + bool UseExtraChecksum = false); + +// Insert AddressSanitizer (address sanity checking) instrumentation +ModulePass *createAddressSanitizerPass(); +// Insert ThreadSanitizer (race detection) instrumentation +FunctionPass *createThreadSanitizerPass(); + +} // End llvm namespace #endif