LLVM: llvm::DroppedVariableStats Class Reference (original) (raw)

A base class to collect and print dropped debug information variable statistics. More...

#include "[llvm/IR/DroppedVariableStats.h](DroppedVariableStats%5F8h%5Fsource.html)"

Public Member Functions
LLVM_ABI DroppedVariableStats (bool DroppedVarStatsEnabled)
virtual ~DroppedVariableStats ()=default
DroppedVariableStats (const DroppedVariableStats &)=delete
void operator= (const DroppedVariableStats &)=delete
bool getPassDroppedVariables ()
Protected Member Functions
LLVM_ABI void setup ()
LLVM_ABI void cleanup ()
LLVM_ABI void calculateDroppedStatsAndPrint (DebugVariables &DbgVariables, StringRef FuncName, StringRef PassID, StringRef FuncOrModName, StringRef PassLevel, const Function *Func)
Calculate the number of dropped variables in an llvm::Function or llvm::MachineFunction and print the relevant information to stdout.
LLVM_ABI bool updateDroppedCount (DILocation *DbgLoc, const DIScope *Scope, const DIScope *DbgValScope, DenseMap< VarID, DILocation * > &InlinedAtsMap, VarID Var, unsigned &DroppedCount)
Check if a Var has been dropped or is a false positive.
LLVM_ABI void run (DebugVariables &DbgVariables, StringRef FuncName, bool Before)
Run code to populate relevant data structures over an llvm::Function or llvm::MachineFunction.
LLVM_ABI void populateVarIDSetAndInlinedMap (const DILocalVariable *DbgVar, DebugLoc DbgLoc, DenseSet< VarID > &VarIDSet, DenseMap< StringRef, DenseMap< VarID, DILocation * > > &InlinedAtsMap, StringRef FuncName, bool Before)
Populate the VarIDSet and InlinedAtMap with the relevant information needed for before and after pass analysis to determine dropped variable status.
virtual void visitEveryInstruction (unsigned &DroppedCount, DenseMap< VarID, DILocation * > &InlinedAtsMap, VarID Var)=0
Visit every llvm::Instruction or llvm::MachineInstruction and check if the debug variable denoted by its ID Var may have been dropped by an optimization pass.
virtual void visitEveryDebugRecord (DenseSet< VarID > &VarIDSet, DenseMap< StringRef, DenseMap< VarID, DILocation * > > &InlinedAtsMap, StringRef FuncName, bool Before)=0
Visit every debug record in an llvm::Function or llvm::MachineFunction and call populateVarIDSetAndInlinedMap on it.
Protected Attributes
bool DroppedVariableStatsEnabled = false
SmallVector< DenseMap< const Function *, DebugVariables > > DebugVariablesStack
A stack of a DenseMap, that maps DebugVariables for every pass to an llvm::Function.
DenseSet< const DIScope * > VisitedScope
A DenseSet tracking whether a scope was visited before.
SmallVector< DenseMap< StringRef, DenseMap< VarID, DILocation * > > > InlinedAts
A stack of DenseMaps, which map the name of an llvm::Function to a DenseMap of VarIDs and their inlinedAt locations before an optimization pass has run.

A base class to collect and print dropped debug information variable statistics.

Definition at line 41 of file DroppedVariableStats.h.

DroppedVariableStats::DroppedVariableStats ( bool DroppedVarStatsEnabled )

~DroppedVariableStats()

virtual llvm::DroppedVariableStats::~DroppedVariableStats ( ) virtualdefault

DroppedVariableStats() [2/2]

calculateDroppedStatsAndPrint()

cleanup()

void DroppedVariableStats::cleanup ( ) protected

getPassDroppedVariables()

bool llvm::DroppedVariableStats::getPassDroppedVariables ( ) inline

operator=()

populateVarIDSetAndInlinedMap()

run()

setup()

void DroppedVariableStats::setup ( ) protected

updateDroppedCount()

Check if a Var has been dropped or is a false positive.

Also update the DroppedCount if a debug variable is dropped.

Definition at line 70 of file DroppedVariableStats.cpp.

visitEveryDebugRecord()

visitEveryInstruction()

DebugVariablesStack

DroppedVariableStatsEnabled

bool llvm::DroppedVariableStats::DroppedVariableStatsEnabled = false protected

InlinedAts

VisitedScope


The documentation for this class was generated from the following files: