* Backend node support for generic backend nodes.
* This file provides Perm, Copy, Spill and Reload nodes.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <stdlib.h>
return spill;
}
-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)
{
ir_node *reload;
ir_node *bl = is_Block(insert) ? insert : get_nodes_block(insert);
ir_graph *irg = get_irn_irg(bl);
ir_node *frame = get_irg_frame(irg);
const arch_register_class_t *cls_frame = arch_get_irn_reg_class(frame, -1);
- (void)arch_env; // TODO remove parameter
assert(be_is_Spill(spill) || (is_Phi(spill) && get_irn_mode(spill) == mode_M));
arch_irn_flags_t flags;
} phi_attr_t;
-struct {
- arch_env_t *arch_env;
- pmap *phi_attrs;
+static struct {
+ pmap *phi_attrs;
} phi_handler;
#define get_phi_handler_from_ops(h) container_of(h, phi_handler_t, irn_ops)
return &attr->req;
}
-void be_set_phi_reg_req(const arch_env_t *arch_env, ir_node *node,
- const arch_register_req_t *req)
+void be_set_phi_reg_req(ir_node *node, const arch_register_req_t *req)
{
phi_attr_t *attr;
- (void) arch_env;
assert(mode_is_datab(get_irn_mode(node)));
memcpy(&attr->req, req, sizeof(req[0]));
}
-void be_set_phi_flags(const arch_env_t *arch_env, ir_node *node,
- arch_irn_flags_t flags)
+void be_set_phi_flags(ir_node *node, arch_irn_flags_t flags)
{
phi_attr_t *attr;
- (void) arch_env;
assert(mode_is_datab(get_irn_mode(node)));
NULL, /* perform_memory_operand */
};
-void be_phi_handler_new(be_main_env_t *env)
+void be_phi_handler_new(void)
{
- phi_handler.arch_env = env->arch_env;
phi_handler.phi_attrs = pmap_create();
op_Phi->ops.be_ops = &phi_irn_ops;
}