| //===- LiveDebugVariables.cpp - Tracking debug info variables -------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file implements the LiveDebugVariables analysis. |
| // |
| // Remove all DBG_VALUE instructions referencing virtual registers and replace |
| // them with a data structure tracking where live user variables are kept - in a |
| // virtual register or in a stack slot. |
| // |
| // Allow the data structure to be updated during register allocation when values |
| // are moved between registers and stack slots. Finally emit new DBG_VALUE |
| // instructions after register allocation is complete. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "LiveDebugVariables.h" |
| #include "llvm/CodeGen/LiveIntervalAnalysis.h" |
| #include "llvm/CodeGen/MachineFunction.h" |
| #include "llvm/CodeGen/Passes.h" |
| #include "llvm/Target/TargetMachine.h" |
| |
| using namespace llvm; |
| |
| char LiveDebugVariables::ID = 0; |
| |
| INITIALIZE_PASS_BEGIN(LiveDebugVariables, "livedebugvars", |
| "Debug Variable Analysis", false, false) |
| INITIALIZE_PASS_DEPENDENCY(LiveIntervals) |
| INITIALIZE_PASS_END(LiveDebugVariables, "livedebugvars", |
| "Debug Variable Analysis", false, false) |
| |
| void LiveDebugVariables::getAnalysisUsage(AnalysisUsage &AU) const { |
| AU.addRequiredTransitive<LiveIntervals>(); |
| AU.setPreservesAll(); |
| MachineFunctionPass::getAnalysisUsage(AU); |
| } |
| |
| LiveDebugVariables::LiveDebugVariables() : MachineFunctionPass(ID) { |
| initializeLiveDebugVariablesPass(*PassRegistry::getPassRegistry()); |
| } |
| |
| bool LiveDebugVariables::runOnMachineFunction(MachineFunction &mf) { |
| return false; |
| } |