Struct Compiler::AnalyzeVariableScopeAccessHandler

Nested Relationships

This struct is a nested type of Class Compiler.

Inheritance Relationships

Base Type

Struct Documentation

struct AnalyzeVariableScopeAccessHandler : public SPIRV_CROSS_NAMESPACE::Compiler::OpcodeHandler

Public Functions

AnalyzeVariableScopeAccessHandler(Compiler &compiler_, SPIRFunction &entry_)
virtual bool follow_function_call(const SPIRFunction&) override
virtual void set_current_block(const SPIRBlock &block) override
void notify_variable_access(uint32_t id, uint32_t block)
bool id_is_phi_variable(uint32_t id) const
bool id_is_potential_temporary(uint32_t id) const
virtual bool handle(spv::Op op, const uint32_t *args, uint32_t length) override
virtual bool handle_terminator(const SPIRBlock &block) override

Public Members

Compiler &compiler
SPIRFunction &entry
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> accessed_variables_to_block
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> accessed_temporaries_to_block
std::unordered_map<uint32_t, uint32_t> result_id_to_type
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> complete_write_variables_to_block
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> partial_write_variables_to_block
std::unordered_set<uint32_t> access_chain_expressions
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> rvalue_forward_children
const SPIRBlock *current_block = nullptr