mie: cf: implement op printer callbacks
This commit is contained in:
@@ -1,9 +1,30 @@
|
||||
#include <mie/dialect/dialect.h>
|
||||
#include <mie/ir/op-definition.h>
|
||||
#include <mie/ir/op.h>
|
||||
#include <mie/macros.h>
|
||||
#include <mie/print/printer.h>
|
||||
|
||||
static enum mie_status print(struct mie_printer *printer, const struct mie_op *op)
|
||||
{
|
||||
if (MIE_VECTOR_COUNT(op->op_args) != 1) {
|
||||
return MIE_SUCCESS;
|
||||
}
|
||||
|
||||
if (MIE_VECTOR_COUNT(op->op_successors) != 2) {
|
||||
return MIE_SUCCESS;
|
||||
}
|
||||
|
||||
const struct mie_op_arg *cond = &op->op_args.items[0];
|
||||
const struct mie_op_successor *if_true = &op->op_successors.items[0];
|
||||
const struct mie_op_successor *if_false = &op->op_successors.items[1];
|
||||
|
||||
b_stream_write_char(printer->p_stream, ' ');
|
||||
mie_printer_print_op_arg(printer, cond, false);
|
||||
b_stream_write_string(printer->p_stream, ", ", NULL);
|
||||
mie_printer_print_op_successor(printer, if_true, true);
|
||||
b_stream_write_string(printer->p_stream, ", ", NULL);
|
||||
mie_printer_print_op_successor(printer, if_false, true);
|
||||
|
||||
return MIE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
#include <mie/dialect/dialect.h>
|
||||
#include <mie/ir/block.h>
|
||||
#include <mie/ir/op-definition.h>
|
||||
#include <mie/ir/op.h>
|
||||
#include <mie/macros.h>
|
||||
#include <mie/print/printer.h>
|
||||
|
||||
static enum mie_status print(struct mie_printer *printer, const struct mie_op *op)
|
||||
{
|
||||
b_stream_write_char(printer->p_stream, ' ');
|
||||
const struct mie_op_successor *successor = &op->op_successors.items[0];
|
||||
|
||||
mie_printer_print_op_successor(printer, successor, true);
|
||||
|
||||
return MIE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user