comma::SRInfo Class Reference

#include <SRInfo.h>

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

List of all members.

Public Member Functions

llvm::StringRef getLinkName () const
 Returns the link name associated with this SRInfo.
llvm::Function * getLLVMFunction () const
 Returns the LLVM Function implementing the subroutine.
llvm::Module * getLLVMModule () const
 Returns the LLVM Module this subroutine is defined/declared in.
bool isaFunction () const
 Returns true if this info corresponds to a Comma function.
bool isaProcedure () const
 Returns true if this info corresponds to a Comma procedure.
bool hasSRet () const
 Returns true if this subroutine follows the structure return calling convention.
bool usesVRet () const
 Returns true if this subroutine uses the vstack for its return value(s).
bool hasAggRet () const
 Returns true if this function has an aggregate return value.
bool isImported () const
 Returns true if this subroutine is imported from an external library.
Canonical Subroutines

Currently, all subroutines are declared within the context of a domain. DomainInstanceDecl's provide a public view of a domains declarations, whereas PercentDecl's and AddDecl's provide an internal view. All publicly visible declarations have a corresponding internal declaration. The "canonical" declaration is an internal declaration resolved to a completion (definition) when possible. Consider the following:

   domain D with
      procedure Foo;
      procedure Bar;
   add
      procedure Foo is ... end Foo;
      pragma Import(C, Bar, "bar_impl");
   end D;

The public view of D is represented by a unique DomainInstanceDecl which provides declarations for Foo and Bar. These public decls have a corresponding internal representation in the unique PercentDecl associated with D. The declaration for Foo has a completion (definition) is D's AddDecl -- this is the "canonical" declaration for Foo. The declaration for Bar does not have a completion in the AddDecl since it is imported -- the "canonical" declaration is the one provided by D's PercentDecl.

See also:
InstanceInfo::getKeySRDecl()


SubroutineDeclgetDeclaration ()
 Returns the canonical SubroutineDecl associated with this info.
const SubroutineDeclgetDeclaration () const
 Returns the canonical SubroutineDecl associated with this info.

Friends

class InstanceInfo

Detailed Description

Definition at line 26 of file SRInfo.h.


Member Function Documentation

const SubroutineDecl* comma::SRInfo::getDeclaration (  )  const [inline]

Returns the canonical SubroutineDecl associated with this info.

Definition at line 62 of file SRInfo.h.

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

Returns the canonical SubroutineDecl associated with this info.

Definition at line 61 of file SRInfo.h.

llvm::StringRef comma::SRInfo::getLinkName (  )  const [inline]

Returns the link name associated with this SRInfo.

Definition at line 66 of file SRInfo.h.

llvm::Function* comma::SRInfo::getLLVMFunction (  )  const [inline]

Returns the LLVM Function implementing the subroutine.

Definition at line 69 of file SRInfo.h.

llvm::Module* comma::SRInfo::getLLVMModule (  )  const [inline]

Returns the LLVM Module this subroutine is defined/declared in.

Definition at line 72 of file SRInfo.h.

bool comma::SRInfo::hasAggRet (  )  const [inline]

Returns true if this function has an aggregate return value.

Definition at line 98 of file SRInfo.h.

bool comma::SRInfo::hasSRet (  )  const [inline]

Returns true if this subroutine follows the structure return calling convention.

Definition at line 82 of file SRInfo.h.

bool comma::SRInfo::isaFunction (  )  const [inline]

Returns true if this info corresponds to a Comma function.

Definition at line 75 of file SRInfo.h.

bool comma::SRInfo::isaProcedure (  )  const [inline]

Returns true if this info corresponds to a Comma procedure.

Definition at line 78 of file SRInfo.h.

bool comma::SRInfo::isImported (  )  const [inline]

Returns true if this subroutine is imported from an external library.

In particular, this method returns true if the subroutine declaration is associated with an import pragma.

Definition at line 105 of file SRInfo.h.

bool comma::SRInfo::usesVRet (  )  const [inline]

Returns true if this subroutine uses the vstack for its return value(s).

Definition at line 86 of file SRInfo.h.


Friends And Related Function Documentation

friend class InstanceInfo [friend]

Definition at line 111 of file SRInfo.h.


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

Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1