LLVM  7.0.0svn
Public Types | Public Member Functions | List of all members
llvm::SlotTracker Class Reference

This class provides computation of slot numbers for LLVM Assembly writing. More...

Public Types

using ValueMap = DenseMap< const Value *, unsigned >
 ValueMap - A mapping of Values to slot numbers. More...
 
using mdn_iterator = DenseMap< const MDNode *, unsigned >::iterator
 MDNode map iterators. More...
 
using as_iterator = DenseMap< AttributeSet, unsigned >::iterator
 AttributeSet map iterators. More...
 

Public Member Functions

 SlotTracker (const Module *M, bool ShouldInitializeAllMetadata=false)
 Construct from a module. More...
 
 SlotTracker (const Function *F, bool ShouldInitializeAllMetadata=false)
 Construct from a function, starting out in incorp state. More...
 
 SlotTracker (const SlotTracker &)=delete
 
SlotTrackeroperator= (const SlotTracker &)=delete
 
int getLocalSlot (const Value *V)
 Return the slot number of the specified value in it's type plane. More...
 
int getGlobalSlot (const GlobalValue *V)
 getGlobalSlot - Get the slot number of a global value. More...
 
int getMetadataSlot (const MDNode *N)
 getMetadataSlot - Get the slot number of a MDNode. More...
 
int getAttributeGroupSlot (AttributeSet AS)
 
void incorporateFunction (const Function *F)
 If you'd like to deal with a function instead of just a module, use this method to get its data into the SlotTracker. More...
 
const FunctiongetFunction () const
 
void purgeFunction ()
 After calling incorporateFunction, use this method to remove the most recently incorporated function from the SlotTracker. More...
 
mdn_iterator mdn_begin ()
 
mdn_iterator mdn_end ()
 
unsigned mdn_size () const
 
bool mdn_empty () const
 
as_iterator as_begin ()
 
as_iterator as_end ()
 
unsigned as_size () const
 
bool as_empty () const
 
void initialize ()
 This function does the actual initialization. More...
 

Detailed Description

This class provides computation of slot numbers for LLVM Assembly writing.

Definition at line 665 of file AsmWriter.cpp.

Member Typedef Documentation

◆ as_iterator

AttributeSet map iterators.

Definition at line 745 of file AsmWriter.cpp.

◆ mdn_iterator

MDNode map iterators.

Definition at line 737 of file AsmWriter.cpp.

◆ ValueMap

ValueMap - A mapping of Values to slot numbers.

Definition at line 668 of file AsmWriter.cpp.

Constructor & Destructor Documentation

◆ SlotTracker() [1/3]

SlotTracker::SlotTracker ( const Module M,
bool  ShouldInitializeAllMetadata = false 
)
explicit

Construct from a module.

If ShouldInitializeAllMetadata, initializes all metadata in all functions, giving correct numbering for metadata referenced only from within a function (even if no functions have been initialized).

Definition at line 863 of file AsmWriter.cpp.

◆ SlotTracker() [2/3]

SlotTracker::SlotTracker ( const Function F,
bool  ShouldInitializeAllMetadata = false 
)
explicit

Construct from a function, starting out in incorp state.

If ShouldInitializeAllMetadata, initializes all metadata in all functions, giving correct numbering for metadata referenced only from within a function (even if no functions have been initialized).

Definition at line 868 of file AsmWriter.cpp.

◆ SlotTracker() [3/3]

llvm::SlotTracker::SlotTracker ( const SlotTracker )
delete

Member Function Documentation

◆ as_begin()

as_iterator llvm::SlotTracker::as_begin ( )
inline

Definition at line 747 of file AsmWriter.cpp.

◆ as_empty()

bool llvm::SlotTracker::as_empty ( ) const
inline

Definition at line 750 of file AsmWriter.cpp.

◆ as_end()

as_iterator llvm::SlotTracker::as_end ( )
inline

Definition at line 748 of file AsmWriter.cpp.

◆ as_size()

unsigned llvm::SlotTracker::as_size ( ) const
inline

Definition at line 749 of file AsmWriter.cpp.

◆ getAttributeGroupSlot()

int SlotTracker::getAttributeGroupSlot ( AttributeSet  AS)

Definition at line 1047 of file AsmWriter.cpp.

References initialize().

◆ getFunction()

const Function* llvm::SlotTracker::getFunction ( ) const
inline

Definition at line 729 of file AsmWriter.cpp.

◆ getGlobalSlot()

int SlotTracker::getGlobalSlot ( const GlobalValue V)

getGlobalSlot - Get the slot number of a global value.

Definition at line 1017 of file AsmWriter.cpp.

References initialize(), and MI.

◆ getLocalSlot()

int SlotTracker::getLocalSlot ( const Value V)

Return the slot number of the specified value in it's type plane.

getLocalSlot - Get the slot number for a value that is local to a function.

If something is not in the SlotTracker, return -1.

Definition at line 1037 of file AsmWriter.cpp.

References assert(), and initialize().

◆ getMetadataSlot()

int SlotTracker::getMetadataSlot ( const MDNode N)

getMetadataSlot - Get the slot number of a MDNode.

Definition at line 1027 of file AsmWriter.cpp.

References initialize(), and MI.

Referenced by WriteAsOperandInternal().

◆ incorporateFunction()

void llvm::SlotTracker::incorporateFunction ( const Function F)
inline

If you'd like to deal with a function instead of just a module, use this method to get its data into the SlotTracker.

Definition at line 724 of file AsmWriter.cpp.

◆ initialize()

void SlotTracker::initialize ( )
inline

This function does the actual initialization.

< Prevent re-processing next time we're called.

Definition at line 872 of file AsmWriter.cpp.

◆ mdn_begin()

mdn_iterator llvm::SlotTracker::mdn_begin ( )
inline

Definition at line 739 of file AsmWriter.cpp.

◆ mdn_empty()

bool llvm::SlotTracker::mdn_empty ( ) const
inline

Definition at line 742 of file AsmWriter.cpp.

◆ mdn_end()

mdn_iterator llvm::SlotTracker::mdn_end ( )
inline

Definition at line 740 of file AsmWriter.cpp.

◆ mdn_size()

unsigned llvm::SlotTracker::mdn_size ( ) const
inline

Definition at line 741 of file AsmWriter.cpp.

◆ operator=()

SlotTracker& llvm::SlotTracker::operator= ( const SlotTracker )
delete

◆ purgeFunction()

void SlotTracker::purgeFunction ( )

After calling incorporateFunction, use this method to remove the most recently incorporated function from the SlotTracker.

Clean up after incorporating a function.

This will reset the state of the machine back to just the module contents.

This is the only way to get out of the function incorporation state that affects get*Slot/Create*Slot. Function incorporation state is indicated by TheFunction != 0.

Definition at line 1008 of file AsmWriter.cpp.

References ST_DEBUG.


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