mie: ir: implement generation and text output of phi instruction
This commit is contained in:
@@ -14,6 +14,7 @@ struct mie_module;
|
||||
struct mie_data;
|
||||
struct mie_type;
|
||||
struct mie_phi;
|
||||
struct mie_phi_edge;
|
||||
struct mie_ctx;
|
||||
|
||||
struct mie_builder {
|
||||
@@ -111,8 +112,8 @@ extern struct mie_value *mie_builder_getelementptr(
|
||||
extern struct mie_value *mie_builder_setelementptr(
|
||||
struct mie_builder *builder, struct mie_type *container_type,
|
||||
struct mie_value *container, struct mie_value *index);
|
||||
extern struct mie_phi *mie_builder_phi(
|
||||
extern struct mie_value *mie_builder_phi(
|
||||
struct mie_builder *builder, struct mie_type *type,
|
||||
unsigned int nr_edges, const char *name);
|
||||
struct mie_phi_edge *edges, unsigned int nr_edges, const char *name);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
#ifndef MIE_PHI_H_
|
||||
#define MIE_PHI_H_
|
||||
|
||||
#include <mie/instr.h>
|
||||
#include <blue/core/queue.h>
|
||||
#include <mie/ir/instr.h>
|
||||
#include <mie/misc.h>
|
||||
|
||||
struct mie_phi_edge {
|
||||
b_queue_entry e_entry;
|
||||
struct mie_block *e_incoming_block;
|
||||
struct mie_value *e_value;
|
||||
};
|
||||
@@ -16,4 +19,7 @@ struct mie_phi {
|
||||
struct mie_phi_edge *p_edges;
|
||||
};
|
||||
|
||||
MIE_API struct mie_phi_edge *mie_phi_edge_create(
|
||||
struct mie_block *incoming_block, struct mie_value *value);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user