mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-09 05:57:23 +00:00
Move debugging support out of Statistic.h into Debug.h, implement the new DEBUG_TYPE facilities
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aeac00ed53
commit
2dd93edfc2
53
include/Support/Debug.h
Normal file
53
include/Support/Debug.h
Normal file
@ -0,0 +1,53 @@
|
||||
//===- Debug.h - An easy way to add debug output to your code ---*- C++ -*-===//
|
||||
//
|
||||
// This file implements a handle way of adding debugging information to your
|
||||
// code, without it being enabled all of the time, and without having to add
|
||||
// command line options to enable it.
|
||||
//
|
||||
// In particular, just wrap your code with the DEBUG() macro, and it will be
|
||||
// enabled automatically if you specify '-debug' on the command-line.
|
||||
// Alternatively, you can also use the SET_DEBUG_TYPE("foo") macro to specify
|
||||
// that your debug code belongs to class "foo". Then, on the command line, you
|
||||
// can specify '-debug-only=foo' to enable JUST the debug information for the
|
||||
// foo class.
|
||||
//
|
||||
// When compiling in release mode, the -debug-* options and all code in DEBUG()
|
||||
// statements disappears, so it does not effect the runtime of the code.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef SUPPORT_DEBUG_H
|
||||
#define SUPPORT_DEBUG_H
|
||||
|
||||
// DebugFlag - This boolean is set to true if the '-debug' command line option
|
||||
// is specified. This should probably not be referenced directly, instead, use
|
||||
// the DEBUG macro below.
|
||||
//
|
||||
extern bool DebugFlag;
|
||||
|
||||
// isCurrentDebugType - Return true if the specified string is the debug type
|
||||
// specified on the command line, or if none was specified on the command line
|
||||
// with the -debug-only=X option.
|
||||
//
|
||||
bool isCurrentDebugType(const char *Type);
|
||||
|
||||
// DEBUG macro - This macro should be used by passes to emit debug information.
|
||||
// In the '-debug' option is specified on the commandline, and if this is a
|
||||
// debug build, then the code specified as the option to the macro will be
|
||||
// executed. Otherwise it will not be. Example:
|
||||
//
|
||||
// DEBUG(cerr << "Bitset contains: " << Bitset << "\n");
|
||||
//
|
||||
|
||||
#ifndef DEBUG_TYPE
|
||||
#define DEBUG_TYPE ""
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define DEBUG(X)
|
||||
#else
|
||||
#define DEBUG(X) \
|
||||
do { if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) { X; } } while (0)
|
||||
#endif
|
||||
|
||||
#endif
|
@ -19,27 +19,6 @@
|
||||
|
||||
#include <iosfwd>
|
||||
|
||||
// DebugFlag - This boolean is set to true if the '-debug' command line option
|
||||
// is specified. This should probably not be referenced directly, instead, use
|
||||
// the DEBUG macro below.
|
||||
//
|
||||
extern bool DebugFlag;
|
||||
|
||||
// DEBUG macro - This macro should be used by passes to emit debug information.
|
||||
// In the '-debug' option is specified on the commandline, and if this is a
|
||||
// debug build, then the code specified as the option to the macro will be
|
||||
// executed. Otherwise it will not be. Example:
|
||||
//
|
||||
// DEBUG(cerr << "Bitset contains: " << Bitset << "\n");
|
||||
//
|
||||
#ifdef NDEBUG
|
||||
#define DEBUG(X)
|
||||
#else
|
||||
#define DEBUG(X) \
|
||||
do { if (DebugFlag) { X; } } while (0)
|
||||
#endif
|
||||
|
||||
|
||||
// StatisticBase - Nontemplated base class for Statistic<> class...
|
||||
class StatisticBase {
|
||||
const char *Name;
|
||||
|
@ -19,27 +19,6 @@
|
||||
|
||||
#include <iosfwd>
|
||||
|
||||
// DebugFlag - This boolean is set to true if the '-debug' command line option
|
||||
// is specified. This should probably not be referenced directly, instead, use
|
||||
// the DEBUG macro below.
|
||||
//
|
||||
extern bool DebugFlag;
|
||||
|
||||
// DEBUG macro - This macro should be used by passes to emit debug information.
|
||||
// In the '-debug' option is specified on the commandline, and if this is a
|
||||
// debug build, then the code specified as the option to the macro will be
|
||||
// executed. Otherwise it will not be. Example:
|
||||
//
|
||||
// DEBUG(cerr << "Bitset contains: " << Bitset << "\n");
|
||||
//
|
||||
#ifdef NDEBUG
|
||||
#define DEBUG(X)
|
||||
#else
|
||||
#define DEBUG(X) \
|
||||
do { if (DebugFlag) { X; } } while (0)
|
||||
#endif
|
||||
|
||||
|
||||
// StatisticBase - Nontemplated base class for Statistic<> class...
|
||||
class StatisticBase {
|
||||
const char *Name;
|
||||
|
53
include/llvm/Support/Debug.h
Normal file
53
include/llvm/Support/Debug.h
Normal file
@ -0,0 +1,53 @@
|
||||
//===- Debug.h - An easy way to add debug output to your code ---*- C++ -*-===//
|
||||
//
|
||||
// This file implements a handle way of adding debugging information to your
|
||||
// code, without it being enabled all of the time, and without having to add
|
||||
// command line options to enable it.
|
||||
//
|
||||
// In particular, just wrap your code with the DEBUG() macro, and it will be
|
||||
// enabled automatically if you specify '-debug' on the command-line.
|
||||
// Alternatively, you can also use the SET_DEBUG_TYPE("foo") macro to specify
|
||||
// that your debug code belongs to class "foo". Then, on the command line, you
|
||||
// can specify '-debug-only=foo' to enable JUST the debug information for the
|
||||
// foo class.
|
||||
//
|
||||
// When compiling in release mode, the -debug-* options and all code in DEBUG()
|
||||
// statements disappears, so it does not effect the runtime of the code.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef SUPPORT_DEBUG_H
|
||||
#define SUPPORT_DEBUG_H
|
||||
|
||||
// DebugFlag - This boolean is set to true if the '-debug' command line option
|
||||
// is specified. This should probably not be referenced directly, instead, use
|
||||
// the DEBUG macro below.
|
||||
//
|
||||
extern bool DebugFlag;
|
||||
|
||||
// isCurrentDebugType - Return true if the specified string is the debug type
|
||||
// specified on the command line, or if none was specified on the command line
|
||||
// with the -debug-only=X option.
|
||||
//
|
||||
bool isCurrentDebugType(const char *Type);
|
||||
|
||||
// DEBUG macro - This macro should be used by passes to emit debug information.
|
||||
// In the '-debug' option is specified on the commandline, and if this is a
|
||||
// debug build, then the code specified as the option to the macro will be
|
||||
// executed. Otherwise it will not be. Example:
|
||||
//
|
||||
// DEBUG(cerr << "Bitset contains: " << Bitset << "\n");
|
||||
//
|
||||
|
||||
#ifndef DEBUG_TYPE
|
||||
#define DEBUG_TYPE ""
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define DEBUG(X)
|
||||
#else
|
||||
#define DEBUG(X) \
|
||||
do { if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) { X; } } while (0)
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user