Reformat to better match existing style.

This commit is contained in:
Dejan Mircevski 2016-01-19 14:52:31 -05:00
parent cce6a8acaf
commit 159b59faa7

View File

@ -65,26 +65,26 @@ namespace {
// Use by calling visit() on the root block. // Use by calling visit() on the root block.
class ReadableOrderTraverser { class ReadableOrderTraverser {
public: public:
explicit ReadableOrderTraverser(std::function<void(Block*)> callback) explicit ReadableOrderTraverser(std::function<void(Block*)> callback) : callback_(callback) {}
: callback_(callback) {}
// Visits the block if it hasn't been visited already and isn't currently // Visits the block if it hasn't been visited already and isn't currently
// being delayed. Invokes callback(block), then descends into its successors. // being delayed. Invokes callback(block), then descends into its successors.
// Delays merge-block processing until all the branches have been completed. // Delays merge-block processing until all the branches have been completed.
void visit(Block* block) { void visit(Block* block)
{
assert(block); assert(block);
if (visited_[block] || delayed_[block]) return; if (visited_[block] || delayed_[block])
return;
callback_(block); callback_(block);
visited_[block] = true; visited_[block] = true;
Block* mergeBlock = nullptr; Block* mergeBlock = nullptr;
auto mergeInst = block->getMergeInstruction(); auto mergeInst = block->getMergeInstruction();
if (mergeInst) { if (mergeInst) {
Id mergeId = mergeInst->getIdOperand(0); Id mergeId = mergeInst->getIdOperand(0);
mergeBlock = mergeBlock = block->getParent().getParent().getInstruction(mergeId)->getBlock();
block->getParent().getParent().getInstruction(mergeId)->getBlock();
delayed_[mergeBlock] = true; delayed_[mergeBlock] = true;
} }
for (const auto succ : block->getSuccessors()) visit(succ); for (const auto succ : block->getSuccessors())
visit(succ);
if (mergeBlock) { if (mergeBlock) {
delayed_[mergeBlock] = false; delayed_[mergeBlock] = false;
visit(mergeBlock); visit(mergeBlock);
@ -98,6 +98,7 @@ class ReadableOrderTraverser {
}; };
} }
void spv::inReadableOrder(Block* root, std::function<void(Block*)> callback) { void spv::inReadableOrder(Block* root, std::function<void(Block*)> callback)
{
ReadableOrderTraverser(callback).visit(root); ReadableOrderTraverser(callback).visit(root);
} }