Vuo
0.7.0
|
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 (Type **secondType) |
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. | |
![]() | |
VuoBaseDetail (string description, VuoType *base) | |
Creates a VuoType detail class. | |
VuoType * | getBase (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. | |
![]() | |
VuoCompilerTargetSet | parseTargetSet (json_object *o, string key) |
Parses the target set value for key in the top level of the JSON object. | |
VuoCompilerTargetSet::MacVersion | parseMacVersion (string version) |
Parses a Mac OS version from a string. | |
vector< string > | getDependencies (void) |
Returns a list of this VuoCompilerModule's dependencies. | |
VuoCompilerTargetSet | getCompatibleTargets (void) |
Returns the set of targets (operating system versions) with which this module is compatible. | |
Module * | getModule (void) |
Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to. | |
VuoModule * | getPseudoBase (void) |
Returns the (psuedo) base for this (psuedo) compiler detail class. | |
Static Public Member Functions | |
static VuoCompilerType * | newType (string typeName, Module *module) |
Creates a type from the type definition in the module. | |
![]() | |
static VuoCompilerModule * | newModule (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. | |
Protected Member Functions | |
VuoCompilerType (string typeName, Module *module) | |
Creates a type from an LLVM module, and creates its corresponding base VuoType . | |
![]() | |
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 | 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. | |
Additional Inherited Members | |
![]() | |
static string | parseString (json_object *o, string key) |
Parses the string value for key in the top level of the JSON object. | |
static int | parseInt (json_object *o, string key) |
Parses the integer value for key in the top level of the JSON object. | |
static bool | parseBool (json_object *o, string key) |
Parses the boolean value for key in the top level of the JSON object. | |
static vector< string > | parseArrayOfStrings (json_object *o, string key) |
Parses the array-of-strings value for key in the top level of the JSON object. | |
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. | |
![]() | |
struct json_object * | moduleDetails |
This module's metadata, found in the argument to VuoModuleMetadata 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. | |
VuoModule * | base |
The (pseudo) base for this (pseudo) compiler detail class. | |
VuoCompilerBitcodeParser * | parser |
The parser of the LLVM module. | |
|
protected |
Creates a type from an LLVM module, and creates its corresponding base VuoType
.
Value * VuoCompilerType::generateInterprocessStringFromValueFunctionCall | ( | Module * | module, |
BasicBlock * | block, | ||
Value * | arg | ||
) |
Generates a call to [Type]_interprocessStringFromValue().
module | The destination LLVM module (i.e., generated code). |
block | The LLVM block to which to append the function call. |
arg | The argument to pass to [Type]_interprocessStringFromValue(). |
[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().
module | The destination LLVM module (i.e., generated code). |
block | The LLVM block to which to append the function call. |
arg | The argument to pass to [Type]_stringFromValue(). |
[Type]_stringFromValue(). Value * VuoCompilerType::generateSummaryFromValueFunctionCall | ( | Module * | module, |
BasicBlock * | block, | ||
Value * | arg | ||
) |
Generates a call to [Type]_summaryFromValue().
module | The destination LLVM module (i.e., generated code). |
block | The LLVM block to which to append the function call. |
arg | The argument to pass to [Type]_summaryFromValue(). |
[Type]_summaryFromValue(). Value * VuoCompilerType::generateValueFromStringFunctionCall | ( | Module * | module, |
BasicBlock * | block, | ||
Value * | arg | ||
) |
Generates a call to [Type]_valueFromString().
module | The destination LLVM module (i.e., generated code). |
block | The LLVM block to which to append the function call. |
arg | The argument to pass to [Type]_valueFromString(). |
[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 | ( | Type ** | secondType | ) |
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.
Type * VuoCompilerType::getType | ( | void | ) |
Returns the LLVM type for this Vuo type.
|
static |
Creates a type from the type definition in the module.
If the module does not contain a type definition, returns NULL.