37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
|
|
#ifndef _SELECT_BUILDER_H_
|
||
|
|
#define _SELECT_BUILDER_H_
|
||
|
|
|
||
|
|
#include <mie/ir/instr.h>
|
||
|
|
#include <mie/select/builder.h>
|
||
|
|
#include <mie/select/opcode.h>
|
||
|
|
#include <mie/status.h>
|
||
|
|
|
||
|
|
struct mie_select_value;
|
||
|
|
struct mie_select_builder;
|
||
|
|
|
||
|
|
struct select_instr_type {
|
||
|
|
enum mie_status (*i_push)(struct mie_select_builder *, struct mie_instr *);
|
||
|
|
};
|
||
|
|
|
||
|
|
struct select_node_type {
|
||
|
|
};
|
||
|
|
|
||
|
|
extern const struct select_instr_type *select_type_for_instr(
|
||
|
|
enum mie_instr_type instr);
|
||
|
|
extern const struct select_node_type *select_type_for_node(
|
||
|
|
enum mie_select_opcode node);
|
||
|
|
|
||
|
|
extern struct mie_select_value *select_builder_get_value(
|
||
|
|
struct mie_select_builder *builder, struct mie_value *ir_val);
|
||
|
|
extern enum mie_status select_builder_set_value(
|
||
|
|
struct mie_select_builder *builder, struct mie_value *ir_val,
|
||
|
|
struct mie_select_value *graph_val);
|
||
|
|
|
||
|
|
extern struct mie_select_value *select_builder_get_mem_access(
|
||
|
|
struct mie_select_builder *builder, struct mie_value *ir_val);
|
||
|
|
extern enum mie_status select_builder_set_mem_access(
|
||
|
|
struct mie_select_builder *builder, struct mie_value *ir_val,
|
||
|
|
struct mie_select_value *graph_val);
|
||
|
|
|
||
|
|
#endif
|