|
LLVM 22.0.0git
|
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. | |
| using | mdn_iterator = DenseMap<const MDNode*, unsigned>::iterator |
| MDNode map iterators. | |
| using | as_iterator = DenseMap<AttributeSet, unsigned>::iterator |
| AttributeSet map iterators. | |
| using | guid_iterator = DenseMap<GlobalValue::GUID, unsigned>::iterator |
| GUID map iterators. | |
Public Member Functions | |
| SlotTracker (const Module *M, bool ShouldInitializeAllMetadata=false) | |
| Construct from a module. | |
| SlotTracker (const Function *F, bool ShouldInitializeAllMetadata=false) | |
| Construct from a function, starting out in incorp state. | |
| SlotTracker (const ModuleSummaryIndex *Index) | |
| Construct from a module summary index. | |
| SlotTracker (const SlotTracker &)=delete | |
| SlotTracker & | operator= (const SlotTracker &)=delete |
| ~SlotTracker () override=default | |
| void | setProcessHook (std::function< void(AbstractSlotTrackerStorage *, const Module *, bool)>) |
| void | setProcessHook (std::function< void(AbstractSlotTrackerStorage *, const Function *, bool)>) |
| unsigned | getNextMetadataSlot () override |
| void | createMetadataSlot (const MDNode *N) override |
| getMetadataSlot - Get the slot number of a MDNode. | |
| int | getLocalSlot (const Value *V) |
| Return the slot number of the specified value in it's type plane. | |
| int | getGlobalSlot (const GlobalValue *V) |
| getGlobalSlot - Get the slot number of a global value. | |
| int | getMetadataSlot (const MDNode *N) override |
| getMetadataSlot - Get the slot number of a MDNode. | |
| int | getAttributeGroupSlot (AttributeSet AS) |
| int | getModulePathSlot (StringRef Path) |
| int | getGUIDSlot (GlobalValue::GUID GUID) |
| int | getTypeIdSlot (StringRef Id) |
| int | getTypeIdCompatibleVtableSlot (StringRef Id) |
| 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. | |
| const Function * | getFunction () const |
| void | purgeFunction () |
| After calling incorporateFunction, use this method to remove the most recently incorporated function from the SlotTracker. | |
| 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 | initializeIfNeeded () |
| These functions do the actual initialization. | |
| int | initializeIndexIfNeeded () |
| Public Member Functions inherited from llvm::AbstractSlotTrackerStorage | |
| virtual | ~AbstractSlotTrackerStorage () |
This class provides computation of slot numbers for LLVM Assembly writing.
Definition at line 787 of file AsmWriter.cpp.
AttributeSet map iterators.
Definition at line 910 of file AsmWriter.cpp.
GUID map iterators.
Definition at line 918 of file AsmWriter.cpp.
MDNode map iterators.
Definition at line 902 of file AsmWriter.cpp.
| using llvm::SlotTracker::ValueMap = DenseMap<const Value *, unsigned> |
ValueMap - A mapping of Values to slot numbers.
Definition at line 790 of file AsmWriter.cpp.
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 1056 of file AsmWriter.cpp.
Referenced by operator=(), and SlotTracker().
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 1061 of file AsmWriter.cpp.
References F, and getParent().
|
explicit |
Construct from a module summary index.
Definition at line 1065 of file AsmWriter.cpp.
|
delete |
References SlotTracker().
|
overridedefault |
References setProcessHook().
|
inline |
Definition at line 912 of file AsmWriter.cpp.
|
inline |
Definition at line 915 of file AsmWriter.cpp.
|
inline |
Definition at line 913 of file AsmWriter.cpp.
|
inline |
Definition at line 914 of file AsmWriter.cpp.
getMetadataSlot - Get the slot number of a MDNode.
Implements llvm::AbstractSlotTrackerStorage.
Definition at line 1317 of file AsmWriter.cpp.
References N.
| int SlotTracker::getAttributeGroupSlot | ( | AttributeSet | AS | ) |
Definition at line 1340 of file AsmWriter.cpp.
References initializeIfNeeded().
Definition at line 894 of file AsmWriter.cpp.
| int SlotTracker::getGlobalSlot | ( | const GlobalValue * | V | ) |
getGlobalSlot - Get the slot number of a global value.
Definition at line 1295 of file AsmWriter.cpp.
References initializeIfNeeded(), and MI.
| int SlotTracker::getGUIDSlot | ( | GlobalValue::GUID | GUID | ) |
Definition at line 1358 of file AsmWriter.cpp.
References I, and initializeIndexIfNeeded().
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 1330 of file AsmWriter.cpp.
References assert(), initializeIfNeeded(), and llvm::isa().
getMetadataSlot - Get the slot number of a MDNode.
Implements llvm::AbstractSlotTrackerStorage.
Definition at line 1320 of file AsmWriter.cpp.
References initializeIfNeeded(), MI, and N.
Referenced by writeAsOperandInternal().
| int SlotTracker::getModulePathSlot | ( | StringRef | Path | ) |
Definition at line 1349 of file AsmWriter.cpp.
References I, and initializeIndexIfNeeded().
|
inlineoverridevirtual |
Implements llvm::AbstractSlotTrackerStorage.
Definition at line 872 of file AsmWriter.cpp.
| int SlotTracker::getTypeIdCompatibleVtableSlot | ( | StringRef | Id | ) |
Definition at line 1376 of file AsmWriter.cpp.
References I, and initializeIndexIfNeeded().
| int SlotTracker::getTypeIdSlot | ( | StringRef | Id | ) |
Definition at line 1367 of file AsmWriter.cpp.
References I, and initializeIndexIfNeeded().
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 889 of file AsmWriter.cpp.
References F.
|
inline |
These functions do the actual initialization.
< Prevent re-processing next time we're called.
Definition at line 1068 of file AsmWriter.cpp.
Referenced by getAttributeGroupSlot(), getGlobalSlot(), getLocalSlot(), and getMetadataSlot().
| int SlotTracker::initializeIndexIfNeeded | ( | ) |
< Prevent re-processing next time we're called.
Definition at line 1078 of file AsmWriter.cpp.
Referenced by getGUIDSlot(), getModulePathSlot(), getTypeIdCompatibleVtableSlot(), and getTypeIdSlot().
|
inline |
Definition at line 904 of file AsmWriter.cpp.
|
inline |
Definition at line 907 of file AsmWriter.cpp.
|
inline |
Definition at line 905 of file AsmWriter.cpp.
|
inline |
Definition at line 906 of file AsmWriter.cpp.
|
delete |
References SlotTracker().
| 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 1286 of file AsmWriter.cpp.
References ST_DEBUG.
| void SlotTracker::setProcessHook | ( | std::function< void(AbstractSlotTrackerStorage *, const Function *, bool)> | Fn | ) |
Definition at line 1310 of file AsmWriter.cpp.
| void SlotTracker::setProcessHook | ( | std::function< void(AbstractSlotTrackerStorage *, const Module *, bool)> | Fn | ) |
Definition at line 1304 of file AsmWriter.cpp.
Referenced by ~SlotTracker().