projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
no environment anymore for emitters
[libfirm]
/
ir
/
opt
/
opt_confirms.c
diff --git
a/ir/opt/opt_confirms.c
b/ir/opt/opt_confirms.c
index
47853dc
..
861051e
100644
(file)
--- a/
ir/opt/opt_confirms.c
+++ b/
ir/opt/opt_confirms.c
@@
-184,16
+184,16
@@
int value_not_null(ir_node *n, ir_node **confirm) {
if (op == op_SymConst && get_SymConst_kind(n) == symconst_addr_ent)
return 1;
if (op == op_Const) {
if (op == op_SymConst && get_SymConst_kind(n) == symconst_addr_ent)
return 1;
if (op == op_Const) {
- tarval *tv = get_Const_tarval(n);
-
- if (tv != tarval_bad && classify_tarval(tv) != TV_CLASSIFY_NULL)
+ if (!is_Const_null(n))
return 1;
} else {
for (; is_Confirm(n); n = skip_Cast(get_Confirm_value(n))) {
return 1;
} else {
for (; is_Confirm(n); n = skip_Cast(get_Confirm_value(n))) {
- if (get_Confirm_cmp(n) == pn_Cmp_Lg &&
- classify_Const(get_Confirm_bound(n)) == CNST_NULL) {
+ if (get_Confirm_cmp(n) != pn_Cmp_Lg) {
+ ir_node *bound = get_Confirm_bound(n);
+ if (is_Const(bound) && is_Const_null(bound)) {
*confirm = n;
return 1;
*confirm = n;
return 1;
+ }
}
}
}
}
}
}
@@
-593,7
+593,7
@@
tarval *computed_value_Cmp_Confirm(ir_node *cmp, ir_node *left, ir_node *right,
/* we want the Confirm on the left side */
ir_node *t = right;
right = left;
/* we want the Confirm on the left side */
ir_node *t = right;
right = left;
- left =
righ
t;
+ left = t;
pnc = get_inversed_pnc(pnc);
} else if (! is_Confirm(left)) {
pnc = get_inversed_pnc(pnc);
} else if (! is_Confirm(left)) {