#include "set.h"
#include "pdeq.h"
#include "hashptr.h"
+#include "error.h"
#include "irprog_t.h"
#include "irgraph_t.h"
ef.reg = reg;
assert(exec_freq_set);
- found = set_find(exec_freq_set, &ef, sizeof(ef), exec_freq_hash(&ef));
+ found = (reg_exec_freq*) set_find(exec_freq_set, &ef, sizeof(ef), exec_freq_hash(&ef));
/* Not found if information is invalid. */
if (found)
static ir_node *Cond_list = NULL;
/* We do not use an extra set, as Projs are not yet in the existing one. */
-void set_ProjX_probability(ir_node *n, Cond_prob prob)
+static void set_ProjX_probability(ir_node *n, Cond_prob prob)
{
reg_exec_freq ef;
ef.reg = n;
set_insert(exec_freq_set, &ef, sizeof(ef), exec_freq_hash(&ef));
}
-Cond_prob get_ProjX_probability(ir_node *n)
+static Cond_prob get_ProjX_probability(ir_node *n)
{
reg_exec_freq ef, *found;
ef.reg = n;
- found = set_find(exec_freq_set, &ef, sizeof(ef), exec_freq_hash(&ef));
+ found = (reg_exec_freq*) set_find(exec_freq_set, &ef, sizeof(ef), exec_freq_hash(&ef));
if (found)
return (Cond_prob)found->prob;
pre(node, env);
- if (node->op != op_Block) {
+ if (!is_Block(node)) {
ir_node *pred;
- if (node->op == op_Proj)
+ if (is_Proj(node))
pred = get_irn_n(node, 0);
else
pred = get_irn_n(node, -1);
}
}
- if (node->op == op_End) {
+ if (is_End(node)) {
for (i = get_irn_arity(node) - 1; i >= 0; --i) {
ir_node *pred = get_irn_n(node, i);
if ((pred->op == op_Block) && (pred->visited < current_ir_graph->visited))
/** Precompute which Conds test for an exception.
*
* Operates on current_ir_graph. */
-void precompute_cond_evaluation(void)
+static void precompute_cond_evaluation(void)
{
ir_node *c;
Cond_list = NULL;
my_irg_walk_current_graph(walk_pre, walk_post, NULL);
- for (c = Cond_list; c; c = get_irn_link(c)) {
+ for (c = Cond_list; c; c = (ir_node*)get_irn_link(c)) {
ir_node *p0, *p1;
assert(get_irn_n_outs(c) == 2 && "encountered a switch cond");
/* both are exceptions */
if ((get_ProjX_probability(p0) == Cond_prob_exception_taken) &&
(get_ProjX_probability(p1) == Cond_prob_exception_taken) ) {
- assert(0 && "I tried to avoid these!");
+ panic("I tried to avoid these!");
+#if 0
/* It's a */
set_ProjX_probability(p0, Cond_prob_normal);
set_ProjX_probability(p1, Cond_prob_normal);
+#endif
}
/* p0 is exception */
cfop = skip_Proj(cfop);
} else {
assert(is_ir_loop(reg));
- cfop = get_loop_cfop(reg, pos);
+ cfop = (ir_node*)get_loop_cfop(reg, pos);
}
if (is_fragile_op(cfop) || is_fragile_Proj(cfop)) {
int i, n_ins = get_region_n_ins(reg);
double my_freq = 0;
- //printf("head weight %lf: ", head_weight); DDMR(reg);
-
for (i = 0; i < n_ins; ++i) {
void *pred_reg = get_region_in(reg, i);
if (pred_reg) {
while (!pdeq_empty(block_worklist)) {
ir_loop *l = (ir_loop *)pdeq_getl(block_worklist);
- int i, n_elems = get_loop_n_elements(l);
+ size_t i, n_elems = get_loop_n_elements(l);
/* The header is initialized with the frequency of the full loop times the iteration weight. */
check_proper_head(l, get_loop_element(l, 0).son);
void compute_execution_frequencies(int default_loop_weight, double exception_probability)
{
- int i, n_irgs = get_irp_n_irgs();
+ size_t i, n_irgs = get_irp_n_irgs();
free_intervals();
for (i = 0; i < n_irgs; ++i) {
compute_execution_frequency(get_irp_irg(i), default_loop_weight, exception_probability);
/** free occupied memory, reset */
void free_execution_frequency(void)
{
- int i, n_irgs = get_irp_n_irgs();
+ size_t i, n_irgs = get_irp_n_irgs();
free_intervals();
del_set(exec_freq_set);
/* Sets irp and all irg exec freq states to inconsistent if it is set to consistent. */
void set_irp_exec_freq_state_inconsistent(void)
{
- if (get_irp_exec_freq_state() != exec_freq_none) {
- int i, n_irgs = get_irp_n_irgs();
- set_irp_exec_freq_state(exec_freq_inconsistent);
- for (i = 0; i < n_irgs; ++i) {
- ir_graph *irg = get_irp_irg(i);
- if (get_irg_exec_freq_state(irg) != exec_freq_none)
- irg->execfreq_state = exec_freq_inconsistent;
- }
- }
+ if (get_irp_exec_freq_state() != exec_freq_none) {
+ size_t i, n_irgs = get_irp_n_irgs();
+ set_irp_exec_freq_state(exec_freq_inconsistent);
+ for (i = 0; i < n_irgs; ++i) {
+ ir_graph *irg = get_irp_irg(i);
+ if (get_irg_exec_freq_state(irg) != exec_freq_none)
+ irg->execfreq_state = exec_freq_inconsistent;
+ }
+ }
}