*/
ir_node *be_Barrier_append_node(ir_node *barrier, ir_node *node);
-/**
- * Appends a register out requirement to a RegParams node
- *
- * @returns the proj node for the new register
- */
-ir_node *be_RegParams_append_out_reg(ir_node *regparams,
- const arch_env_t *arch_env,
- const arch_register_t *reg);
-
/**
* Make a spill node.
*
- * @param arch_env The architecture environment.
* @param irn The node to be spilled.
* @param spill_ctx The context in which the spill is introduced (This is mostly == irn up to the case of Phis).
* @return The new spill node.
*/
-ir_node *be_spill(const arch_env_t *arch_env, ir_node *block, ir_node *irn);
+ir_node *be_spill(ir_node *block, ir_node *irn);
/**
* Make a reload and insert it into the schedule.
*
- * @param arch_env The architecture environment.
* @param cls The register class of the reloaded value.
* @param insert The node in the schedule in front of which the reload is inserted.
* @param mode The mode of the original (spilled) value.
* @param spill The spill node corresponding to this reload.
* @return A freshly made reload.
*/
-ir_node *be_reload(const arch_env_t *arch_env, const arch_register_class_t *cls, ir_node *insert, ir_mode *mode, ir_node *spill);
+ir_node *be_reload(const arch_register_class_t *cls, ir_node *insert, ir_mode *mode, ir_node *spill);
enum {
be_pos_CopyKeep_op = 0
void be_node_set_req_type(ir_node *irn, int pos, arch_register_req_type_t type);
/**
- * Make a new phi handler.
- * @param env The architecture environment.
- * @return A new phi handler.
+ * Initialize the Phi handler.
*/
-arch_irn_handler_t *be_phi_handler_new(const arch_env_t *arch_env);
+void be_phi_handler_new(void);
/**
- * Free a phi handler.
- * @param handler The handler to free.
+ * Destroy the Phi handler.
*/
-void be_phi_handler_free(arch_irn_handler_t *handler);
+void be_phi_handler_free(void);
/**
- * Reset the register data in the phi handler.
+ * Reset the register data in the Phi handler.
* This should be called on each new graph and deletes the register information of the current graph.
*/
-void be_phi_handler_reset(arch_irn_handler_t *handler);
+void be_phi_handler_reset(void);
/**
* Set the register requirements for a phi node.
*/
-void be_set_phi_reg_req(const arch_env_t *arch_env, ir_node *phi,
- const arch_register_req_t *req);
+void be_set_phi_reg_req(ir_node *phi, const arch_register_req_t *req);
/*
* Set flags for a phi node
*/
-void be_set_phi_flags(const arch_env_t *arch_env, ir_node *phi,
- arch_irn_flags_t flags);
+void be_set_phi_flags(ir_node *phi, arch_irn_flags_t flags);
/**
- * irn handler for common be nodes.
+ * irn handler for common be nodes and Phi's.
*/
-extern const arch_irn_handler_t be_node_irn_handler;
+const void *be_node_get_irn_ops(const ir_node *irn);
static INLINE int be_is_Spill (const ir_node *irn) { return get_irn_opcode(irn) == beo_Spill ; }
static INLINE int be_is_Reload (const ir_node *irn) { return get_irn_opcode(irn) == beo_Reload ; }