• Home
  • Raw
  • Download

Lines Matching refs:Block

31 SpirvShader::Block::Block(InsnIterator begin, InsnIterator end)  in Block()  function in sw::SpirvShader::Block
36 kind = Block::Simple; in Block()
50 outs.emplace(Block::ID(branchInstruction.word(1))); in Block()
57 mergeBlock = Block::ID(mergeInstruction.word(1)); in Block()
58 continueTarget = Block::ID(mergeInstruction.word(2)); in Block()
62 kind = Block::Simple; in Block()
69 outs.emplace(Block::ID(branchInstruction.word(2))); in Block()
70 outs.emplace(Block::ID(branchInstruction.word(3))); in Block()
77 mergeBlock = Block::ID(mergeInstruction.word(1)); in Block()
83 mergeBlock = Block::ID(mergeInstruction.word(1)); in Block()
84 continueTarget = Block::ID(mergeInstruction.word(2)); in Block()
95 outs.emplace(Block::ID(branchInstruction.word(2))); in Block()
98 outs.emplace(Block::ID(branchInstruction.word(w))); in Block()
106 mergeBlock = Block::ID(mergeInstruction.word(1)); in Block()
120 void SpirvShader::Function::TraverseReachableBlocks(Block::ID id, SpirvShader::Block::Set &reachabl… in TraverseReachableBlocks()
134 Block::Set reachable; in AssignBlockFields()
150 if(block.kind == Block::Loop) in AssignBlockFields()
160 void SpirvShader::Function::ForeachBlockDependency(Block::ID blockId, std::function<void(Block::ID)… in ForeachBlockDependency()
165 if(block.kind != Block::Loop || // if not a loop... in ForeachBlockDependency()
173 bool SpirvShader::Function::ExistsPath(Block::ID from, Block::ID to, Block::ID notPassingThrough) c… in ExistsPath()
176 Block::Set seen; in ExistsPath()
179 std::queue<Block::ID> pending; in ExistsPath()
198 void SpirvShader::EmitState::addOutputActiveLaneMaskEdge(Block::ID to, RValue<SIMD::Int> mask) in addOutputActiveLaneMaskEdge()
203 void SpirvShader::EmitState::addActiveLaneMaskEdge(Block::ID from, Block::ID to, RValue<SIMD::Int> … in addActiveLaneMaskEdge()
205 auto edge = Block::Edge{ from, to }; in addActiveLaneMaskEdge()
219 RValue<SIMD::Int> SpirvShader::GetActiveLaneMaskEdge(EmitState *state, Block::ID from, Block::ID to… in GetActiveLaneMaskEdge()
221 auto edge = Block::Edge{ from, to }; in GetActiveLaneMaskEdge()
227 void SpirvShader::EmitBlocks(Block::ID id, EmitState *state, Block::ID ignore /* = 0 */) const in EmitBlocks()
232 std::deque<Block::ID> pending; in EmitBlocks()
248 function.ForeachBlockDependency(id, [&](Block::ID dep) { in EmitBlocks()
267 case Block::Simple: in EmitBlocks()
268 case Block::StructuredBranchConditional: in EmitBlocks()
269 case Block::UnstructuredBranchConditional: in EmitBlocks()
270 case Block::StructuredSwitch: in EmitBlocks()
271 case Block::UnstructuredSwitch: in EmitBlocks()
275 case Block::Loop: in EmitBlocks()
341 std::unordered_set<Block::ID> loopBlocks; in EmitLoop()
346 std::unordered_set<Block::ID> incomingBlocks; in EmitLoop()
375 std::unordered_map<Block::ID, SIMD::Int> mergeActiveLaneMasks; in EmitLoop()
431 auto edge = Block::Edge{ in, mergeBlockId }; in EmitLoop()
498 auto target = Block::ID(insn.word(1)); in EmitBranch()
510 auto trueBlockId = Block::ID(block.branchInstruction.word(2)); in EmitBranchConditional()
511 auto falseBlockId = Block::ID(block.branchInstruction.word(3)); in EmitBranchConditional()
548 auto caseBlockId = Block::ID(block.branchInstruction.word(i * 2 + 4)); in EmitSwitch()
555 auto defaultBlockId = Block::ID(block.branchInstruction.word(2)); in EmitSwitch()
679 void SpirvShader::StorePhi(Block::ID currentBlock, InsnIterator insn, EmitState *state, std::unorde… in StorePhi()
692 auto blockId = Block::ID(insn.word(w + 1)); in StorePhi()
772 if(block.second.kind == Block::Loop) in WriteCFGGraphVizDotFile()