X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeinfo.h;h=c421ea38462e9a4e360e1df81ab815eb5c95fe46;hb=5474a1c188c9d59eea2c915515980cd9cbab58d8;hp=95996484d737db5a5464605ea871137d643e4c65;hpb=7a9a11e3be2aee776c3045e8c3c4742a0b6bbcbe;p=libfirm diff --git a/ir/be/beinfo.h b/ir/be/beinfo.h index 95996484d..c421ea384 100644 --- a/ir/be/beinfo.h +++ b/ir/be/beinfo.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -21,16 +21,12 @@ * @file * @brief additional backend node infos * @author Matthias Braun - * @version $Id$ */ #ifndef FIRM_BE_BEINFO_H #define FIRM_BE_BEINFO_H -#include "bearch.h" -#include "irphase_t.h" -#include "irphases_t.h" - -typedef unsigned int sched_timestep_t; +#include "be_types.h" +#include "irnode_t.h" /** * The schedule structure which is present at each ir node. @@ -38,37 +34,36 @@ typedef unsigned int sched_timestep_t; * Currently, only basic blocks are scheduled. The list head of * every block schedule list is the Block list. */ -typedef struct sched_info_t { +struct sched_info_t { ir_node *next; ir_node *prev; sched_timestep_t time_step; /**< If a is after b in a schedule, its time step is larger than b's. */ -} sched_info_t; +}; -typedef struct reg_out_info_t { +struct reg_out_info_t { const arch_register_t *reg; const arch_register_req_t *req; -} reg_out_info_t; +}; -typedef struct backend_info_t { +struct backend_info_t { sched_info_t sched_info; const arch_register_req_t **in_reqs; reg_out_info_t *out_infos; arch_irn_flags_t flags; -} backend_info_t; +}; static inline backend_info_t *be_get_info(const ir_node *node) { - backend_info_t *info = node->backend_info; - return info; + return (backend_info_t*) node->backend_info; } void be_info_init(void); void be_info_free(void); void be_info_init_irg(ir_graph *irg); -void be_info_new_node(ir_node *node); +void be_info_new_node(ir_graph *irg, ir_node *node); void be_info_duplicate(const ir_node *old_node, ir_node *new_node); int be_info_initialized(const ir_graph *irg); -int be_info_equal(const ir_node *node1, const ir_node *node2); +int be_nodes_equal(const ir_node *node1, const ir_node *node2); #endif