comma::SRFrame Class Reference

#include <Frame.h>

Collaboration diagram for comma::SRFrame:
Collaboration graph
[legend]

List of all members.

Classes

class  ActivationEntry
class  Subframe

Public Member Functions

 SRFrame (SRInfo *routineInfo, CodeGenRoutine &CGR, llvm::IRBuilder<> &Builder)
 ~SRFrame ()
SRInfogetSRInfo ()
 Returns the SRInfo object this SRFrame represents.
SubroutineDeclgetDeclaration ()
 Returns the subroutine associated with this frame.
llvm::Function * getLLVMFunction ()
 Returns the LLVM function managed by this frame.
llvm::IRBuilder & getIRBuilder ()
llvm::BasicBlock * makeBasicBlock (const std::string &name="", llvm::BasicBlock *insertBefore=0)
 Creates a basic block for this frame.
bool hasLandingPad ()
 Returns true if there exists a subframe with an active landing pad.
llvm::BasicBlock * getLandingPad ()
void removeLandingPad ()
 Removes the innermost landing pad from the subframe stack, if any.
void emitReturn ()
llvm::Value * getReturnValue ()
llvm::Value * getImplicitContext ()
void emitPrologue (llvm::BasicBlock *bodyBB)
void emitEpilogue ()
Subframe Methods.



void pushFrame (llvm::BasicBlock *associatedBB)
 Pushes a new subframe and associates it with the given basic block.
void popFrame ()
 Pop's the current subframe.
void stacksave ()
 Marks the current subframe as a stacksave frame.
void addLandingPad ()
 Adds a landing pad to the current subframe.
Allocation methods.



llvm::Value * createTemp (const llvm::Type *type)
void associate (const ValueDecl *decl, activation::Tag tag, llvm::Value *slot)
llvm::Value * lookup (const ValueDecl *decl, activation::Tag tag)
llvm::Value * createEntry (const ValueDecl *decl, activation::Tag tag, const llvm::Type *type)
Type insert/lookup.



void associate (const PrimaryType *type, activation::Tag tag, llvm::Value *value)
llvm::Value * lookup (const PrimaryType *type, activation::Tag tag)

Detailed Description

Definition at line 51 of file Frame.h.


Constructor & Destructor Documentation

SRFrame::SRFrame ( SRInfo routineInfo,
CodeGenRoutine CGR,
llvm::IRBuilder<> &  Builder 
)

Definition at line 83 of file Frame.cpp.

SRFrame::~SRFrame (  ) 

Definition at line 119 of file Frame.cpp.


Member Function Documentation

void SRFrame::addLandingPad (  ) 

Adds a landing pad to the current subframe.

Definition at line 134 of file Frame.cpp.

void SRFrame::associate ( const PrimaryType type,
activation::Tag  tag,
llvm::Value *  value 
)

Definition at line 270 of file Frame.cpp.

void SRFrame::associate ( const ValueDecl decl,
activation::Tag  tag,
llvm::Value *  slot 
)

Definition at line 245 of file Frame.cpp.

llvm::Value* comma::SRFrame::createEntry ( const ValueDecl decl,
activation::Tag  tag,
const llvm::Type *  type 
) [inline]

Definition at line 110 of file Frame.h.

llvm::Value * SRFrame::createTemp ( const llvm::Type *  type  ) 

Definition at line 235 of file Frame.cpp.

void SRFrame::emitEpilogue (  ) 

Definition at line 304 of file Frame.cpp.

void SRFrame::emitPrologue ( llvm::BasicBlock *  bodyBB  ) 

Definition at line 296 of file Frame.cpp.

void SRFrame::emitReturn (  ) 

Definition at line 181 of file Frame.cpp.

SubroutineDecl* comma::SRFrame::getDeclaration (  )  [inline]

Returns the subroutine associated with this frame.

Definition at line 63 of file Frame.h.

llvm::Value* comma::SRFrame::getImplicitContext (  )  [inline]

Definition at line 130 of file Frame.h.

llvm::IRBuilder& comma::SRFrame::getIRBuilder (  )  [inline]

Returns the IRBuilder which should be used to emit code for this subroutine.

Definition at line 70 of file Frame.h.

llvm::BasicBlock * SRFrame::getLandingPad (  ) 

Returns the basic block for use as a landing pad, or null if hasLandingPad returns false.

Definition at line 144 of file Frame.cpp.

llvm::Function* comma::SRFrame::getLLVMFunction (  )  [inline]

Returns the LLVM function managed by this frame.

Definition at line 66 of file Frame.h.

llvm::Value* comma::SRFrame::getReturnValue (  )  [inline]

Definition at line 128 of file Frame.h.

SRInfo* comma::SRFrame::getSRInfo (  )  [inline]

Returns the SRInfo object this SRFrame represents.

Definition at line 60 of file Frame.h.

bool SRFrame::hasLandingPad (  ) 

Returns true if there exists a subframe with an active landing pad.

Definition at line 139 of file Frame.cpp.

llvm::Value * SRFrame::lookup ( const PrimaryType type,
activation::Tag  tag 
)

Definition at line 284 of file Frame.cpp.

llvm::Value * SRFrame::lookup ( const ValueDecl decl,
activation::Tag  tag 
)

Definition at line 258 of file Frame.cpp.

llvm::BasicBlock * SRFrame::makeBasicBlock ( const std::string &  name = "",
llvm::BasicBlock *  insertBefore = 0 
)

Creates a basic block for this frame.

Definition at line 329 of file Frame.cpp.

void SRFrame::popFrame (  ) 

Pop's the current subframe.

Definition at line 173 of file Frame.cpp.

void SRFrame::pushFrame ( llvm::BasicBlock *  associatedBB  ) 

Pushes a new subframe and associates it with the given basic block.

Definition at line 168 of file Frame.cpp.

void SRFrame::removeLandingPad (  ) 

Removes the innermost landing pad from the subframe stack, if any.

Definition at line 156 of file Frame.cpp.

void SRFrame::stacksave (  ) 

Marks the current subframe as a stacksave frame.

Definition at line 129 of file Frame.cpp.


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

Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1