static LogicalResult printOperation(CppEmitter &emitter,
CondBranchOp condBranchOp) {
- raw_ostream &os = emitter.ostream();
+ raw_indented_ostream &os = emitter.ostream();
Block &trueSuccessor = *condBranchOp.getTrueDest();
Block &falseSuccessor = *condBranchOp.getFalseDest();
os << "if (" << emitter.getOrCreateName(condBranchOp.getCondition())
<< ") {\n";
+ os.indent();
+
// If condition is true.
for (auto pair : llvm::zip(condBranchOp.getTrueOperands(),
trueSuccessor.getArguments())) {
return condBranchOp.emitOpError("unable to find label for successor block");
}
os << emitter.getOrCreateName(trueSuccessor) << ";\n";
- os << "} else {\n";
+ os.unindent() << "} else {\n";
+ os.indent();
// If condition is false.
for (auto pair : llvm::zip(condBranchOp.getFalseOperands(),
falseSuccessor.getArguments())) {
<< "unable to find label for successor block";
}
os << emitter.getOrCreateName(falseSuccessor) << ";\n";
- os << "}";
+ os.unindent() << "}";
return success();
}
LogicalResult CppEmitter::emitLabel(Block &block) {
if (!hasBlockLabel(block))
return block.getParentOp()->emitError("label for block not found");
- os << getOrCreateName(block) << ":\n";
+ // FIXME: Add feature in `raw_indented_ostream` to ignore indent for block
+ // label instead of using `getOStream`.
+ os.getOStream() << getOrCreateName(block) << ":\n";
return success();
}