33 #ifndef LLVM_CODEGEN_GCMETADATA_H
34 #define LLVM_CODEGEN_GCMETADATA_H
85 typedef std::vector<GCPoint>::iterator
iterator;
93 std::vector<GCRoot> Roots;
94 std::vector<GCPoint> SafePoints;
122 Roots.push_back(
GCRoot(Num, Metadata));
127 return Roots.erase(position);
134 SafePoints.push_back(
GCPoint(Kind, Label, DL));
146 size_t size()
const {
return SafePoints.size(); }
166 typedef std::vector<GCStrategy*> list_type;
170 list_type StrategyList;
size_t roots_size() const
void addStackRoot(int Num, const Constant *Metadata)
The main container class for the LLVM Intermediate Representation.
int StackOffset
Offset from the stack pointer.
std::vector< GCPoint >::iterator iterator
GCPoint(GC::PointKind K, MCSymbol *L, DebugLoc DL)
GCFunctionInfo & getFunctionInfo(const Function &F)
GC::PointKind Kind
The kind of the safe point.
list_type::const_iterator iterator
int Num
Usually a frame index.
roots_iterator roots_end()
GCFunctionInfo(const Function &F, GCStrategy &S)
LLVM Constant Representation.
Instr is the return address of a call.
Instr is a loop (backwards branch).
roots_iterator removeStackRoot(roots_iterator position)
removeStackRoot - Removes a root.
GCStrategy & getStrategy()
uint64_t getFrameSize() const
roots_iterator roots_begin()
size_t live_size(const iterator &p) const
live_iterator live_begin(const iterator &p)
Instr is a return instruction.
const Constant * Metadata
Instr is a call instruction.
void setFrameSize(uint64_t S)
GCRoot(int N, const Constant *MD)
const Function & getFunction() const
live_iterator live_end(const iterator &p)
void addSafePoint(GC::PointKind Kind, MCSymbol *Label, DebugLoc DL)
std::vector< GCRoot >::iterator roots_iterator
std::vector< GCRoot >::const_iterator live_iterator