void (*main_program)(dbg_handle *handle);
/** dumps the stabs for a method begin */
- void (*method_begin)(dbg_handle *handle, entity *ent, const be_stack_layout_t *layout);
+ void (*method_begin)(dbg_handle *handle, ir_entity *ent, const be_stack_layout_t *layout);
/** dumps the stabs for a method end */
void (*method_end)(dbg_handle *handle);
void (*types)(dbg_handle *handle);
/** dump a variable in the global type */
- void (*variable)(dbg_handle *h, struct obstack *obst, entity *ent);
+ void (*variable)(dbg_handle *h, struct obstack *obst, ir_entity *ent);
} debug_ops;
void be_dbg_main_program(dbg_handle *handle);
/** debug for a method begin */
-void be_dbg_method_begin(dbg_handle *handle, entity *ent, const be_stack_layout_t *layout);
+void be_dbg_method_begin(dbg_handle *handle, ir_entity *ent, const be_stack_layout_t *layout);
/** debug for a method end */
void be_dbg_method_end(dbg_handle *handle);
void be_dbg_types(dbg_handle *handle);
/** dump a variable in the global type */
-void be_dbg_variable(dbg_handle *handle, struct obstack *obst, entity *ent);
+void be_dbg_variable(dbg_handle *handle, struct obstack *obst, ir_entity *ent);
/** Opens the NULL handler: no debug support. */
dbg_handle *be_nulldbg_open(void);
ops->impl->set_frame_offset(ops, irn, offset);
}
-entity *arch_get_frame_entity(const arch_env_t *env, ir_node *irn)
+ir_entity *arch_get_frame_entity(const arch_env_t *env, ir_node *irn)
{
const arch_irn_ops_t *ops = get_irn_ops(env, irn);
return ops->impl->get_frame_entity(ops, irn);
}
-void arch_set_frame_entity(const arch_env_t *env, ir_node *irn, entity *ent)
+void arch_set_frame_entity(const arch_env_t *env, ir_node *irn, ir_entity *ent)
{
const arch_irn_ops_t *ops = get_irn_ops(env, irn);
ops->impl->set_frame_entity(ops, irn, ent);
* @param irn The node in question.
* @return The entity on the stack frame or NULL, if the node does not has a stack frame entity.
*/
- entity *(*get_frame_entity)(const void *self, const ir_node *irn);
+ ir_entity *(*get_frame_entity)(const void *self, const ir_node *irn);
/**
* Set the entity on the stack frame this node depends on.
* @param irn The node in question.
* @param ent The entity to set
*/
- void (*set_frame_entity)(const void *self, ir_node *irn, entity *ent);
+ void (*set_frame_entity)(const void *self, ir_node *irn, ir_entity *ent);
/**
* Set the offset of a node carrying an entity on the stack frame.
extern void arch_set_frame_offset(const arch_env_t *env, ir_node *irn, int bias);
-extern entity *arch_get_frame_entity(const arch_env_t *env, ir_node *irn);
-extern void arch_set_frame_entity(const arch_env_t *env, ir_node *irn, entity *ent);
+extern ir_entity *arch_get_frame_entity(const arch_env_t *env, ir_node *irn);
+extern void arch_set_frame_entity(const arch_env_t *env, ir_node *irn, ir_entity *ent);
extern int arch_get_sp_bias(const arch_env_t *env, ir_node *irn);
extern int arch_get_op_estimated_cost(const arch_env_t *env, const ir_node *irn);
/** The be_Frame attribute type. */
typedef struct {
be_node_attr_t node_attr;
- entity *ent;
+ ir_entity *ent;
int offset;
} be_frame_attr_t;
/** The be_Call attribute type. */
typedef struct {
be_node_attr_t node_attr;
- entity *ent; /**< The called entity if this is a static call. */
+ ir_entity *ent; /**< The called entity if this is a static call. */
ir_type *call_tp; /**< The call type, copied from the original Call node. */
} be_call_attr_t;
typedef struct {
be_node_attr_t node_attr;
- entity **in_entities;
- entity **out_entities;
+ ir_entity **in_entities;
+ ir_entity **out_entities;
} be_memperm_attr_t;
ir_op *op_be_Spill;
}
/* Gets the call entity or NULL if this is no static call. */
-entity *be_Call_get_entity(const ir_node *call) {
+ir_entity *be_Call_get_entity(const ir_node *call) {
be_call_attr_t *a = get_irn_attr(call);
assert(be_is_Call(call));
return a->ent;
}
/* Sets the call entity. */
-void be_Call_set_entity(ir_node *call, entity *ent) {
+void be_Call_set_entity(ir_node *call, ir_entity *ent) {
be_call_attr_t *a = get_irn_attr(call);
assert(be_is_Call(call));
a->ent = ent;
return irn;
}
-ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, entity *ent)
+ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, ir_entity *ent)
{
be_frame_attr_t *a;
ir_node *irn;
}
ir_node *be_new_FrameLoad(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
- ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, entity *ent)
+ ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_entity *ent)
{
be_frame_attr_t *a;
ir_node *irn;
}
ir_node *be_new_FrameStore(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
- ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, entity *ent)
+ ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, ir_entity *ent)
{
be_frame_attr_t *a;
ir_node *irn;
return irn;
}
-ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, entity *ent)
+ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_entity *ent)
{
be_frame_attr_t *a;
ir_node *irn;
}
}
-entity* be_get_frame_entity(const ir_node *irn)
+ir_entity* be_get_frame_entity(const ir_node *irn)
{
if(be_has_frame_entity(irn)) {
be_frame_attr_t *a = get_irn_attr(irn);
return NULL;
}
-void be_set_MemPerm_in_entity(const ir_node *irn, int n, entity *ent)
+void be_set_MemPerm_in_entity(const ir_node *irn, int n, ir_entity *ent)
{
be_memperm_attr_t *attr = get_irn_attr(irn);
attr->in_entities[n] = ent;
}
-entity* be_get_MemPerm_in_entity(const ir_node* irn, int n)
+ir_entity* be_get_MemPerm_in_entity(const ir_node* irn, int n)
{
be_memperm_attr_t *attr = get_irn_attr(irn);
return attr->in_entities[n];
}
-void be_set_MemPerm_out_entity(const ir_node *irn, int n, entity *ent)
+void be_set_MemPerm_out_entity(const ir_node *irn, int n, ir_entity *ent)
{
be_memperm_attr_t *attr = get_irn_attr(irn);
attr->out_entities[n] = ent;
}
-entity* be_get_MemPerm_out_entity(const ir_node* irn, int n)
+ir_entity* be_get_MemPerm_out_entity(const ir_node* irn, int n)
{
be_memperm_attr_t *attr = get_irn_attr(irn);
return r ? r->req.flags : 0;
}
-static entity *be_node_get_frame_entity(const void *self, const ir_node *irn)
+static ir_entity *be_node_get_frame_entity(const void *self, const ir_node *irn)
{
return be_get_frame_entity(irn);
}
-static void be_node_set_frame_entity(const void *self, ir_node *irn, entity *ent)
+static void be_node_set_frame_entity(const void *self, ir_node *irn, ir_entity *ent)
{
be_frame_attr_t *a;
return arch_irn_flags_none;
}
-static entity *phi_get_frame_entity(const void *_self, const ir_node *irn)
+static ir_entity *phi_get_frame_entity(const void *_self, const ir_node *irn)
{
return NULL;
}
-static void phi_set_frame_entity(const void *_self, ir_node *irn, entity *ent)
+static void phi_set_frame_entity(const void *_self, ir_node *irn, ir_entity *ent)
{
}
{
int i;
for(i = 0; i < be_get_MemPerm_entity_arity(irn); ++i) {
- entity *in, *out;
+ ir_entity *in, *out;
in = be_get_MemPerm_in_entity(irn, i);
out = be_get_MemPerm_out_entity(irn, i);
if(in) {
ir_node *be_new_Keep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, int arity, ir_node *in[]);
ir_node *be_new_FrameLoad(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
- ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, entity *ent);
+ ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_entity *ent);
ir_node *be_new_FrameStore(const arch_register_class_t *cls_frame, const arch_register_class_t *cls_data,
- ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, entity *ent);
-ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, entity *ent);
+ ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *frame, ir_node *data, ir_entity *ent);
+ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_node *frame, ir_entity *ent);
/**
* Position numbers for the be_AddSP inputs
int be_get_IncSP_offset(const ir_node *irn);
/** Gets the call entity or NULL if this is no static call. */
-entity *be_Call_get_entity(const ir_node *call);
+ir_entity *be_Call_get_entity(const ir_node *call);
/** Sets the call entity. */
-void be_Call_set_entity(ir_node *call, entity *ent);
+void be_Call_set_entity(ir_node *call, ir_entity *ent);
/** Gets the call type. */
ir_type *be_Call_get_type(ir_node *call);
/** Sets the call type. */
/**
* Construct a new Stack Parameter node.
*/
-ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, entity *ent);
+ir_node *be_new_StackParam(const arch_register_class_t *cls, const arch_register_class_t *cls_frame, ir_graph *irg, ir_node *bl, ir_mode *mode, ir_node *frame_pointer, ir_entity *ent);
ir_node *be_new_RegParams(ir_graph *irg, ir_node *bl, int n_out);
ir_node *be_new_Barrier(ir_graph *irg, ir_node *bl, int n, ir_node *in[]);
*
* Returns the frame entity used by the be node
*/
-entity* be_get_frame_entity(const ir_node *irn);
+ir_entity* be_get_frame_entity(const ir_node *irn);
ir_node* be_get_Reload_mem(const ir_node *irn);
ir_node* be_get_Spill_val(const ir_node *irn);
-void be_set_MemPerm_in_entity(const ir_node *irn, int n, entity* ent);
-entity *be_get_MemPerm_in_entity(const ir_node *irn, int n);
+void be_set_MemPerm_in_entity(const ir_node *irn, int n, ir_entity* ent);
+ir_entity *be_get_MemPerm_in_entity(const ir_node *irn, int n);
-void be_set_MemPerm_out_entity(const ir_node *irn, int n, entity* ent);
-entity *be_get_MemPerm_out_entity(const ir_node *irn, int n);
+void be_set_MemPerm_out_entity(const ir_node *irn, int n, ir_entity* ent);
+ir_entity *be_get_MemPerm_out_entity(const ir_node *irn, int n);
int be_get_MemPerm_entity_arity(const ir_node *irn);
typedef struct _spill_slot_t {
int size;
int align;
- entity *entity;
+ ir_entity *entity;
} spill_slot_t;
typedef struct _memperm_entry_t {
ir_node* node;
int pos;
- entity *in;
- entity *out;
+ ir_entity *in;
+ ir_entity *out;
struct _memperm_entry_t *next;
} memperm_entry_t;
return res;
}
-static entity* create_stack_entity(ss_env_t *env, spill_slot_t *slot) {
+static ir_entity* create_stack_entity(ss_env_t *env, spill_slot_t *slot) {
ir_type* frame = get_irg_frame_type(env->chordal_env->irg);
- entity* res = frame_alloc_area(frame, slot->size, slot->align, 0);
+ ir_entity* res = frame_alloc_area(frame, slot->size, slot->align, 0);
// adjust size of the entity type...
ir_type *enttype = get_entity_type(res);
typedef struct _spill_t {
ir_node *spill;
- entity *ent;
+ ir_entity *ent;
} spill_t;
typedef struct {
return set_find(env->spills, &spill, sizeof(spill), HASH_PTR(node));
}
-static spill_t *get_spill(be_verify_spillslots_env_t *env, ir_node *node, entity *ent) {
+static spill_t *get_spill(be_verify_spillslots_env_t *env, ir_node *node, ir_entity *ent) {
spill_t spill, *res;
int hash = HASH_PTR(node);
return result;
}
-static void collect(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, entity* ent);
+static void collect(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, ir_entity* ent);
-static void check_entity(be_verify_spillslots_env_t *env, ir_node *node, entity *ent) {
+static void check_entity(be_verify_spillslots_env_t *env, ir_node *node, ir_entity *ent) {
if(ent == NULL) {
ir_fprintf(stderr, "Verify warning: Node %+F in block %+F(%s) should have an entity assigned\n",
node, get_nodes_block(node), get_irg_dump_name(env->irg));
}
}
-static void collect_spill(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, entity* ent) {
- entity *spillent = arch_get_frame_entity(env->arch_env, node);
+static void collect_spill(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, ir_entity* ent) {
+ ir_entity *spillent = arch_get_frame_entity(env->arch_env, node);
check_entity(env, node, spillent);
get_spill(env, node, ent);
}
}
-static void collect_memperm(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, entity* ent) {
+static void collect_memperm(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, ir_entity* ent) {
int i, arity;
spill_t spill, *res;
int hash = HASH_PTR(node);
int out;
ir_node* memperm;
- entity *spillent;
+ ir_entity *spillent;
assert(is_Proj(node));
for(i = 0, arity = be_get_MemPerm_entity_arity(memperm); i < arity; ++i) {
ir_node* arg = get_irn_n(memperm, i + 1);
- entity* argent = be_get_MemPerm_in_entity(memperm, i);
+ ir_entity* argent = be_get_MemPerm_in_entity(memperm, i);
collect(env, arg, memperm, argent);
}
}
-static void collect_memphi(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, entity *ent) {
+static void collect_memphi(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, ir_entity *ent) {
int i, arity;
spill_t spill, *res;
int hash = HASH_PTR(node);
}
}
-static void collect(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, entity* ent) {
+static void collect(be_verify_spillslots_env_t *env, ir_node *node, ir_node *reload, ir_entity* ent) {
if(be_is_Spill(node)) {
collect_spill(env, node, reload, ent);
} else if(is_Proj(node)) {
if(arch_irn_class_is(arch_env, node, reload)) {
ir_node *spill = get_memory_edge(node);
- entity *ent;
+ ir_entity *ent;
if(spill == NULL) {
ir_fprintf(stderr, "Verify warning: No spill attached to reload %+F in block %+F(%s)\n",
if(be_is_Spill(node) || (is_Proj(node) && be_is_MemPerm(get_Proj_pred(node)))) {
spill_t *spill = find_spill(env, node);
if(be_is_Spill(node)) {
- entity *ent = arch_get_frame_entity(env->arch_env, node);
+ ir_entity *ent = arch_get_frame_entity(env->arch_env, node);
check_entity(env, node, ent);
}