Go to the documentation of this file.
9 #ifndef LLVM_IR_MODULESLOTTRACKER_H
10 #define LLVM_IR_MODULESLOTTRACKER_H
46 std::unique_ptr<SlotTracker> MachineStorage;
47 bool ShouldCreateStorage =
false;
48 bool ShouldInitializeAllMetadata =
false;
57 ProcessFunctionHookFn;
72 bool ShouldInitializeAllMetadata =
true);
102 std::vector<std::pair<unsigned, const MDNode *>>;
virtual ~ModuleSlotTracker()
Destructor to clean up storage.
int getLocalSlot(const Value *V)
Return the slot number of the specified local value.
This is an optimization pass for GlobalISel generic memory operations.
const Module * getModule() const
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
const Function * getCurrentFunction() const
void incorporateFunction(const Function &F)
Incorporate the given function.
Manage lifetime of a slot tracker for printing IR.
ModuleSlotTracker(SlotTracker &Machine, const Module *M, const Function *F=nullptr)
Wrap a preinitialized SlotTracker.
virtual unsigned getNextMetadataSlot()=0
virtual ~AbstractSlotTrackerStorage()
void collectMDNodes(MachineMDNodeListType &L, unsigned LB, unsigned UB) const
SlotTracker * getMachine()
Lazily creates a slot tracker.
print Print MemDeps of function
A Module instance is used to store all the information related to an LLVM module.
void setProcessHook(std::function< void(AbstractSlotTrackerStorage *, const Module *, bool)>)
virtual void createMetadataSlot(const MDNode *)=0
Machine Check Debug Module
std::vector< std::pair< unsigned, const MDNode * > > MachineMDNodeListType
virtual int getMetadataSlot(const MDNode *)=0
This class provides computation of slot numbers for LLVM Assembly writing.
Abstract interface of slot tracker storage.
LLVM Value Representation.