projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplify collect_and_rewire_users(): Use get_edge_src_pos() instead of searching...
[libfirm]
/
ir
/
be
/
bechordal_main.c
diff --git
a/ir/be/bechordal_main.c
b/ir/be/bechordal_main.c
index
8cad1f9
..
7850266
100644
(file)
--- a/
ir/be/bechordal_main.c
+++ b/
ir/be/bechordal_main.c
@@
-32,7
+32,6
@@
#include "pset.h"
#include "list.h"
#include "bitset.h"
#include "pset.h"
#include "list.h"
#include "bitset.h"
-#include "iterator.h"
#include "lc_opts.h"
#include "lc_opts_enum.h"
#include "lc_opts.h"
#include "lc_opts_enum.h"
@@
-46,7
+45,6
@@
#include "irdump.h"
#include "irdom.h"
#include "ircons.h"
#include "irdump.h"
#include "irdom.h"
#include "ircons.h"
-#include "irbitset.h"
#include "irnode.h"
#include "ircons.h"
#include "irtools.h"
#include "irnode.h"
#include "ircons.h"
#include "irtools.h"
@@
-64,7
+62,7
@@
#include "bearch.h"
#include "beifg.h"
#include "benode.h"
#include "bearch.h"
#include "beifg.h"
#include "benode.h"
-#include "
bestateven
t.h"
+#include "
statev_
t.h"
#include "bestat.h"
#include "bemodule.h"
#include "be_t.h"
#include "bestat.h"
#include "bemodule.h"
#include "be_t.h"
@@
-113,6
+111,7
@@
static const lc_opt_enum_mask_items_t dump_items[] = {
{ "copymin", BE_CH_DUMP_COPYMIN },
{ "ssadestr", BE_CH_DUMP_SSADESTR },
{ "tree", BE_CH_DUMP_TREE_INTV },
{ "copymin", BE_CH_DUMP_COPYMIN },
{ "ssadestr", BE_CH_DUMP_SSADESTR },
{ "tree", BE_CH_DUMP_TREE_INTV },
+ { "split", BE_CH_DUMP_SPLIT },
{ "constr", BE_CH_DUMP_CONSTR },
{ "lower", BE_CH_DUMP_LOWER },
{ "spillslots", BE_CH_DUMP_SPILLSLOTS },
{ "constr", BE_CH_DUMP_CONSTR },
{ "lower", BE_CH_DUMP_LOWER },
{ "spillslots", BE_CH_DUMP_SPILLSLOTS },
@@
-185,9
+184,8
@@
static void dump(unsigned mask, ir_graph *irg,
*/
static void memory_operand_walker(ir_node *irn, void *env)
{
*/
static void memory_operand_walker(ir_node *irn, void *env)
{
- const ir_edge_t *edge, *ne;
- ir_node *block;
- ir_node *spill;
+ ir_node *block;
+ ir_node *spill;
(void)env;
(void)env;
@@
-201,7
+199,7
@@
static void memory_operand_walker(ir_node *irn, void *env)
spill = be_get_Reload_mem(irn);
block = get_nodes_block(irn);
spill = be_get_Reload_mem(irn);
block = get_nodes_block(irn);
- foreach_out_edge_safe(irn, edge
, ne
) {
+ foreach_out_edge_safe(irn, edge) {
ir_node *src = get_edge_src_irn(edge);
int pos = get_edge_src_pos(edge);
ir_node *src = get_edge_src_irn(edge);
int pos = get_edge_src_pos(edge);
@@
-240,18
+238,16
@@
static void pre_spill(post_spill_env_t *pse, const arch_register_class_t *cls)
{
be_chordal_env_t *chordal_env = &pse->cenv;
ir_graph *irg = pse->irg;
{
be_chordal_env_t *chordal_env = &pse->cenv;
ir_graph *irg = pse->irg;
- ir_exec_freq *exec_freq = be_get_irg_exec_freq(irg);
pse->cls = cls;
chordal_env->cls = cls;
chordal_env->border_heads = pmap_create();
chordal_env->allocatable_regs = bitset_malloc(chordal_env->cls->n_regs);
pse->cls = cls;
chordal_env->cls = cls;
chordal_env->border_heads = pmap_create();
chordal_env->allocatable_regs = bitset_malloc(chordal_env->cls->n_regs);
- be_assure_liveness(irg);
- be_liveness_assure_chk(be_get_irg_liveness(irg));
+ be_assure_live_chk(irg);
if (stat_ev_enabled) {
if (stat_ev_enabled) {
- pse->pre_spill_cost = be_estimate_irg_costs(irg
, exec_freq
);
+ pse->pre_spill_cost = be_estimate_irg_costs(irg);
}
/* put all ignore registers into the ignore register set. */
}
/* put all ignore registers into the ignore register set. */
@@
-271,12
+267,11
@@
static void post_spill(post_spill_env_t *pse, int iteration)
{
be_chordal_env_t *chordal_env = &pse->cenv;
ir_graph *irg = pse->irg;
{
be_chordal_env_t *chordal_env = &pse->cenv;
ir_graph *irg = pse->irg;
- ir_exec_freq *exec_freq = be_get_irg_exec_freq(irg);
int allocatable_regs = be_get_n_allocatable_regs(irg, chordal_env->cls);
/* some special classes contain only ignore regs, no work to be done */
if (allocatable_regs > 0) {
int allocatable_regs = be_get_n_allocatable_regs(irg, chordal_env->cls);
/* some special classes contain only ignore regs, no work to be done */
if (allocatable_regs > 0) {
- stat_ev_dbl("bechordal_spillcosts", be_estimate_irg_costs(irg
, exec_freq
) - pse->pre_spill_cost);
+ stat_ev_dbl("bechordal_spillcosts", be_estimate_irg_costs(irg) - pse->pre_spill_cost);
/*
If we have a backend provided spiller, post spill is
/*
If we have a backend provided spiller, post spill is
@@
-380,8
+375,6
@@
static void be_ra_chordal_main(ir_graph *irg)
be_timer_push(T_RA_PROLOG);
be_timer_push(T_RA_PROLOG);
- be_assure_liveness(irg);
-
chordal_env.obst = &obst;
chordal_env.opts = &options;
chordal_env.irg = irg;
chordal_env.obst = &obst;
chordal_env.opts = &options;
chordal_env.irg = irg;
@@
-452,7
+445,7
@@
static void be_ra_chordal_main(ir_graph *irg)
dump(BE_CH_DUMP_LOWER, irg, NULL, "belower-after-ra");
obstack_free(&obst, NULL);
dump(BE_CH_DUMP_LOWER, irg, NULL, "belower-after-ra");
obstack_free(&obst, NULL);
- be_
liveness_invalidate(be_get_irg_liveness(irg)
);
+ be_
invalidate_live_sets(irg
);
be_timer_pop(T_RA_EPILOG);
be_timer_pop(T_RA_OTHER);
be_timer_pop(T_RA_EPILOG);
be_timer_pop(T_RA_OTHER);
@@
-472,5
+465,5
@@
void be_init_chordal_main(void)
be_register_allocator("chordal", &be_ra_chordal_allocator);
lc_opt_add_table(chordal_grp, be_chordal_options);
be_register_allocator("chordal", &be_ra_chordal_allocator);
lc_opt_add_table(chordal_grp, be_chordal_options);
- be_add_module_list_opt(chordal_grp, "coloring", "select coloring method
e
", &colorings, (void**) &selected_coloring);
+ be_add_module_list_opt(chordal_grp, "coloring", "select coloring method", &colorings, (void**) &selected_coloring);
}
}