mie: cf: implement op printer callbacks
This commit is contained in:
@@ -1,9 +1,30 @@
|
|||||||
#include <mie/dialect/dialect.h>
|
#include <mie/dialect/dialect.h>
|
||||||
#include <mie/ir/op-definition.h>
|
#include <mie/ir/op-definition.h>
|
||||||
|
#include <mie/ir/op.h>
|
||||||
#include <mie/macros.h>
|
#include <mie/macros.h>
|
||||||
|
#include <mie/print/printer.h>
|
||||||
|
|
||||||
static enum mie_status print(struct mie_printer *printer, const struct mie_op *op)
|
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;
|
return MIE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
#include <mie/dialect/dialect.h>
|
#include <mie/dialect/dialect.h>
|
||||||
|
#include <mie/ir/block.h>
|
||||||
#include <mie/ir/op-definition.h>
|
#include <mie/ir/op-definition.h>
|
||||||
|
#include <mie/ir/op.h>
|
||||||
#include <mie/macros.h>
|
#include <mie/macros.h>
|
||||||
|
#include <mie/print/printer.h>
|
||||||
|
|
||||||
static enum mie_status print(struct mie_printer *printer, const struct mie_op *op)
|
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;
|
return MIE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user