void reflect_name(CodeIterator);
void reflect_member_name(CodeIterator);
void reflect_entry_point(CodeIterator);
void reflect_name(CodeIterator);
void reflect_member_name(CodeIterator);
void reflect_entry_point(CodeIterator);
void reflect_void_type(CodeIterator);
void reflect_bool_type(CodeIterator);
void reflect_int_type(CodeIterator);
void reflect_void_type(CodeIterator);
void reflect_bool_type(CodeIterator);
void reflect_int_type(CodeIterator);
std::vector<Variable> variables;
std::vector<Constant> spec_constants;
std::vector<InstructionBlock> blocks;
std::vector<Variable> variables;
std::vector<Constant> spec_constants;
std::vector<InstructionBlock> blocks;
const std::vector<Variable> &get_variables() const { return variables; }
const std::vector<Constant> &get_spec_constants() const { return spec_constants; }
const std::vector<InstructionBlock> &get_blocks() const { return blocks; }
const std::vector<Variable> &get_variables() const { return variables; }
const std::vector<Constant> &get_spec_constants() const { return spec_constants; }
const std::vector<InstructionBlock> &get_blocks() const { return blocks; }
/** Creates a new module which is a specialized version of this one. */
SpirVModule *specialize(const std::map<std::string, int> &) const;
/** Creates a new module which is a specialized version of this one. */
SpirVModule *specialize(const std::map<std::string, int> &) const;
private:
std::vector<const InstructionBlock *> collect_visited_blocks(const std::map<unsigned, int> &) const;
void collect_visited_blocks(unsigned, std::vector<std::uint8_t> &) const;
private:
std::vector<const InstructionBlock *> collect_visited_blocks(const std::map<unsigned, int> &) const;
void collect_visited_blocks(unsigned, std::vector<std::uint8_t> &) const;