n_preds = get_Block_n_cfgpreds(pred);
} else {
/* b's pred blocks and pred's pred blocks must be pairwise disjunct.
- Work preds < pos as if they were already removed. */
+ Work preds < pos as if they were already removed. */
for (i = 0; i < pos; i++) {
- ir_node *b_pred = get_nodes_block(get_Block_cfgpred(b, i));
- if (get_Block_block_visited(b_pred) + 1
- < get_irg_block_visited(current_ir_graph)) {
- for (j = 0; j < get_Block_n_cfgpreds(b_pred); j++) {
- ir_node *b_pred_pred = get_nodes_block(get_Block_cfgpred(b_pred, j));
- if (is_pred_of(b_pred_pred, pred)) dispensable = 0;
- }
- } else {
- if (is_pred_of(b_pred, pred)) dispensable = 0;
- }
+ ir_node *b_pred = get_nodes_block(get_Block_cfgpred(b, i));
+ if (get_Block_block_visited(b_pred) + 1
+ < get_irg_block_visited(current_ir_graph)) {
+ for (j = 0; j < get_Block_n_cfgpreds(b_pred); j++) {
+ ir_node *b_pred_pred = get_nodes_block(get_Block_cfgpred(b_pred, j));
+ if (is_pred_of(b_pred_pred, pred)) dispensable = 0;
+ }
+ } else {
+ if (is_pred_of(b_pred, pred)) dispensable = 0;
+ }
}
for (i = pos +1; i < get_Block_n_cfgpreds(b); i++) {
- ir_node *b_pred = get_nodes_block(get_Block_cfgpred(b, i));
- if (is_pred_of(b_pred, pred)) dispensable = 0;
+ ir_node *b_pred = get_nodes_block(get_Block_cfgpred(b, i));
+ if (is_pred_of(b_pred, pred)) dispensable = 0;
}
if (!dispensable) {
- set_Block_block_visited(pred, get_irg_block_visited(current_ir_graph)-1);
- n_preds = 1;
+ set_Block_block_visited(pred, get_irg_block_visited(current_ir_graph)-1);
+ n_preds = 1;
} else {
n_preds = get_Block_n_cfgpreds(pred);
}
/* frees the memory. */
void remove_Block_cg_cfgpred_arr(ir_node * node);
+/** Keep alive dedicated nodes. These must be either
+ * PhiM or Block nodes. */
int get_End_n_keepalives(ir_node *end);
ir_node *get_End_keepalive(ir_node *end, int pos);
void add_End_keepalive (ir_node *end, ir_node *ka);
#define RFLCT_MC(m) rflct_ms_ ## m
typedef enum {
- RFLCT_MC(None) = 0,
- RFLCT_MC(Mem) = 2,
- RFLCT_MC(Bool) = 4,
- RFLCT_MC(IntS) = 8,
- RFLCT_MC(IntU) = 16,
+ RFLCT_MC(None) = 0,
+ RFLCT_MC(Mem) = 2,
+ RFLCT_MC(Bool) = 4,
+ RFLCT_MC(IntS) = 8,
+ RFLCT_MC(IntU) = 16,
RFLCT_MC(Float) = 32,
- RFLCT_MC(Ref) = 64,
- RFLCT_MC(Char) = 128,
- RFLCT_MC(X) = 256,
- RFLCT_MC(BB) = 512,
- RFLCT_MC(Cf) = RFLCT_MC(X) | RFLCT_MC(BB),
+ RFLCT_MC(Ref) = 64,
+ RFLCT_MC(Char) = 128,
+ RFLCT_MC(X) = 256,
+ RFLCT_MC(BB) = 512,
+ RFLCT_MC(Cf) = RFLCT_MC(X) | RFLCT_MC(BB),
RFLCT_MC(Int) = RFLCT_MC(IntS) | RFLCT_MC(IntU),
RFLCT_MC(Intb) = RFLCT_MC(Int) | RFLCT_MC(Bool),