Home
last modified time | relevance | path

Searched refs:SPIRBlock (Results 1 – 14 of 14) sorted by relevance

/third_party/skia/third_party/externals/spirv-cross/
Dspirv_cfg.cpp107 auto &block = compiler.get<SPIRBlock>(block_id); in post_order_visit()
119 if (block.merge == SPIRBlock::MergeLoop && post_order_visit(block.merge_block)) in post_order_visit()
125 case SPIRBlock::Direct: in post_order_visit()
130 case SPIRBlock::Select: in post_order_visit()
137 case SPIRBlock::MultiSelect: in post_order_visit()
158 if (block.merge == SPIRBlock::MergeSelection && post_order_visit(block.next_block)) in post_order_visit()
177 if (block.terminator == SPIRBlock::MultiSelect && num_succeeding_edges == 1) in post_order_visit()
230 while (block_id != SPIRBlock::NoDominator) in find_loop_dominator()
234 return SPIRBlock::NoDominator; in find_loop_dominator()
236 return SPIRBlock::NoDominator; in find_loop_dominator()
[all …]
Dspirv_cross.hpp561 SPIRBlock *current_block = nullptr;
685 auto &block = get<SPIRBlock>(next); in is_single_block_loop()
686 return block.merge == SPIRBlock::MergeLoop && block.continue_block == ID(next); in is_single_block_loop()
712 void register_global_read_dependencies(const SPIRBlock &func, uint32_t id);
725 bool block_is_pure(const SPIRBlock &block);
727 bool execution_is_branchless(const SPIRBlock &from, const SPIRBlock &to) const;
728 bool execution_is_direct_branch(const SPIRBlock &from, const SPIRBlock &to) const;
729 bool execution_is_noop(const SPIRBlock &from, const SPIRBlock &to) const;
730 SPIRBlock::ContinueBlockType continue_block_type(const SPIRBlock &continue_block) const;
737 bool block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method method) const;
[all …]
Dspirv_cross.cpp96 bool Compiler::block_is_pure(const SPIRBlock &block) in block_is_pure()
99 if (block.terminator == SPIRBlock::Kill || in block_is_pure()
100 block.terminator == SPIRBlock::TerminateRay || in block_is_pure()
101 block.terminator == SPIRBlock::IgnoreIntersection) in block_is_pure()
221 if (!block_is_pure(get<SPIRBlock>(block))) in function_is_pure()
232 void Compiler::register_global_read_dependencies(const SPIRBlock &block, uint32_t id) in register_global_read_dependencies()
273 register_global_read_dependencies(get<SPIRBlock>(block), id); in register_global_read_dependencies()
408 auto &block = get<SPIRBlock>(block_id); in flush_control_dependent_expressions()
1423 bool Compiler::block_is_loop_candidate(const SPIRBlock &block, SPIRBlock::Method method) const in block_is_loop_candidate()
1429 if (method == SPIRBlock::MergeToSelectForLoop || method == SPIRBlock::MergeToSelectContinueForLoop) in block_is_loop_candidate()
[all …]
Dspirv_parser.cpp937 current_block = &set<SPIRBlock>(id); in parse()
948 current_block->terminator = SPIRBlock::Direct; in parse()
963 current_block->terminator = SPIRBlock::Select; in parse()
973 current_block->terminator = SPIRBlock::MultiSelect; in parse()
992 current_block->terminator = SPIRBlock::Kill; in parse()
1001 current_block->terminator = SPIRBlock::TerminateRay; in parse()
1009 current_block->terminator = SPIRBlock::IgnoreIntersection; in parse()
1017 current_block->terminator = SPIRBlock::Return; in parse()
1026 current_block->terminator = SPIRBlock::Return; in parse()
1036 current_block->terminator = SPIRBlock::Unreachable; in parse()
[all …]
Dspirv_glsl.hpp354 SPIRBlock *current_emitting_block = nullptr;
355 SPIRBlock *current_emitting_switch = nullptr;
359 void emit_block_instructions(SPIRBlock &block);
497 const SPIRBlock *current_continue_block = nullptr;
609 void emit_block_chain(SPIRBlock &block);
615 bool attempt_emit_loop_header(SPIRBlock &block, SPIRBlock::Method method);
622 void flush_undeclared_variables(SPIRBlock &block);
753 virtual void emit_block_hints(const SPIRBlock &block);
883 std::string emit_for_loop_initializers(const SPIRBlock &block);
884 void emit_while_loop_initializers(const SPIRBlock &block);
[all …]
Dspirv_glsl.cpp5561 auto &header = get<SPIRBlock>(current_continue_block->loop_dominator); in emit_uninitialized_temporary()
5597 auto &header = get<SPIRBlock>(current_continue_block->loop_dominator); in declare_temporary()
9812 void CompilerGLSL::emit_block_instructions(SPIRBlock &block) in emit_block_instructions()
13790 auto &b = get<SPIRBlock>(block); in emit_function()
13814 auto &entry_block = get<SPIRBlock>(func.entry_block); in emit_function()
13901 auto &block = get<SPIRBlock>(block_id); in emit_function()
13940 auto &child = get<SPIRBlock>(to); in flush_phi()
13966 find_if(itr + 1, end(child.phi_variables), [&](const SPIRBlock::Phi &future_phi) -> bool { in flush_phi()
14004 auto &to_block = get<SPIRBlock>(to); in branch_to_continue()
14021 auto &from_block = get<SPIRBlock>(from); in branch_to_continue()
[all …]
Dspirv_cpp.hpp76 void emit_block_chain(SPIRBlock &block);
Dspirv_parser.hpp48 SPIRBlock *current_block = nullptr;
Dspirv_hlsl.hpp266 void emit_block_hints(const SPIRBlock &block) override;
Dspirv_common.hpp732 struct SPIRBlock : IVariant struct
872 SPIRV_CROSS_DECLARE_CLONE(SPIRBlock)
Dspirv_hlsl.cpp5810 void CompilerHLSL::emit_block_hints(const SPIRBlock &block) in emit_block_hints()
5814 case SPIRBlock::HintFlatten: in emit_block_hints()
5817 case SPIRBlock::HintDontFlatten: in emit_block_hints()
5820 case SPIRBlock::HintUnroll: in emit_block_hints()
5823 case SPIRBlock::HintDontUnroll: in emit_block_hints()
Dspirv_cross_parsed_ir.cpp44 pool_group->pools[TypeBlock].reset(new ObjectPool<SPIRBlock>); in ParsedIR()
Dspirv_msl.hpp733 void emit_block_hints(const SPIRBlock &block) override;
Dspirv_msl.cpp1586 auto &b = get<SPIRBlock>(block); in extract_global_variables_from_function()
3478 auto &blk = get<SPIRBlock>(blk_id); in add_interface_block()
3479 if (blk.terminator == SPIRBlock::Return) in add_interface_block()
15976 void CompilerMSL::emit_block_hints(const SPIRBlock &) in emit_block_hints() argument