mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-05 12:31:33 +00:00
Move debug functionality to Debug.cpp/Debug.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7494 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96a54db5e7
commit
038e05a917
53
lib/Support/Debug.cpp
Normal file
53
lib/Support/Debug.cpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
//===-- Debug.cpp - An easy way to add debug output to your code ----------===//
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "Support/Statistic.h"
|
||||||
|
#include "Support/CommandLine.h"
|
||||||
|
|
||||||
|
bool DebugFlag; // DebugFlag - Exported boolean set by the -debug option
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
#ifndef NDEBUG
|
||||||
|
// -debug - Command line option to enable the DEBUG statements in the passes.
|
||||||
|
// This flag may only be enabled in debug builds.
|
||||||
|
cl::opt<bool, true>
|
||||||
|
Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
|
||||||
|
cl::location(DebugFlag));
|
||||||
|
|
||||||
|
std::string CurrentDebugType;
|
||||||
|
struct DebugOnlyOpt {
|
||||||
|
void operator=(const std::string &Val) const {
|
||||||
|
DebugFlag |= !Val.empty();
|
||||||
|
CurrentDebugType = Val;
|
||||||
|
}
|
||||||
|
} DebugOnlyOptLoc;
|
||||||
|
|
||||||
|
cl::opt<DebugOnlyOpt, true, cl::parser<std::string> >
|
||||||
|
DebugOnly("debug-only", cl::desc("Enable a specific type of debug output"),
|
||||||
|
cl::Hidden, cl::value_desc("debug string"),
|
||||||
|
cl::location(DebugOnlyOptLoc), cl::ValueRequired);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 *DebugType) {
|
||||||
|
return CurrentDebugType.empty() || DebugType == CurrentDebugType;
|
||||||
|
}
|
@ -16,15 +16,12 @@
|
|||||||
|
|
||||||
#include "Support/Statistic.h"
|
#include "Support/Statistic.h"
|
||||||
#include "Support/CommandLine.h"
|
#include "Support/CommandLine.h"
|
||||||
#include <iostream>
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <iostream>
|
||||||
|
|
||||||
// GetLibSupportInfoOutputFile - Return a file stream to print our output on...
|
// GetLibSupportInfoOutputFile - Return a file stream to print our output on...
|
||||||
std::ostream *GetLibSupportInfoOutputFile();
|
std::ostream *GetLibSupportInfoOutputFile();
|
||||||
|
|
||||||
bool DebugFlag; // DebugFlag - Exported boolean set by the -debug option
|
|
||||||
|
|
||||||
unsigned StatisticBase::NumStats = 0;
|
unsigned StatisticBase::NumStats = 0;
|
||||||
|
|
||||||
// -stats - Command line option to cause transformations to emit stats about
|
// -stats - Command line option to cause transformations to emit stats about
|
||||||
@ -33,14 +30,6 @@ unsigned StatisticBase::NumStats = 0;
|
|||||||
static cl::opt<bool>
|
static cl::opt<bool>
|
||||||
Enabled("stats", cl::desc("Enable statistics output from program"));
|
Enabled("stats", cl::desc("Enable statistics output from program"));
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
// -debug - Command line option to enable the DEBUG statements in the passes.
|
|
||||||
// This flag may only be enabled in debug builds.
|
|
||||||
static cl::opt<bool, true>
|
|
||||||
Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
|
|
||||||
cl::location(DebugFlag));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct StatRecord {
|
struct StatRecord {
|
||||||
std::string Value;
|
std::string Value;
|
||||||
const char *Name, *Desc;
|
const char *Name, *Desc;
|
||||||
|
53
support/lib/Support/Debug.cpp
Normal file
53
support/lib/Support/Debug.cpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
//===-- Debug.cpp - An easy way to add debug output to your code ----------===//
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "Support/Statistic.h"
|
||||||
|
#include "Support/CommandLine.h"
|
||||||
|
|
||||||
|
bool DebugFlag; // DebugFlag - Exported boolean set by the -debug option
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
#ifndef NDEBUG
|
||||||
|
// -debug - Command line option to enable the DEBUG statements in the passes.
|
||||||
|
// This flag may only be enabled in debug builds.
|
||||||
|
cl::opt<bool, true>
|
||||||
|
Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
|
||||||
|
cl::location(DebugFlag));
|
||||||
|
|
||||||
|
std::string CurrentDebugType;
|
||||||
|
struct DebugOnlyOpt {
|
||||||
|
void operator=(const std::string &Val) const {
|
||||||
|
DebugFlag |= !Val.empty();
|
||||||
|
CurrentDebugType = Val;
|
||||||
|
}
|
||||||
|
} DebugOnlyOptLoc;
|
||||||
|
|
||||||
|
cl::opt<DebugOnlyOpt, true, cl::parser<std::string> >
|
||||||
|
DebugOnly("debug-only", cl::desc("Enable a specific type of debug output"),
|
||||||
|
cl::Hidden, cl::value_desc("debug string"),
|
||||||
|
cl::location(DebugOnlyOptLoc), cl::ValueRequired);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 *DebugType) {
|
||||||
|
return CurrentDebugType.empty() || DebugType == CurrentDebugType;
|
||||||
|
}
|
@ -16,15 +16,12 @@
|
|||||||
|
|
||||||
#include "Support/Statistic.h"
|
#include "Support/Statistic.h"
|
||||||
#include "Support/CommandLine.h"
|
#include "Support/CommandLine.h"
|
||||||
#include <iostream>
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <iostream>
|
||||||
|
|
||||||
// GetLibSupportInfoOutputFile - Return a file stream to print our output on...
|
// GetLibSupportInfoOutputFile - Return a file stream to print our output on...
|
||||||
std::ostream *GetLibSupportInfoOutputFile();
|
std::ostream *GetLibSupportInfoOutputFile();
|
||||||
|
|
||||||
bool DebugFlag; // DebugFlag - Exported boolean set by the -debug option
|
|
||||||
|
|
||||||
unsigned StatisticBase::NumStats = 0;
|
unsigned StatisticBase::NumStats = 0;
|
||||||
|
|
||||||
// -stats - Command line option to cause transformations to emit stats about
|
// -stats - Command line option to cause transformations to emit stats about
|
||||||
@ -33,14 +30,6 @@ unsigned StatisticBase::NumStats = 0;
|
|||||||
static cl::opt<bool>
|
static cl::opt<bool>
|
||||||
Enabled("stats", cl::desc("Enable statistics output from program"));
|
Enabled("stats", cl::desc("Enable statistics output from program"));
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
// -debug - Command line option to enable the DEBUG statements in the passes.
|
|
||||||
// This flag may only be enabled in debug builds.
|
|
||||||
static cl::opt<bool, true>
|
|
||||||
Debug("debug", cl::desc("Enable debug output"), cl::Hidden,
|
|
||||||
cl::location(DebugFlag));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct StatRecord {
|
struct StatRecord {
|
||||||
std::string Value;
|
std::string Value;
|
||||||
const char *Name, *Desc;
|
const char *Name, *Desc;
|
||||||
|
Loading…
Reference in New Issue
Block a user