Lines Matching refs:block
67 for (auto& block: basicBlocks) {
68 int first_block_addr = block->firstInstruction->instAddr();
70 first_block_addr + block->size * sizeof(TheGpuISA::RawMachInst)) {
71 return block.get();
79 ControlFlowInfo::lastInstruction(const BasicBlock* block) const
81 if (block->isExit()) {
85 return instructions.at(block->firstInstruction->instNum() +
86 block->size - 1);
90 ControlFlowInfo::postDominator(const BasicBlock* block) const
92 if (block->isExit()) {
95 return basicBlock(lastInstruction(block)->ipdInstNum());
126 // exit basic block
172 // the only postdominator of the exit block is itself
174 //copy all basic blocks to all postdominator lists except for exit block
175 for (auto& block : basicBlocks) {
176 if (!block->isExit()) {
178 block->postDominatorIds.insert(i);
248 for (auto& block : basicBlocks) {
249 std::cout << "PD(" << block->id << ") = {";
250 std::copy(block->postDominatorIds.begin(),
251 block->postDominatorIds.end(),
260 for (const auto& block : basicBlocks) {
261 if (block->isExit()) {
264 std::cout << "IPD(" << block->id << ") = ";
265 std::cout << postDominator(block.get())->id << ", ";