std::map<const VariableDeclaration *, Id> variable_load_ids;
Id next_id;
Id r_expression_result_id;
+ bool r_constant_result;
bool constant_expression;
bool spec_constant;
bool reachable;
Id write_expression(Opcode, Id, Id, Id);
void write_deconstruct(Id, Id, Id *, unsigned);
Id write_construct(Id, const Id *, unsigned);
- static BasicTypeDeclaration &get_element_type(BasicTypeDeclaration &);
virtual void visit(Block &);
virtual void visit(Literal &);
virtual void visit(Assignment &);
virtual void visit(TernaryExpression &);
virtual void visit(FunctionCall &);
- void visit_constructor(FunctionCall &, const std::vector<Id> &);
+ void visit_constructor(FunctionCall &, const std::vector<Id> &, bool);
void visit_builtin_matrix_comp_mult(FunctionCall &, const std::vector<Id> &);
void visit_builtin_texture(FunctionCall &, const std::vector<Id> &);
void visit_builtin_texel_fetch(FunctionCall &, const std::vector<Id> &);