+enum {
+ be_pos_Call_mem = 0,
+ be_pos_Call_sp = 1,
+ be_pos_Call_ptr = 2
+};
+
+ir_node *be_new_Call(ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *sp, ir_node *ptr, int n_outs, int n, ir_node *in[]);
+ir_node *be_new_Return(ir_graph *irg, ir_node *bl, int n, ir_node *in[]);
+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_RegParams(ir_graph *irg, ir_node *bl, int n_out);
+
+ir_node *be_spill(const arch_env_t *arch_env, ir_node *irn,ir_node *spill_ctx);
+ir_node *be_reload(const arch_env_t *arch_env, const arch_register_class_t *cls, ir_node *reloader, ir_mode *mode, ir_node *spill);
+
+/**
+ * Get the backend opcode of a backend node.
+ * @param irn The node.
+ * @return The backend opcode.
+ */
+be_opcode_t be_get_irn_opcode(const ir_node *irn);
+
+int be_is_Spill(const ir_node *irn);
+int be_is_Reload(const ir_node *irn);
+int be_is_Copy(const ir_node *irn);
+int be_is_Perm(const ir_node *irn);
+int be_is_Keep(const ir_node *irn);
+int be_is_Call(const ir_node *irn);
+int be_is_Return(const ir_node *irn);
+int be_is_IncSP(const ir_node *irn);
+int be_is_SetSP(const ir_node *irn);
+int be_is_Alloca(const ir_node *irn);
+int be_is_RegParams(const ir_node *irn);
+int be_is_StackParam(const ir_node *irn);
+int be_is_FrameAddr(const ir_node *irn);
+int be_is_FrameLoad(const ir_node *irn);
+int be_is_FrameStore(const ir_node *irn);
+
+/**
+ * Get the entity on the stack frame the given node uses.
+ * @param irn The node.
+ * @return The entity on the stack frame used by the node or NULL,
+ * if the node does not access the stack frame or is no back-end node.
+ *
+ */
+entity *be_get_frame_entity(const ir_node *irn);