projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ia32: Use a more logical specification of operand sizes in the binary emitter.
[libfirm]
/
ir
/
ir
/
irgopt.c
diff --git
a/ir/ir/irgopt.c
b/ir/ir/irgopt.c
index
f793fb9
..
87b0cb2
100644
(file)
--- a/
ir/ir/irgopt.c
+++ b/
ir/ir/irgopt.c
@@
-69,9
+69,6
@@
static inline void do_local_optimize(ir_node *n)
{
ir_graph *irg = get_irn_irg(n);
{
ir_graph *irg = get_irn_irg(n);
- /* Handle graph state */
- assert(get_irg_phase_state(irg) != phase_building);
-
if (get_opt_global_cse())
set_irg_pinned(irg, op_pin_state_floats);
clear_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_DOMINANCE);
if (get_opt_global_cse())
set_irg_pinned(irg, op_pin_state_floats);
clear_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_DOMINANCE);
@@
-107,11
+104,8
@@
static void enqueue_node(ir_node *node, pdeq *waitq)
*/
static void enqueue_users(ir_node *n, pdeq *waitq)
{
*/
static void enqueue_users(ir_node *n, pdeq *waitq)
{
- const ir_edge_t *edge;
-
foreach_out_edge(n, edge) {
foreach_out_edge(n, edge) {
- ir_node *succ = get_edge_src_irn(edge);
- const ir_edge_t *edge2;
+ ir_node *succ = get_edge_src_irn(edge);
enqueue_node(succ, waitq);
enqueue_node(succ, waitq);
@@
-143,9
+137,7
@@
static void find_unreachable_blocks(ir_node *block, void *env)
ir_graph *irg = get_irn_irg(block);
ir_node *end = get_irg_end(irg);
ir_graph *irg = get_irn_irg(block);
ir_node *end = get_irg_end(irg);
- const ir_edge_t *edge;
foreach_block_succ(block, edge) {
foreach_block_succ(block, edge) {
- const ir_edge_t *edge2;
ir_node *succ_block = get_edge_src_irn(edge);
enqueue_node(succ_block, waitq);
foreach_out_edge(succ_block, edge2) {
ir_node *succ_block = get_edge_src_irn(edge);
enqueue_node(succ_block, waitq);
foreach_out_edge(succ_block, edge2) {
@@
-248,6
+240,15
@@
int optimize_graph_df(ir_graph *irg)
return true;
}
return true;
}
+void local_opts_const_code(void)
+{
+ ir_graph *irg = get_const_code_irg();
+ /* Clean the value_table in irg for the CSE. */
+ new_identities(irg);
+
+ walk_const_code(firm_clear_link, optimize_in_place_wrapper, NULL);
+}
+
ir_graph_pass_t *optimize_graph_df_pass(const char *name)
{
return def_graph_pass_ret(name ? name : "optimize_graph_df", optimize_graph_df);
ir_graph_pass_t *optimize_graph_df_pass(const char *name)
{
return def_graph_pass_ret(name ? name : "optimize_graph_df", optimize_graph_df);