|  | //===- llvm/Support/Valgrind.h - Communication with Valgrind ----*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // Methods for communicating with a valgrind instance this program is running | 
|  | // under.  These are all no-ops unless LLVM was configured on a system with the | 
|  | // valgrind headers installed and valgrind is controlling this process. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef LLVM_SUPPORT_VALGRIND_H | 
|  | #define LLVM_SUPPORT_VALGRIND_H | 
|  |  | 
|  | #include <cstddef> | 
|  |  | 
|  | namespace llvm { | 
|  | namespace sys { | 
|  | // True if Valgrind is controlling this process. | 
|  | bool RunningOnValgrind(); | 
|  |  | 
|  | // Discard valgrind's translation of code in the range [Addr .. Addr + Len). | 
|  | // Otherwise valgrind may continue to execute the old version of the code. | 
|  | void ValgrindDiscardTranslations(const void *Addr, size_t Len); | 
|  | } // namespace sys | 
|  | } // end namespace llvm | 
|  |  | 
|  | #endif // LLVM_SUPPORT_VALGRIND_H |