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
4ca9523e
Commit
4ca9523e
authored
Jul 14, 2014
by
yb9976
Browse files
Removed wrong Conv creation.
parent
90f8824d
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/ir/iropt.c
View file @
4ca9523e
...
...
@@ -6452,14 +6452,6 @@ static ir_node *transform_node_Mux(ir_node *n)
if
(
is_relation_less
||
is_relation_greater_equal
)
{
ir_node
*
block
=
get_nodes_block
(
n
);
dbg_info
*
dbgi
=
get_irn_dbg_info
(
n
);
unsigned
cmp_bits
=
get_mode_size_bits
(
cmp_mode
);
unsigned
dest_bits
=
get_mode_size_bits
(
mode
);
ir_mode
*
curr_mode
=
cmp_mode
;
if
(
cmp_mode
!=
mode
&&
cmp_bits
>=
dest_bits
)
{
curr_mode
=
mode
;
cmp_l
=
new_rd_Conv
(
dbgi
,
block
,
cmp_l
,
curr_mode
);
}
if
(
is_relation_less
)
{
/* Mux(a < 0, 0, 0xFFFFFFFF) => a >>s 31 */
...
...
@@ -6467,14 +6459,15 @@ static ir_node *transform_node_Mux(ir_node *n)
}
else
{
/* Mux(a >= 0, 0, 0xFFFFFFFF) => ~a >>s 31 */
assert
(
is_relation_greater_equal
);
cmp_l
=
new_rd_Not
(
dbgi
,
block
,
cmp_l
,
c
urr
_mode
);
cmp_l
=
new_rd_Not
(
dbgi
,
block
,
cmp_l
,
c
mp
_mode
);
relation
=
ir_relation_greater_equal
;
}
ir_node
*
c
=
new_rd_Const_long
(
dbgi
,
irg
,
mode_Iu
,
dest_bits
-
1U
);
ir_node
*
shrs
=
new_rd_Shrs
(
dbgi
,
block
,
cmp_l
,
c
,
curr_mode
);
unsigned
bits
=
get_mode_size_bits
(
cmp_mode
);
ir_node
*
c
=
new_rd_Const_long
(
dbgi
,
irg
,
mode_Iu
,
bits
-
1U
);
ir_node
*
shrs
=
new_rd_Shrs
(
dbgi
,
block
,
cmp_l
,
c
,
cmp_mode
);
if
(
c
urr
_mode
!=
mode
)
{
if
(
c
mp
_mode
!=
mode
)
{
shrs
=
new_rd_Conv
(
dbgi
,
block
,
shrs
,
mode
);
}
...
...
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