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
51a7dbfd
Commit
51a7dbfd
authored
Mar 07, 2011
by
Matthias Braun
Browse files
bestack: remove unnecessary keep edges from IncSP nodes
parent
bb523cb9
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/bestack.c
View file @
51a7dbfd
...
...
@@ -379,6 +379,28 @@ void be_abi_fix_stack_nodes(ir_graph *irg)
arch_set_irn_register
(
phi
,
arch_env
->
sp
);
}
be_ssa_construction_destroy
(
&
senv
);
DEL_ARR_F
(
walker_env
.
sp_nodes
);
/* when doing code with frame-pointers then often the last incsp-nodes are
* not used anymore because we copy the framepointer to the stack pointer
* when leaving the function. Though the last incsp is often keeped (because
* you often don't know which incsp is the last one and fixstack should find
* them all). Remove unnecessary keeps and IncSP nodes */
{
ir_node
*
end
=
get_irg_end
(
irg
);
int
arity
=
get_irn_arity
(
end
);
int
i
;
for
(
i
=
arity
-
1
;
i
>=
0
;
--
i
)
{
ir_node
*
in
=
get_irn_n
(
end
,
i
);
if
(
!
be_is_IncSP
(
in
))
{
continue
;
}
remove_End_keepalive
(
end
,
in
);
if
(
get_irn_n_edges
(
in
)
==
0
)
{
sched_remove
(
in
);
kill_node
(
in
);
}
}
}
}
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