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
c9a79dbf
Commit
c9a79dbf
authored
Jun 10, 2013
by
Matthias Braun
Browse files
push usage of assure_irg_properties/confirm_irg_properties in backend
parent
9a0042ee
Changes
3
Hide whitespace changes
Inline
Side-by-side
ir/be/beabi.c
View file @
c9a79dbf
...
...
@@ -1481,6 +1481,8 @@ void be_abi_introduce(ir_graph *irg)
{
be_timer_push
(
T_ABI
);
assure_irg_properties
(
irg
,
IR_GRAPH_PROPERTY_CONSISTENT_OUT_EDGES
);
ir_node
*
const
old_frame
=
get_irg_frame
(
irg
);
const
arch_env_t
*
const
arch_env
=
be_get_irg_arch_env
(
irg
);
ir_entity
*
const
entity
=
get_irg_entity
(
irg
);
...
...
@@ -1509,8 +1511,6 @@ void be_abi_introduce(ir_graph *irg)
env
.
init_sp
=
dummy
;
env
.
calls
=
NEW_ARR_F
(
ir_node
*
,
0
);
assure_edges
(
irg
);
/* Lower all call nodes in the IRG. */
process_calls
(
irg
,
&
env
);
...
...
@@ -1534,6 +1534,10 @@ void be_abi_introduce(ir_graph *irg)
pmap_destroy
(
env
.
regs
);
confirm_irg_properties
(
irg
,
IR_GRAPH_PROPERTY_NO_BADS
|
IR_GRAPH_PROPERTY_NO_CRITICAL_EDGES
|
IR_GRAPH_PROPERTY_NO_UNREACHABLE_CODE
);
be_timer_pop
(
T_ABI
);
}
...
...
ir/be/bemain.c
View file @
c9a79dbf
...
...
@@ -395,34 +395,19 @@ static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env)
dump
(
DUMP_INITIAL
,
irg
,
"begin"
);
irg
->
be_data
=
birg
;
assure_irg_properties
(
irg
,
IR_GRAPH_PROPERTY_NO_BADS
|
IR_GRAPH_PROPERTY_NO_UNREACHABLE_CODE
|
IR_GRAPH_PROPERTY_NO_CRITICAL_EDGES
|
IR_GRAPH_PROPERTY_MANY_RETURNS
);
memset
(
birg
,
0
,
sizeof
(
*
birg
));
birg
->
main_env
=
env
;
obstack_init
(
&
birg
->
obst
);
birg
->
lv
=
be_liveness_new
(
irg
);
edges_deactivate
(
irg
);
edges_activate
(
irg
);
/* set the current graph (this is important for several firm functions) */
current_ir_graph
=
irg
;
/* we do this before critical edge split. As this produces less returns,
because sometimes (= 164.gzip) multiple returns are slower */
normalize_n_returns
(
irg
);
/* Remove critical edges */
remove_critical_cf_edges_ex
(
irg
,
/*ignore_exception_edges=*/
0
);
/* For code generation all unreachable code and Bad nodes should be gone */
remove_unreachable_code
(
irg
);
remove_bads
(
irg
);
/* Ensure, that the ir_edges are computed. */
assure_edges
(
irg
);
irg
->
be_data
=
birg
;
be_info_init_irg
(
irg
);
birg
->
lv
=
be_liveness_new
(
irg
);
dump
(
DUMP_INITIAL
,
irg
,
"prepared"
);
}
...
...
@@ -568,9 +553,6 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
if
(
get_entity_linkage
(
entity
)
&
IR_LINKAGE_NO_CODEGEN
)
continue
;
/* set the current graph (this is important for several firm functions) */
current_ir_graph
=
irg
;
if
(
stat_ev_enabled
)
{
stat_ev_ctx_push_fmt
(
"bemain_irg"
,
"%+F"
,
irg
);
stat_ev_ull
(
"bemain_insns_start"
,
be_count_insns
(
irg
));
...
...
@@ -593,18 +575,6 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
if
(
arch_env
->
impl
->
init_graph
)
arch_env
->
impl
->
init_graph
(
irg
);
/* We can't have Bad-blocks or critical edges in the backend.
* Before removing Bads, we remove unreachable code. */
optimize_graph_df
(
irg
);
remove_critical_cf_edges
(
irg
);
remove_bads
(
irg
);
/* We often have dead code reachable through out-edges here. So for
* now we rebuild edges (as we need correct user count for code
* selection) */
edges_deactivate
(
irg
);
edges_activate
(
irg
);
dump
(
DUMP_PREPARED
,
irg
,
"before-code-selection"
);
/* perform codeselection */
...
...
ir/be/ia32/ia32_transform.c
View file @
c9a79dbf
...
...
@@ -5502,6 +5502,8 @@ void ia32_transform_graph(ir_graph *irg)
initial_fpcw
=
NULL
;
ia32_no_pic_adjust
=
false
;
assure_irg_properties
(
irg
,
IR_GRAPH_PROPERTY_CONSISTENT_OUT_EDGES
);
old_initial_fpcw
=
be_get_initial_reg_value
(
irg
,
&
ia32_registers
[
REG_FPCW
]);
be_timer_push
(
T_HEIGHTS
);
...
...
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