LLVM  10.0.0svn
Macros | Functions
DbgEntityHistoryCalculator.cpp File Reference
#include "llvm/CodeGen/DbgEntityHistoryCalculator.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <map>
#include <utility>
Include dependency graph for DbgEntityHistoryCalculator.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "dwarfdebug"
 

Functions

static Register isDescribedByReg (const MachineInstr &MI)
 
static void dropRegDescribedVar (RegDescribedVarsMap &RegVars, unsigned RegNo, InlinedEntity Var)
 
static void addRegDescribedVar (RegDescribedVarsMap &RegVars, unsigned RegNo, InlinedEntity Var)
 
static void clobberRegEntries (InlinedEntity Var, unsigned RegNo, const MachineInstr &ClobberingInstr, DbgValueEntriesMap &LiveEntries, DbgValueHistoryMap &HistMap)
 Create a clobbering entry and end all open debug value entries for Var that are described by RegNo using that entry. More...
 
static void handleNewDebugValue (InlinedEntity Var, const MachineInstr &DV, RegDescribedVarsMap &RegVars, DbgValueEntriesMap &LiveEntries, DbgValueHistoryMap &HistMap)
 Add a new debug value for Var. Closes all overlapping debug values. More...
 
static void clobberRegisterUses (RegDescribedVarsMap &RegVars, RegDescribedVarsMap::iterator I, DbgValueHistoryMap &HistMap, DbgValueEntriesMap &LiveEntries, const MachineInstr &ClobberingInstr)
 
static void clobberRegisterUses (RegDescribedVarsMap &RegVars, unsigned RegNo, DbgValueHistoryMap &HistMap, DbgValueEntriesMap &LiveEntries, const MachineInstr &ClobberingInstr)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "dwarfdebug"

Definition at line 32 of file DbgEntityHistoryCalculator.cpp.

Function Documentation

◆ addRegDescribedVar()

static void addRegDescribedVar ( RegDescribedVarsMap &  RegVars,
unsigned  RegNo,
InlinedEntity  Var 
)
static

Definition at line 126 of file DbgEntityHistoryCalculator.cpp.

References assert(), and llvm::is_contained().

Referenced by handleNewDebugValue().

◆ clobberRegEntries()

static void clobberRegEntries ( InlinedEntity  Var,
unsigned  RegNo,
const MachineInstr ClobberingInstr,
DbgValueEntriesMap &  LiveEntries,
DbgValueHistoryMap HistMap 
)
static

Create a clobbering entry and end all open debug value entries for Var that are described by RegNo using that entry.

Definition at line 136 of file DbgEntityHistoryCalculator.cpp.

References assert(), llvm::DbgValueHistoryMap::getEntry(), isDescribedByReg(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::DbgValueHistoryMap::startClobber().

Referenced by clobberRegisterUses().

◆ clobberRegisterUses() [1/2]

static void clobberRegisterUses ( RegDescribedVarsMap &  RegVars,
RegDescribedVarsMap::iterator  I,
DbgValueHistoryMap HistMap,
DbgValueEntriesMap &  LiveEntries,
const MachineInstr ClobberingInstr 
)
static

◆ clobberRegisterUses() [2/2]

static void clobberRegisterUses ( RegDescribedVarsMap &  RegVars,
unsigned  RegNo,
DbgValueHistoryMap HistMap,
DbgValueEntriesMap &  LiveEntries,
const MachineInstr ClobberingInstr 
)
static

Definition at line 221 of file DbgEntityHistoryCalculator.cpp.

References clobberRegisterUses(), and I.

◆ dropRegDescribedVar()

static void dropRegDescribedVar ( RegDescribedVarsMap &  RegVars,
unsigned  RegNo,
InlinedEntity  Var 
)
static

Definition at line 112 of file DbgEntityHistoryCalculator.cpp.

References assert(), llvm::find(), and I.

Referenced by handleNewDebugValue().

◆ handleNewDebugValue()

static void handleNewDebugValue ( InlinedEntity  Var,
const MachineInstr DV,
RegDescribedVarsMap &  RegVars,
DbgValueEntriesMap &  LiveEntries,
DbgValueHistoryMap HistMap 
)
static

◆ isDescribedByReg()

static Register isDescribedByReg ( const MachineInstr MI)
static