Vuo  0.4.8
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
VuoCompilerType Class Reference

Description

The compiler detail class for VuoType.

Public Member Functions

Value * generateValueFromStringFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_valueFromString().
 
Value * generateStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_stringFromValue().
 
Value * generateInterprocessStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_interprocessStringFromValue().
 
Value * generateSummaryFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_summaryFromValue().
 
Type * getType (void)
 Returns the LLVM type for this Vuo type.
 
Type * getFunctionParameterType (void)
 Returns the LLVM type for this Vuo type when it appears as a function parameter.
 
Attributes getFunctionParameterAttributes (void)
 Returns the LLVM attributes for this Vuo type when it appears as a function parameter.
 
- Public Member Functions inherited from VuoBaseDetail< VuoType >
 VuoBaseDetail (string description, VuoType *base)
 Creates a VuoType detail class.
 
VuoTypegetBase (void) const
 Returns the VuoType detail class instance's base class instance.
 
void setBase (VuoType *base)
 Sets the VuoType detail class instance's base class instance.
 
- Public Member Functions inherited from VuoCompilerModule
vector< string > getDependencies (void)
 Returns a list of this VuoCompilerModule's dependencies.
 
Module * getModule (void)
 Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to.
 

Static Public Member Functions

static VuoCompilerTypenewType (string typeName, Module *module)
 Creates a type from the type definition in the module.
 
- Static Public Member Functions inherited from VuoCompilerModule
static VuoCompilerModulenewModule (string moduleKey, Module *module)
 Instantiates a VuoCompilerModule (or child class) corresponding to the type of VuoCompilerModule defined in the LLVM module.
 
static Function * declareFunctionInModule (Module *module, Function *function)
 Copies the function's header into the LLVM module, if it's not already there.
 

Additional Inherited Members

- Protected Member Functions inherited from VuoCompilerModule
 VuoCompilerModule (VuoModule *base, Module *module)
 Creates a VuoCompilerModule associated with the given LLVM module, as a pseudo compiler detail class of the given VuoModule.
 
virtual ~VuoCompilerModule ()
 Destructor.
 
virtual void parseMetadata (void)
 Parses the metadata of this VuoCompilerModule (name, description, ...) from the LLVM module.
 
string parseString (json_object *o, string key)
 Parses the string value for key in the top level of the JSON object.
 
int parseInt (json_object *o, string key)
 Parses the integer value for key in the top level of the JSON object.
 
bool parseBool (json_object *o, string key)
 Parses the boolean value for key in the top level of the JSON object.
 
vector< string > parseArrayOfStrings (json_object *o, string key)
 Parses the array-of-strings value for key in the top level of the JSON object.
 
string nameForGlobal (string genericGlobalVarOrFuncName)
 Returns the mangled name for a function or global variable.
 
void renameGlobalVarsAndFuncs (void)
 Renames the global variables and functions within the LLVM module so that they are unique to this VuoCompilerModule.
 
- Static Protected Member Functions inherited from VuoCompilerModule
static string nameForGlobal (string nameBeforeCompilation, string moduleKey)
 Returns the mangled name for a function or global variable.
 
static bool hasOriginalOrMangledGlobal (string nameBeforeCompilation, Module *module, string moduleKey)
 Returns true if the module contains a function or global variable with name nameBeforeCompilation or with the corresponding mangled name.
 
- Protected Attributes inherited from VuoCompilerModule
struct json_object * moduleDetails
 This module's metadata, found in the argument to VuoModuleDetails in the module definition.
 
vector< string > dependencies
 The dependencies found in this module's metadata.
 
Module * module
 The LLVM module that defines this node class or type.
 
VuoModulebase
 The (pseudo) base for this (pseudo) compiler detail class.
 
VuoCompilerBitcodeParserparser
 The parser of the LLVM module.
 

Member Function Documentation

Value * VuoCompilerType::generateInterprocessStringFromValueFunctionCall ( Module *  module,
BasicBlock *  block,
Value *  arg 
)

Generates a call to [Type]_interprocessStringFromValue().

Parameters
moduleThe destination LLVM module (i.e., generated code).
blockThe LLVM block to which to append the function call.
argThe argument to pass to [Type]_interprocessStringFromValue().
Returns
The return value of [Type]_interprocessStringFromValue(), or the return value of [Type]_stringFromValue() if the interprocess function doesn't exist.
Value * VuoCompilerType::generateStringFromValueFunctionCall ( Module *  module,
BasicBlock *  block,
Value *  arg 
)

Generates a call to [Type]_stringFromValue().

Parameters
moduleThe destination LLVM module (i.e., generated code).
blockThe LLVM block to which to append the function call.
argThe argument to pass to [Type]_stringFromValue().
Returns
The return value of [Type]_stringFromValue().
Value * VuoCompilerType::generateSummaryFromValueFunctionCall ( Module *  module,
BasicBlock *  block,
Value *  arg 
)

Generates a call to [Type]_summaryFromValue().

Parameters
moduleThe destination LLVM module (i.e., generated code).
blockThe LLVM block to which to append the function call.
argThe argument to pass to [Type]_summaryFromValue().
Returns
The return value of [Type]_summaryFromValue().
Value * VuoCompilerType::generateValueFromStringFunctionCall ( Module *  module,
BasicBlock *  block,
Value *  arg 
)

Generates a call to [Type]_valueFromString().

Parameters
moduleThe destination LLVM module (i.e., generated code).
blockThe LLVM block to which to append the function call.
argThe argument to pass to [Type]_valueFromString().
Returns
The return value of [Type]_valueFromString().
Attributes VuoCompilerType::getFunctionParameterAttributes ( void  )

Returns the LLVM attributes for this Vuo type when it appears as a function parameter.

This is needed, for example, for struct parameters with the "byval" attribute.

Type * VuoCompilerType::getFunctionParameterType ( void  )

Returns the LLVM type for this Vuo type when it appears as a function parameter.

This is needed, for example, for struct parameters with the "byval" attribute.

VuoCompilerType * VuoCompilerType::newType ( string  typeName,
Module *  module 
)
static

Creates a type from the type definition in the module.

If the module does not contain a type definition, returns NULL.


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