REDO_PREVIOUS
};
+ enum ResolveFlags
+ {
+ RESOLVE_BLOCKS = 1,
+ RESOLVE_TYPES = 2,
+ RESOLVE_VARIABLES = 4,
+ RESOLVE_EXPRESSIONS = 8,
+ RESOLVE_FUNCTIONS = 16,
+ RESOLVE_ALL = 31
+ };
+
Features features;
Module *module;
std::vector<std::string> imported_names;
variables. */
void generate(Stage &, Mode);
+ template<typename T>
+ bool resolve(Stage &, unsigned &, unsigned);
+
+ /** Resolves various references between nodes. Flags can be specified to
+ request resolving particular aspects. Resolving may ripple into other
+ aspects as necessary. */
+ void resolve(Stage &, unsigned = RESOLVE_ALL);
+
bool validate(Stage &);
/** Applies optimizations to a stage. The return value indicates which