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> 2015-11-19 David Edelsohn <dje.gcc@gmail.com>
Revert Revert
...@@ -1125,38 +1125,6 @@ translate_isl_ast_to_gimple::translate_isl_ast (loop_p context_loop, ...@@ -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 /* 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 at the exit of loop which takes one argument that is the last value of the
variable being used out of the loop. */ variable being used out of the loop. */
......
...@@ -355,6 +355,38 @@ outermost_loop_in_sese (sese_l &region, basic_block bb) ...@@ -355,6 +355,38 @@ outermost_loop_in_sese (sese_l &region, basic_block bb)
return nest; 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. */ /* Sets the false region of an IF_REGION to REGION. */
void void
......
...@@ -236,9 +236,9 @@ typedef struct ifsese_s { ...@@ -236,9 +236,9 @@ typedef struct ifsese_s {
extern void if_region_set_false_region (ifsese, sese_info_p); extern void if_region_set_false_region (ifsese, sese_info_p);
extern ifsese move_sese_in_condition (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_true_edge_from_guard_bb (basic_block);
extern edge get_false_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 static inline edge
if_region_entry (ifsese if_region) 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