Commit 09b574dd by Aditya Kumar Committed by Sebastian Pop

fix bootstrap without ISL on old linkers

With and without this patch passes bootstrap on x86_64-linux with and without ISL.
The problem occurs on systems with older linkers that do not remove dead symbols.

From-SVN: r230625
parent 2d256816
2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
* graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
(get_false_edge_from_guard_bb): Move...
* sese.c (get_false_edge_from_guard_bb)
(get_true_edge_from_guard_bb): ... here.
2015-11-19 David Edelsohn <dje.gcc@gmail.com>
Revert
......@@ -1125,38 +1125,6 @@ translate_isl_ast_to_gimple::translate_isl_ast (loop_p context_loop,
}
}
/* Returns the first successor edge of BB with EDGE_TRUE_VALUE flag set. */
edge
get_true_edge_from_guard_bb (basic_block bb)
{
edge e;
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
if (e->flags & EDGE_TRUE_VALUE)
return e;
gcc_unreachable ();
return NULL;
}
/* Returns the first successor edge of BB with EDGE_TRUE_VALUE flag cleared. */
edge
get_false_edge_from_guard_bb (basic_block bb)
{
edge e;
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
if (!(e->flags & EDGE_TRUE_VALUE))
return e;
gcc_unreachable ();
return NULL;
}
/* Return true when BB contains loop close phi nodes. A loop close phi node is
at the exit of loop which takes one argument that is the last value of the
variable being used out of the loop. */
......
......@@ -355,6 +355,38 @@ outermost_loop_in_sese (sese_l &region, basic_block bb)
return nest;
}
/* Returns the first successor edge of BB with EDGE_TRUE_VALUE flag set. */
edge
get_true_edge_from_guard_bb (basic_block bb)
{
edge e;
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
if (e->flags & EDGE_TRUE_VALUE)
return e;
gcc_unreachable ();
return NULL;
}
/* Returns the first successor edge of BB with EDGE_TRUE_VALUE flag cleared. */
edge
get_false_edge_from_guard_bb (basic_block bb)
{
edge e;
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
if (!(e->flags & EDGE_TRUE_VALUE))
return e;
gcc_unreachable ();
return NULL;
}
/* Sets the false region of an IF_REGION to REGION. */
void
......
......@@ -236,9 +236,9 @@ typedef struct ifsese_s {
extern void if_region_set_false_region (ifsese, sese_info_p);
extern ifsese move_sese_in_condition (sese_info_p);
extern void set_ifsese_condition (ifsese, tree);
extern edge get_true_edge_from_guard_bb (basic_block);
extern edge get_false_edge_from_guard_bb (basic_block);
extern void set_ifsese_condition (ifsese, tree);
static inline edge
if_region_entry (ifsese if_region)
......
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