comma::CodeGenTypes Class Reference

#include <CodeGenTypes.h>

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

List of all members.

Public Member Functions

 CodeGenTypes (CodeGen &CG, DomainInstanceDecl *context)
const llvm::Type * lowerType (const Type *type)
const llvm::Type * lowerDomainType (const DomainType *type)
const llvm::IntegerType * lowerEnumType (const EnumerationType *type)
const llvm::FunctionType * lowerSubroutine (const SubroutineDecl *decl)
const llvm::IntegerType * lowerDiscreteType (const DiscreteType *type)
const llvm::ArrayType * lowerArrayType (const ArrayType *type)
const llvm::StructType * lowerRecordType (const RecordType *type)
const llvm::Type * lowerIncompleteType (const IncompleteType *type)
const llvm::PointerType * lowerThinAccessType (const AccessType *type)
const llvm::StructType * lowerFatAccessType (const AccessType *type)
const llvm::Type * lowerAccessType (const AccessType *type)
const llvm::Type * lowerUniversalType (const UniversalType *type)
const llvm::StructType * lowerArrayBounds (const ArrayType *arrTy)
const llvm::StructType * lowerScalarBounds (const DiscreteType *type)
const llvm::StructType * lowerRange (const Range *range)
 Returns the structure type used to hold the bounds of the given range.
unsigned getComponentIndex (const ComponentDecl *component)
unsigned getTypeAlignment (const llvm::Type *type) const
uint64_t getTypeSize (const llvm::Type *type) const
 Returns the size of the given llvm type in bytes.
const TyperesolveType (const Type *type)

Calling Conventions.



enum  CallConvention { CC_Simple, CC_Sret, CC_Vstack }
CallConvention getConvention (const SubroutineDecl *decl)

Detailed Description

Lowers various Comma AST nodes to LLVM types.

As a rule, Comma type nodes need not in and of themselves provide enough information to lower them directly to LLVM IR. Thus, declaration nodes are often needed so that the necessary information can be extracted from the AST.

Definition at line 29 of file CodeGenTypes.h.


Member Enumeration Documentation

Enumerator:
CC_Simple 
CC_Sret 
CC_Vstack 

Definition at line 94 of file CodeGenTypes.h.


Constructor & Destructor Documentation

comma::CodeGenTypes::CodeGenTypes ( CodeGen CG,
DomainInstanceDecl context 
) [inline]

Definition at line 32 of file CodeGenTypes.h.


Member Function Documentation

unsigned CodeGenTypes::getComponentIndex ( const ComponentDecl component  ) 

Returns the index into an llvm structure type that should be used to GEP the given component.

Definition at line 485 of file CodeGenTypes.cpp.

CodeGenTypes::CallConvention CodeGenTypes::getConvention ( const SubroutineDecl decl  ) 

Definition at line 554 of file CodeGenTypes.cpp.

unsigned CodeGenTypes::getTypeAlignment ( const llvm::Type *  type  )  const

Returns the alignment of the given llvm type according to the targets ABI conventions.

Definition at line 69 of file CodeGenTypes.cpp.

uint64_t CodeGenTypes::getTypeSize ( const llvm::Type *  type  )  const

Returns the size of the given llvm type in bytes.

Definition at line 74 of file CodeGenTypes.cpp.

const llvm::Type * CodeGenTypes::lowerAccessType ( const AccessType type  ) 

Definition at line 453 of file CodeGenTypes.cpp.

const llvm::StructType * CodeGenTypes::lowerArrayBounds ( const ArrayType arrTy  ) 

Returns the structure type used to hold the bounds of an unconstrained array.

Definition at line 500 of file CodeGenTypes.cpp.

const llvm::ArrayType * CodeGenTypes::lowerArrayType ( const ArrayType type  ) 

Definition at line 284 of file CodeGenTypes.cpp.

const llvm::IntegerType * CodeGenTypes::lowerDiscreteType ( const DiscreteType type  ) 

Definition at line 276 of file CodeGenTypes.cpp.

const llvm::Type * CodeGenTypes::lowerDomainType ( const DomainType type  ) 

Definition at line 167 of file CodeGenTypes.cpp.

const llvm::IntegerType* comma::CodeGenTypes::lowerEnumType ( const EnumerationType type  ) 
const llvm::StructType * CodeGenTypes::lowerFatAccessType ( const AccessType type  ) 

Definition at line 416 of file CodeGenTypes.cpp.

const llvm::Type * CodeGenTypes::lowerIncompleteType ( const IncompleteType type  ) 

Definition at line 376 of file CodeGenTypes.cpp.

const llvm::StructType * CodeGenTypes::lowerRange ( const Range range  ) 

Returns the structure type used to hold the bounds of the given range.

Definition at line 524 of file CodeGenTypes.cpp.

const llvm::StructType * CodeGenTypes::lowerRecordType ( const RecordType type  ) 

Definition at line 333 of file CodeGenTypes.cpp.

const llvm::StructType * CodeGenTypes::lowerScalarBounds ( const DiscreteType type  ) 

Returns the structure type used to hold the bounds of the given scalar type.

Definition at line 515 of file CodeGenTypes.cpp.

const llvm::FunctionType * CodeGenTypes::lowerSubroutine ( const SubroutineDecl decl  ) 

Determine the return type for this subroutine.

Definition at line 194 of file CodeGenTypes.cpp.

const llvm::PointerType * CodeGenTypes::lowerThinAccessType ( const AccessType type  ) 

Definition at line 382 of file CodeGenTypes.cpp.

const llvm::Type * CodeGenTypes::lowerType ( const Type type  ) 

Definition at line 79 of file CodeGenTypes.cpp.

const llvm::Type * CodeGenTypes::lowerUniversalType ( const UniversalType type  ) 

Definition at line 461 of file CodeGenTypes.cpp.

const Type * CodeGenTypes::resolveType ( const Type type  ) 

Resolves the given type.

In the case a domain types this method resolves the underlying representation. In the case of incomplete types this method resolves the completion.

Definition at line 134 of file CodeGenTypes.cpp.


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

Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1