projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use default error handler if none is specified
[libfirm]
/
ir
/
be
/
bestate.c
diff --git
a/ir/be/bestate.c
b/ir/be/bestate.c
index
8e819fd
..
cd2a306
100644
(file)
--- a/
ir/be/bestate.c
+++ b/
ir/be/bestate.c
@@
-25,9
+25,7
@@
* @date 26.03.2007
* @version $Id$
*/
* @date 26.03.2007
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
#include "config.h"
-#endif
#include "bestate.h"
#include "bestate.h"
@@
-62,7
+60,6
@@
typedef struct spill_info_t {
typedef struct minibelady_env_t {
struct obstack obst;
typedef struct minibelady_env_t {
struct obstack obst;
- const arch_env_t *arch_env;
const arch_register_t *reg;
const be_lv_t *lv;
void *func_env;
const arch_register_t *reg;
const be_lv_t *lv;
void *func_env;
@@
-268,7
+265,7
@@
block_info_t *compute_block_start_state(minibelady_env_t *env, ir_node *block)
sched_foreach(block, node) {
if (!is_Phi(node))
break;
sched_foreach(block, node) {
if (!is_Phi(node))
break;
- if (arch_get_irn_register(
env->arch_env,
node) != env->reg)
+ if (arch_get_irn_register(node) != env->reg)
continue;
DBG((dbg, LEVEL_2, "\t...checking %+F\n", node));
continue;
DBG((dbg, LEVEL_2, "\t...checking %+F\n", node));
@@
-318,7
+315,7
@@
block_info_t *compute_block_start_state(minibelady_env_t *env, ir_node *block)
if(!mode_is_data(get_irn_mode(node)))
continue;
if(!mode_is_data(get_irn_mode(node)))
continue;
- if (arch_get_irn_register(
env->arch_env,
node) != env->reg)
+ if (arch_get_irn_register(node) != env->reg)
continue;
DBG((dbg, LEVEL_2, "\t...checking %+F\n", node));
continue;
DBG((dbg, LEVEL_2, "\t...checking %+F\n", node));
@@
-409,7
+406,7
@@
void belady(minibelady_env_t *env, ir_node *block)
if(!mode_is_data(get_irn_mode(in)))
continue;
if(!mode_is_data(get_irn_mode(in)))
continue;
- reg = arch_get_irn_register(
env->arch_env,
in);
+ reg = arch_get_irn_register(in);
if(reg == env->reg) {
assert(need_val == NULL);
need_val = in;
if(reg == env->reg) {
assert(need_val == NULL);
need_val = in;
@@
-436,7
+433,7
@@
void belady(minibelady_env_t *env, ir_node *block)
if(!mode_is_data(get_irn_mode(proj)))
continue;
if(!mode_is_data(get_irn_mode(proj)))
continue;
- reg = arch_get_irn_register(
env->arch_env,
proj);
+ reg = arch_get_irn_register(proj);
if(reg == env->reg) {
current_state = proj;
DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
if(reg == env->reg) {
current_state = proj;
DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
@@
-444,8
+441,7
@@
void belady(minibelady_env_t *env, ir_node *block)
}
} else {
if(mode_is_data(get_irn_mode(node))) {
}
} else {
if(mode_is_data(get_irn_mode(node))) {
- const arch_register_t *reg =
- arch_get_irn_register(env->arch_env, node);
+ const arch_register_t *reg = arch_get_irn_register(node);
if(reg == env->reg) {
current_state = node;
DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
if(reg == env->reg) {
current_state = node;
DBG((dbg, LEVEL_3, "\t... current_state <- %+F\n", current_state));
@@
-542,14
+538,12
@@
void be_assure_state(be_irg_t *birg, const arch_register_t *reg, void *func_env,
be_lv_t *lv = be_assure_liveness(birg);
be_liveness_assure_sets(lv);
be_lv_t *lv = be_assure_liveness(birg);
be_liveness_assure_sets(lv);
- be_assure_dom_front(birg);
/* construct control flow loop tree */
if(! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) {
construct_cf_backedges(irg);
}
obstack_init(&env.obst);
/* construct control flow loop tree */
if(! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) {
construct_cf_backedges(irg);
}
obstack_init(&env.obst);
- env.arch_env = be_get_birg_arch_env(birg);
env.reg = reg;
env.func_env = func_env;
env.create_spill = create_spill;
env.reg = reg;
env.func_env = func_env;
env.create_spill = create_spill;
@@
-560,8
+554,7
@@
void be_assure_state(be_irg_t *birg, const arch_register_t *reg, void *func_env,
ir_nodemap_init(&env.spill_infos);
assure_doms(irg);
ir_nodemap_init(&env.spill_infos);
assure_doms(irg);
- set_using_irn_visited(irg);
- set_using_irn_link(irg);
+ ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED | IR_RESOURCE_IRN_LINK);
inc_irg_visited(irg);
/* process blocks */
inc_irg_visited(irg);
/* process blocks */
@@
-570,8
+563,7
@@
void be_assure_state(be_irg_t *birg, const arch_register_t *reg, void *func_env,
/* fix block end_states that don't match the next blocks start_state */
irg_block_walk_graph(irg, fix_block_borders, NULL, &env);
/* fix block end_states that don't match the next blocks start_state */
irg_block_walk_graph(irg, fix_block_borders, NULL, &env);
- clear_using_irn_visited(irg);
- clear_using_irn_link(irg);
+ ir_free_resources(irg, IR_RESOURCE_IRN_VISITED | IR_RESOURCE_IRN_LINK);
/* reconstruct ssa-form */
info = env.spills;
/* reconstruct ssa-form */
info = env.spills;
@@
-604,8
+596,8
@@
void be_assure_state(be_irg_t *birg, const arch_register_t *reg, void *func_env,
len = ARR_LEN(phis);
for(i = 0; i < len; ++i) {
ir_node *phi = phis[i];
len = ARR_LEN(phis);
for(i = 0; i < len; ++i) {
ir_node *phi = phis[i];
- be_set_phi_flags(
env.arch_env,
phi, arch_irn_flags_ignore);
- arch_set_irn_register(
env.arch_env,
phi, env.reg);
+ be_set_phi_flags(phi, arch_irn_flags_ignore);
+ arch_set_irn_register(phi, env.reg);
}
be_ssa_construction_destroy(&senv);
}
be_ssa_construction_destroy(&senv);