#include "LiveDebugValues.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/TargetParser/Triple.h"
#define DEBUG_TYPE …
usingnamespacellvm;
static cl::opt<bool>
ForceInstrRefLDV("force-instr-ref-livedebugvalues", cl::Hidden,
cl::desc("Use instruction-ref based LiveDebugValues with "
"normal DBG_VALUE inputs"),
cl::init(false));
static cl::opt<cl::boolOrDefault> ValueTrackingVariableLocations(
"experimental-debug-variable-locations",
cl::desc("Use experimental new value-tracking variable locations"));
static cl::opt<unsigned> InputBBLimit(
"livedebugvalues-input-bb-limit",
cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"),
cl::init(10000), cl::Hidden);
static cl::opt<unsigned> InputDbgValueLimit(
"livedebugvalues-input-dbg-value-limit",
cl::desc(
"Maximum input DBG_VALUE insts supported by debug range extension"),
cl::init(50000), cl::Hidden);
namespace {
class LiveDebugValues : public MachineFunctionPass { … };
}
char LiveDebugValues::ID = …;
char &llvm::LiveDebugValuesID = …;
INITIALIZE_PASS(…)
LiveDebugValues::LiveDebugValues() : … { … }
bool LiveDebugValues::runOnMachineFunction(MachineFunction &MF) { … }
bool llvm::debuginfoShouldUseDebugInstrRef(const Triple &T) { … }