+ const std::vector<InstructionBlock> &get_blocks() const { return blocks; }
+ bool is_specializable() const { return specializable; }
+
+ /** 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;
+
+public:
+ void set_debug_name(const std::string &n) { SpirVModuleBackend::set_debug_name(n); }