Commit 8737c443 authored by Matthias Braun's avatar Matthias Braun
Browse files

remove some more code mentioning the Barrier

parent 9e31d4ea
......@@ -1411,7 +1411,6 @@ static ir_node *gen_Proj_Start(ir_node *node)
{
ir_node *block = get_nodes_block(node);
ir_node *new_block = be_transform_node(block);
ir_node *barrier = be_transform_node(get_Proj_pred(node));
long proj = get_Proj_proj(node);
switch ((pn_Start) proj) {
......@@ -1420,10 +1419,11 @@ static ir_node *gen_Proj_Start(ir_node *node)
return new_bd_arm_Jmp(NULL, new_block);
case pn_Start_M:
return new_r_Proj(barrier, mode_M, 0);
return be_prolog_get_memory(abihelper);
case pn_Start_T_args:
return barrier;
/* we should never need this explicitely */
return new_r_Bad(get_irn_irg(node));
case pn_Start_P_frame_base:
return be_prolog_get_reg_value(abihelper, sp_reg);
......@@ -1715,7 +1715,7 @@ static void create_stacklayout(ir_graph *irg)
}
/**
* transform the start node to the prolog code + initial barrier
* transform the start node to the prolog code
*/
static ir_node *gen_Start(ir_node *node)
{
......
......@@ -602,10 +602,6 @@ static void insert_perms(ir_node *block, void *data)
be_chordal_env_t *env = (be_chordal_env_t*)data;
ir_node *irn;
/*
* If the block is the start block search the barrier and
* start handling constraints from there.
*/
for (irn = sched_first(block); !sched_is_end(irn);) {
be_insn_t *insn = chordal_scan_insn(env, irn);
irn = insn->next_insn;
......
......@@ -1271,7 +1271,7 @@ static void create_stacklayout(ir_graph *irg)
}
/**
* transform the start node to the prolog code + initial barrier
* transform the start node to the prolog code
*/
static ir_node *gen_Start(ir_node *node)
{
......@@ -2085,27 +2085,6 @@ static void sparc_register_transformers(void)
be_set_transform_function(op_sparc_Save, be_duplicate_node);
}
/* hack to avoid unused fp proj at start barrier */
static void assure_fp_keep(void)
{
unsigned n_users = 0;
const ir_edge_t *edge;
ir_node *fp_proj = be_prolog_get_reg_value(abihelper, fp_reg);
foreach_out_edge(fp_proj, edge) {
ir_node *succ = get_edge_src_irn(edge);
if (is_End(succ) || is_Anchor(succ))
continue;
++n_users;
}
if (n_users == 0) {
ir_node *block = get_nodes_block(fp_proj);
ir_node *in[1] = { fp_proj };
be_new_Keep(block, 1, in);
}
}
/**
* Transform a Firm graph into a SPARC graph.
*/
......@@ -2129,8 +2108,6 @@ void sparc_transform_graph(ir_graph *irg)
create_stacklayout(irg);
be_transform_graph(irg, NULL);
if (!cconv->omit_fp)
assure_fp_keep();
be_abihelper_finish(abihelper);
sparc_free_calling_convention(cconv);
......
......@@ -600,9 +600,8 @@ typedef enum ir_opcode {
beo_IncSP,
beo_Start,
beo_FrameAddr,
beo_Barrier,
/* last backend node number */
beo_Last = beo_Barrier,
beo_Last = beo_FrameAddr,
iro_MaxOpcode
} ir_opcode;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment