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
73600cee
Commit
73600cee
authored
Feb 01, 2015
by
yb9976
Browse files
Prevent optimization (x ^ y) & x -> ~y & x in case of multiple users.
parent
1a6c31ee
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/ir/iropt.c
View file @
73600cee
...
...
@@ -4349,13 +4349,13 @@ static ir_node *transform_node_And(ir_node *n)
}
ir_node
*
x
;
ir_node
*
y
;
if
(
is_Eor
(
a
)
||
is_Eor_Add
(
a
))
{
if
(
(
is_Eor
(
a
)
||
is_Eor_Add
(
a
))
&&
only_one_user
(
a
))
{
x
=
b
;
y
=
get_commutative_other_op
(
a
,
x
);
if
(
y
)
/* (x ^ y) & x -> ~y & x */
goto
absorb
;
}
if
(
is_Eor
(
b
)
||
is_Eor_Add
(
b
))
{
if
(
(
is_Eor
(
b
)
||
is_Eor_Add
(
b
))
&&
only_one_user
(
b
))
{
x
=
a
;
y
=
get_commutative_other_op
(
b
,
x
);
if
(
y
)
{
...
...
Write
Preview
Supports
Markdown
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