comma::SRFrame Class Reference
#include <Frame.h>
List of all members.
Classes | 
| class   | ActivationEntry | 
| class   | Subframe | 
Public Member Functions | 
|   | SRFrame (SRInfo *routineInfo, CodeGenRoutine &CGR, llvm::IRBuilder<> &Builder) | 
|   | ~SRFrame () | 
| SRInfo *  | getSRInfo () | 
|   | Returns the SRInfo object this SRFrame represents.  
  | 
| SubroutineDecl *  | getDeclaration () | 
|   | 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 () | 
 | 
 | 
| 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.  
  | 
 | 
 | 
| 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) | 
 | 
 | 
| 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
Member Function Documentation
      
        
          | void SRFrame::addLandingPad  | 
          ( | 
           | 
           )  | 
           | 
        
      
 
Adds a landing pad to the current subframe. 
Definition at line 134 of file Frame.cpp.
 
 
      
        
          | llvm::Value* comma::SRFrame::createEntry  | 
          ( | 
          const ValueDecl *  | 
           decl,  | 
        
        
           | 
           | 
          activation::Tag  | 
           tag,  | 
        
        
           | 
           | 
          const llvm::Type *  | 
           type |   | 
        
        
           | 
          ) | 
           |  |  [inline] | 
        
      
 
 
      
        
          | llvm::Value * SRFrame::createTemp  | 
          ( | 
          const llvm::Type *  | 
           type | 
           )  | 
           | 
        
      
 
 
      
        
          | void SRFrame::emitEpilogue  | 
          ( | 
           | 
           )  | 
           | 
        
      
 
 
      
        
          | void SRFrame::emitPrologue  | 
          ( | 
          llvm::BasicBlock *  | 
           bodyBB | 
           )  | 
           | 
        
      
 
 
      
        
          | void SRFrame::emitReturn  | 
          ( | 
           | 
           )  | 
           | 
        
      
 
 
Returns the subroutine associated with this frame. 
Definition at line 63 of file Frame.h.
 
 
      
        
          | llvm::Value* comma::SRFrame::getImplicitContext  | 
          ( | 
           | 
           )  | 
           [inline] | 
        
      
 
 
      
        
          | 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] | 
        
      
 
 
      
        
          | SRInfo* comma::SRFrame::getSRInfo  | 
          ( | 
           | 
           )  | 
           [inline] | 
        
      
 
 
      
        
          | bool SRFrame::hasLandingPad  | 
          ( | 
           | 
           )  | 
           | 
        
      
 
Returns true if there exists a subframe with an active landing pad. 
Definition at line 139 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: