X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbenode_t.h;h=687b5b3a126bc9dab88765f04ffc395134b8f8a9;hb=4c0f123728ea93f7f0a4af114b040a58a9e97059;hp=fd7f4e3305efd24d2fa05e89576963dc391563a5;hpb=766ec847ca2f0523d203535598b97ed8c4b85feb;p=libfirm diff --git a/ir/be/benode_t.h b/ir/be/benode_t.h index fd7f4e330..687b5b3a1 100644 --- a/ir/be/benode_t.h +++ b/ir/be/benode_t.h @@ -85,6 +85,11 @@ typedef enum { */ #define BE_STACK_FRAME_SIZE ((unsigned) -1) +/** + * Determines if irn is a be_node. + */ +int is_be_node(const ir_node *irn); + /** * Create all BE specific opcodes. */ @@ -129,6 +134,8 @@ enum { ir_node *be_new_Copy(const arch_register_class_t *cls, ir_graph *irg, ir_node *block, ir_node *in); /** Returns the Copy Argument. */ ir_node *be_get_Copy_op(const ir_node *cpy); +/** Sets the Copy Argument. */ +void be_set_Copy_op(ir_node *cpy, ir_node *op); /** * Make a new Perm node. @@ -266,7 +273,7 @@ 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[]); /** - * Make a spill node and insert it into the schedule. + * Make a spill node. * * @param arch_env The architecture environment. * @param irn The node to be spilled. @@ -292,7 +299,8 @@ enum { }; ir_node *be_new_CopyKeep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *src, int n, ir_node *in_keep[], ir_mode *mode); ir_node *be_new_CopyKeep_single(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *src, ir_node *keep, ir_mode *mode); - +ir_node *be_get_CopyKeep_op(const ir_node *cpy); +void be_set_CopyKeep_op(ir_node *cpy, ir_node *op); /** * Get the backend opcode of a backend node. @@ -331,8 +339,13 @@ entity *be_get_frame_entity(const ir_node *irn); void be_set_Spill_entity(ir_node *irn, entity *ent); entity *be_get_spill_entity(const ir_node *irn); +void be_set_Spill_context(ir_node *irn, ir_node *ctx); ir_node *be_get_Spill_context(const ir_node *irn); + +ir_node* be_get_Reload_mem(const ir_node *irn); +ir_node* be_get_Reload_frame(const ir_node* irn); + /** * Set the entities of a Reload to the ones of the Spill it is pointing to. * @param irg The graph.