projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a9308c8
)
bad blocks have cf_probability 0
author
Matthias Braun
<matze@braunis.de>
Mon, 1 Dec 2008 13:54:47 +0000
(13:54 +0000)
committer
Matthias Braun
<matze@braunis.de>
Mon, 1 Dec 2008 13:54:47 +0000
(13:54 +0000)
[r24186]
ir/ana/execfreq.c
patch
|
blob
|
history
diff --git
a/ir/ana/execfreq.c
b/ir/ana/execfreq.c
index
e312cd3
..
c6cbf1e
100644
(file)
--- a/
ir/ana/execfreq.c
+++ b/
ir/ana/execfreq.c
@@
-181,13
+181,19
@@
solve_lgs(gs_matrix_t *mat, double *x, int size)
static double
get_cf_probability(ir_node *bb, int pos, double loop_weight)
{
static double
get_cf_probability(ir_node *bb, int pos, double loop_weight)
{
- double sum = 0.0;
- double cur = 0.0;
- const ir_node *pred = get_Block_cfgpred_block(bb, pos);
- const ir_loop
*pred_loop = get_irn_loop(pred)
;
- int
pred_depth = get_loop_depth(pred_loop)
;
+ double
sum = 0.0;
+ double
cur = 0.0;
+ const ir_node
*pred = get_Block_cfgpred_block(bb, pos);
+ const ir_loop
*pred_loop
;
+ int
pred_depth
;
const ir_edge_t *edge;
const ir_edge_t *edge;
+ if (is_Bad(pred))
+ return 0;
+
+ pred_loop = get_irn_loop(pred);
+ pred_depth = get_loop_depth(pred_loop);
+
cur = get_loop_depth(get_irn_loop(bb)) < get_loop_depth(get_irn_loop(pred)) ? 1.0 : loop_weight;
foreach_block_succ(pred, edge) {
cur = get_loop_depth(get_irn_loop(bb)) < get_loop_depth(get_irn_loop(pred)) ? 1.0 : loop_weight;
foreach_block_succ(pred, edge) {