mie: ir: implement generation and text output of phi instruction

This commit is contained in:
2025-09-08 15:34:58 +01:00
parent dd0dcc9c0a
commit 32a520e210
6 changed files with 97 additions and 9 deletions

View File

@@ -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

View File

@@ -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