* Minimum Register Instruction Sequencing to Reduce Register Spills
* in out-of-order issue superscalar architectures
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <limits.h>
struct _mris_env_t {
ir_phase ph;
heights_t *heights;
- const arch_env_t *aenv;
ir_graph *irg;
ir_node *bl;
int visited;
}
#if 0
-static int compute_height(mris_env_t *env, ir_node *irn, unsigned long visited)
+static int compute_height(mris_env_t *env, ir_node *irn, ir_visited_t visited)
{
mris_irn_t *mi = get_mris_irn(env, irn);
static void compute_heights(mris_env_t *env)
{
const ir_edge_t *edge;
- unsigned long visited;
+ ir_visited_t visited;
visited = get_irg_visited(env->irg) + 1;
set_irg_visited(env->irg, visited);
}
#if 0
-static void reaches_walker(mris_env_t *env, ir_node *irn, ir_node *tgt, int *found, unsigned long visited)
+static void reaches_walker(mris_env_t *env, ir_node *irn, ir_node *tgt, int *found, ir_visited_t visited)
{
if(get_irn_visited(irn) < visited && get_nodes_block(irn) == env->bl) {
static int reaches(mris_env_t *env, ir_node *src, ir_node *tgt)
{
int found = 0;
- unsigned long visited = get_irg_visited(env->irg) + 1;
+ ir_visited_t visited = get_irg_visited(env->irg) + 1;
set_irg_visited(env->irg, visited);
reaches_walker(env, src, tgt, &found, visited);
}
#endif
-static INLINE ir_node *skip_Projs(ir_node *irn)
+static inline ir_node *skip_Projs(ir_node *irn)
{
return is_Proj(irn) ? skip_Projs(get_Proj_pred(irn)) : irn;
}
mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg)
{
- mris_env_t *env = xmalloc(sizeof(env[0]));
+ mris_env_t *env = XMALLOC(mris_env_t);
ir_graph *irg = be_get_birg_irg(birg);
phase_init(&env->ph, "mris", irg, 2 * PHASE_DEFAULT_GROWTH, mris_irn_data_init, NULL);
- env->aenv = be_get_birg_arch_env(birg);
env->irg = irg;
env->visited = 0;
env->heights = heights_new(irg);