Lines Matching refs:blocks
234 // boundaries of basic blocks.
343 // Textbook implementation of a basic block generator. All basic blocks
356 SANDBOX_DIE("Internal compiler error; cannot compute basic blocks");
409 // basic block and any blocks referenced by this block. This function can be
411 // blocks in STL containers; this gives an easy option to use STL to find
412 // shared tail sequences of basic blocks.
414 const TargetsToBlocks& blocks) {
422 // We compare the sequence of instructions in both basic blocks.
429 // both basic blocks, we know the relative ordering between the two blocks
452 int c = PointerCompare(blocks.find(insn1.jt_ptr)->second,
453 blocks.find(insn2.jt_ptr)->second,
454 blocks);
456 c = PointerCompare(blocks.find(insn1.jf_ptr)->second,
457 blocks.find(insn2.jf_ptr)->second,
458 blocks);
468 int c = PointerCompare(blocks.find(insn1.jt_ptr)->second,
469 blocks.find(insn2.jt_ptr)->second,
470 blocks);
489 void CodeGen::MergeTails(TargetsToBlocks *blocks) {
490 // We enter all of our basic blocks into a set using the BasicBlock::Less()
491 // comparator. This naturally results in blocks with identical tails of
494 // the basic blocks and update the pointer in the "blocks" map.
495 // Returns the number of unique basic blocks.
502 BasicBlock::Less<TargetsToBlocks> less(*blocks, PointerCompare);
505 for (TargetsToBlocks::iterator iter = blocks->begin();
506 iter != blocks->end();
513 // basic blocks.
517 // sequence of instructions. Merge the two blocks and update the
518 // pointer in the "blocks" map.
550 const TargetsToBlocks& blocks,
552 // Textbook implementation of a toposort. We keep looking for basic blocks
557 // sorting algorithm terminates when there are no more basic blocks that have
558 // no incoming branches. If we didn't move all blocks from the set of
563 ComputeIncomingBranches(first_block, blocks, &unordered_blocks);
579 iter = blocks.find(last_insn->jf_ptr);
584 iter = blocks.find(last_insn->jt_ptr);
593 iter = blocks.find(last_insn->next);
612 // Proceed by picking an arbitrary node from the set of basic blocks that
627 // go forward. This means, iterating over the basic blocks in reverse makes
700 // Our basic blocks have been sorted and relative jump offsets have been
702 // basic blocks to be concatenated into a BPF program.