Go to the documentation of this file.
16 #ifndef LLVM_IR_DEBUGINFO_H
17 #define LLVM_IR_DEBUGINFO_H
30 class DbgVariableIntrinsic;
111 void processType(
DIType *DT);
144 return make_range(Scopes.begin(), Scopes.end());
164 #endif // LLVM_IR_DEBUGINFO_H
bool StripDebugInfo(Module &M)
Strip debug info in the module if it exists.
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
void reset()
Clear all lists.
unsigned type_count() const
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
void findDbgUsers(SmallVectorImpl< DbgVariableIntrinsic * > &DbgInsts, Value *V)
Finds the debug info intrinsics describing a value.
DISubprogram * getDISubprogram(const MDNode *Scope)
Find subprogram that is enclosing this scope.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
TinyPtrVector< DbgVariableIntrinsic * > FindDbgAddrUses(Value *V)
Finds all intrinsics declaring local variables as living in the memory that 'V' points to.
iterator_range< compile_unit_iterator > compile_units() const
Utility to find all debug info in a module.
SmallVectorImpl< DIType * >::const_iterator type_iterator
SmallVectorImpl< DIScope * >::const_iterator scope_iterator
TinyPtrVector< DbgDeclareInst * > FindDbgDeclareUses(Value *V)
Like FindDbgAddrUses, but only returns dbg.declare intrinsics, not dbg.addr.
bool stripDebugInfo(Function &F)
unsigned scope_count() const
void processSubprogram(DISubprogram *SP)
Process subprogram.
This is the common base class for debug info intrinsics for variables.
void findDbgValues(SmallVectorImpl< DbgValueInst * > &DbgValues, Value *V)
Finds the llvm.dbg.value intrinsics describing a value.
typename SuperClass::const_iterator const_iterator
void processModule(const Module &M)
Process entire module and collect debug info anchors.
SmallVectorImpl< DIGlobalVariableExpression * >::const_iterator global_variable_expression_iterator
A Module instance is used to store all the information related to an LLVM module.
iterator_range< global_variable_expression_iterator > global_variables() const
void processLocation(const Module &M, const DILocation *Loc)
Process debug info location.
iterator_range< subprogram_iterator > subprograms() const
unsigned subprogram_count() const
Scope
Defines the scope in which this symbol should be visible: Default – Visible in the public interface o...
void processVariable(const Module &M, const DbgVariableIntrinsic &DVI)
Process DbgVariableIntrinsic.
Machine Check Debug Module
void updateLoopMetadataDebugLocations(Instruction &I, function_ref< Metadata *(Metadata *)> Updater)
Update the debug locations contained within the MD_loop metadata attached to the instruction I,...
SmallVectorImpl< DISubprogram * >::const_iterator subprogram_iterator
Base class for scope-like contexts.
unsigned compile_unit_count() const
A pair of DIGlobalVariable and DIExpression.
bool stripNonLineTableDebugInfo(Module &M)
Downgrade the debug info in a module to contain only line table information.
A range adaptor for a pair of iterators.
unsigned getDebugMetadataVersionFromModule(const Module &M)
Return Debug Info Metadata Version by checking module flags.
iterator_range< scope_iterator > scopes() const
iterator_range< type_iterator > types() const
void processInstruction(const Module &M, const Instruction &I)
Process a single instruction and collect debug info anchors.
SmallVectorImpl< DICompileUnit * >::const_iterator compile_unit_iterator
unsigned global_variable_count() const