projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not mark the transformed as visited. It makes no sense at all.
[libfirm]
/
ir
/
be
/
beschedregpress.c
diff --git
a/ir/be/beschedregpress.c
b/ir/be/beschedregpress.c
index
52a19ab
..
611eff6
100644
(file)
--- a/
ir/be/beschedregpress.c
+++ b/
ir/be/beschedregpress.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-200
7
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-200
8
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-18,11
+18,11
@@
*/
/**
*/
/**
- *
Regpressure node selector.
- *
Originally implemented by Sebastian Hack
.
- * @author
Christian Wuerdig
- * @date 29.08.2006
- * @
cvs-id
$Id$
+ *
@file
+ *
@brief Register pressure node selector
.
+ * @author
Sebastian Hack
+ * @date
29.08.2006
+ * @
version
$Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
@@
-32,6
+32,7
@@
#include "iredges_t.h"
#include "irgwalk.h"
#include "iredges_t.h"
#include "irgwalk.h"
+#include "irtools.h"
#include "besched_t.h"
#include "belistsched.h"
#include "besched_t.h"
#include "belistsched.h"
@@
-173,13
+174,13
@@
static int compute_max_hops(reg_pressure_selector_env_t *env, ir_node *irn)
return res;
}
return res;
}
-static void *reg_pressure_graph_init(const list_sched_selector_t *vtab, const
arch_env_t *arch_env, ir_graph *
irg)
+static void *reg_pressure_graph_init(const list_sched_selector_t *vtab, const
be_irg_t *b
irg)
{
{
- reg_pressure_main_env_t *main_env =
xmalloc(sizeof(main_env[0])
);
+ reg_pressure_main_env_t *main_env =
XMALLOC(reg_pressure_main_env_t
);
- main_env->arch_env =
arch_env
;
+ main_env->arch_env =
be_get_birg_arch_env(birg)
;
main_env->vtab = vtab;
main_env->vtab = vtab;
- irg_walk_graph(
irg
, firm_clear_link, NULL, NULL);
+ irg_walk_graph(
be_get_birg_irg(birg)
, firm_clear_link, NULL, NULL);
return main_env;
}
return main_env;
}
@@
-197,7
+198,7
@@
static INLINE int must_appear_in_schedule(const list_sched_selector_t *sel, void
static void *reg_pressure_block_init(void *graph_env, ir_node *bl)
{
ir_node *irn;
static void *reg_pressure_block_init(void *graph_env, ir_node *bl)
{
ir_node *irn;
- reg_pressure_selector_env_t *env
= xmalloc(sizeof(env[0])
);
+ reg_pressure_selector_env_t *env
= XMALLOC(reg_pressure_selector_env_t
);
obstack_init(&env->obst);
ir_nodeset_init(&env->already_scheduled);
obstack_init(&env->obst);
ir_nodeset_init(&env->already_scheduled);
@@
-283,6
+284,7
@@
static ir_node *reg_pressure_select(void *block_env, ir_nodeset_t *ready_set,
reg_pressure_selector_env_t *env = block_env;
ir_node *irn, *res = NULL;
int curr_cost = INT_MAX;
reg_pressure_selector_env_t *env = block_env;
ir_node *irn, *res = NULL;
int curr_cost = INT_MAX;
+ (void) live_set;
assert(ir_nodeset_size(ready_set) > 0);
assert(ir_nodeset_size(ready_set) > 0);
@@
-317,7
+319,7
@@
static ir_node *reg_pressure_select(void *block_env, ir_nodeset_t *ready_set,
return res;
}
return res;
}
-
static const list_sched_selector_t reg_pressure_selector_struct
= {
+
const list_sched_selector_t reg_pressure_selector
= {
reg_pressure_graph_init,
reg_pressure_block_init,
reg_pressure_select,
reg_pressure_graph_init,
reg_pressure_block_init,
reg_pressure_select,
@@
-329,5
+331,3
@@
static const list_sched_selector_t reg_pressure_selector_struct = {
reg_pressure_block_free,
free
};
reg_pressure_block_free,
free
};
-
-const list_sched_selector_t *reg_pressure_selector = ®_pressure_selector_struct;