std::set<ProgramSyntax::Node *> unused_nodes;
std::map<ProgramSyntax::VariableDeclaration *, ProgramSyntax::Node *> assignments;
bool assignment;
+ bool record_target;
ProgramSyntax::VariableDeclaration *assignment_target;
+ bool indeterminate_target;
+ bool self_referencing;
UnusedVariableLocator();
private:
void process();
void generate(ProgramSyntax::Stage &);
- void optimize(ProgramSyntax::Stage &);
+ bool optimize(ProgramSyntax::Stage &);
static void inject_block(ProgramSyntax::Block &, const ProgramSyntax::Block &);
template<typename T>
static void apply(ProgramSyntax::Stage &);