9#ifndef LLVM_IR_MODULESLOTTRACKER_H 
   10#define LLVM_IR_MODULESLOTTRACKER_H 
   47  std::unique_ptr<SlotTracker> MachineStorage;
 
   48  bool ShouldCreateStorage = 
false;
 
   49  bool ShouldInitializeAllMetadata = 
false;
 
   58      ProcessFunctionHookFn;
 
   73                             bool ShouldInitializeAllMetadata = 
true);
 
   88  void incorporateFunction(
const Function &
F);
 
   95  int getLocalSlot(
const Value *V);
 
  103      std::vector<std::pair<unsigned, const MDNode *>>;
 
 
Abstract interface of slot tracker storage.
virtual unsigned getNextMetadataSlot()=0
virtual int getMetadataSlot(const MDNode *)=0
virtual ~AbstractSlotTrackerStorage()
virtual void createMetadataSlot(const MDNode *)=0
const Module * getModule() const
ModuleSlotTracker(SlotTracker &Machine, const Module *M, const Function *F=nullptr)
Wrap a preinitialized SlotTracker.
virtual ~ModuleSlotTracker()
Destructor to clean up storage.
std::vector< std::pair< unsigned, const MDNode * > > MachineMDNodeListType
void collectMDNodes(MachineMDNodeListType &L, unsigned LB, unsigned UB) const
SlotTracker * getMachine()
Lazily creates a slot tracker.
const Function * getCurrentFunction() const
A Module instance is used to store all the information related to an LLVM module.
This class provides computation of slot numbers for LLVM Assembly writing.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.