Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
bae07c01
Commit
bae07c01
authored
Sep 23, 2011
by
yb9976
Browse files
Enqueue Phi nodes to reach fixpoint.
parent
566be3ad
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/ir/irgopt.c
View file @
bae07c01
...
...
@@ -115,10 +115,21 @@ static void enqueue_users(ir_node *n, pdeq *waitq)
const
ir_edge_t
*
edge
;
foreach_out_edge
(
n
,
edge
)
{
ir_node
*
succ
=
get_edge_src_irn
(
edge
);
ir_node
*
succ
=
get_edge_src_irn
(
edge
);
const
ir_edge_t
*
edge2
;
enqueue_node
(
succ
,
waitq
);
if
(
get_irn_mode
(
succ
)
==
mode_T
)
{
/* Also enqueue Phis to prevent inconsistencies. */
if
(
is_Block
(
succ
))
{
foreach_out_edge
(
succ
,
edge2
)
{
ir_node
*
succ2
=
get_edge_src_irn
(
edge2
);
if
(
is_Phi
(
succ2
))
{
enqueue_node
(
succ2
,
waitq
);
}
}
}
else
if
(
get_irn_mode
(
succ
)
==
mode_T
)
{
/* A mode_T node has Proj's. Because most optimizations
run on the Proj's we have to enqueue them also. */
enqueue_users
(
succ
,
waitq
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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