A Builder for DAG graphs. More...
#include <mdl_generated_dag.h>
Public Member Functions | |
virtual IType_factory * | get_type_factory ()=0 |
Get the type factory of this instance. More... | |
virtual IValue_factory * | get_value_factory ()=0 |
Get the value factory of this instance. More... | |
virtual DAG_constant const * | create_constant (IValue const *value)=0 |
Create a constant. More... | |
virtual DAG_node const * | create_call (char const *signature, IDefinition::Semantics sema, DAG_call::Call_argument const call_args[], int num_call_args, IType const *ret_type)=0 |
Create a call. More... | |
virtual DAG_parameter const * | create_parameter (IType const *type, int index)=0 |
Create a parameter reference. More... | |
virtual bool | enable_cse (bool flag)=0 |
Enable common subexpression elimination. More... | |
virtual bool | enable_opt (bool flag)=0 |
Enable optimization. More... | |
virtual bool | enable_unsafe_math_opt (bool flag)=0 |
Enable unsafe math optimizations. More... | |
Public Member Functions inherited from mi::base::IInterface | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
Public Types inherited from mi::base::Interface_declare< 0x01dbe5fb, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> | IID |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x01dbe5fb, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
Static Public Member Functions inherited from mi::base::IInterface | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
A Builder for DAG graphs.
This interface is implemented by various entities that can build DAG IR representations.
Note that there is no way to create temporaries here. Temporaries are not meant to be created by a user, but are automatically created by the DAG IR optimizer if requested.
|
pure virtual |
Create a call.
signature | The signature of the called function. |
sema | The semantic of the called function. |
call_args | The call arguments of the called function. |
num_call_args | The number of call arguments. |
ret_type | The return type of the called function. |
|
pure virtual |
Create a constant.
value | The value of the constant. |
|
pure virtual |
Create a parameter reference.
type | The type of the parameter |
index | The index of the parameter. |
|
pure virtual |
Enable common subexpression elimination.
flag | If true, CSE will be enabled, else disabled. |
|
pure virtual |
Enable optimization.
flag | If true, optimizations in general will be enabled, else disabled. |
|
pure virtual |
Enable unsafe math optimizations.
flag | If true, unsafe math optimizations will be enabled, else disabled. |
|
pure virtual |
Get the type factory of this instance.
|
pure virtual |
Get the value factory of this instance.