Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
b9ce1245
Commit
b9ce1245
authored
Apr 09, 2010
by
Michael Beck
Browse files
Bugfix: add missing NaN handling for Cmp nodes inside combo.
This fixes testsuite/backend/floatset.c ... [r27367]
parent
585313e4
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/opt/combo.c
View file @
b9ce1245
...
...
@@ -2302,15 +2302,26 @@ static void compute_Cmp(node_t *node)
node_t
*
r
=
get_irn_node
(
get_Cmp_right
(
cmp
));
lattice_elem_t
a
=
l
->
type
;
lattice_elem_t
b
=
r
->
type
;
ir_mode
*
mode
=
get_irn_mode
(
get_Cmp_left
(
cmp
));
if
(
a
.
tv
==
tarval_top
||
b
.
tv
==
tarval_top
)
{
node
->
type
.
tv
=
tarval_top
;
}
else
if
(
r
->
part
==
l
->
part
)
{
/* both nodes congruent, we can probably do something */
node
->
type
.
tv
=
tarval_b_true
;
if
(
mode_is_float
(
mode
))
{
/* beware of NaN's */
node
->
type
.
tv
=
tarval_bottom
;
}
else
{
node
->
type
.
tv
=
tarval_b_true
;
}
}
else
if
(
is_con
(
a
)
&&
is_con
(
b
))
{
/* both nodes are constants, we can probably do something */
node
->
type
.
tv
=
tarval_b_true
;
if
(
mode_is_float
(
mode
))
{
/* beware of NaN's */
node
->
type
.
tv
=
tarval_bottom
;
}
else
{
node
->
type
.
tv
=
tarval_b_true
;
}
}
else
{
node
->
type
.
tv
=
tarval_bottom
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment