comparison gcc/sese.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Single entry single exit control flow regions. 1 /* Single entry single exit control flow regions.
2 Copyright (C) 2008-2017 Free Software Foundation, Inc. 2 Copyright (C) 2008-2018 Free Software Foundation, Inc.
3 Contributed by Jan Sjodin <jan.sjodin@amd.com> and 3 Contributed by Jan Sjodin <jan.sjodin@amd.com> and
4 Sebastian Pop <sebastian.pop@amd.com>. 4 Sebastian Pop <sebastian.pop@amd.com>.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
118 EXIT blocks. */ 118 EXIT blocks. */
119 119
120 static inline bool 120 static inline bool
121 bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block exit) 121 bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block exit)
122 { 122 {
123 /* FIXME: PR67842. */
124 #if 0
125 if (flag_checking)
126 {
127 edge e;
128 edge_iterator ei;
129
130 /* Check that there are no edges coming in the region: all the
131 predecessors of EXIT are dominated by ENTRY. */
132 FOR_EACH_EDGE (e, ei, exit->preds)
133 gcc_assert (dominated_by_p (CDI_DOMINATORS, e->src, entry));
134 }
135 #endif
136
137 return dominated_by_p (CDI_DOMINATORS, bb, entry) 123 return dominated_by_p (CDI_DOMINATORS, bb, entry)
138 && !(dominated_by_p (CDI_DOMINATORS, bb, exit) 124 && !(dominated_by_p (CDI_DOMINATORS, bb, exit)
139 && !dominated_by_p (CDI_DOMINATORS, entry, exit)); 125 && !dominated_by_p (CDI_DOMINATORS, entry, exit));
140 } 126 }
141 127
238 224
239 static inline basic_block 225 static inline basic_block
240 if_region_get_condition_block (ifsese if_region) 226 if_region_get_condition_block (ifsese if_region)
241 { 227 {
242 return if_region_entry (if_region)->dest; 228 return if_region_entry (if_region)->dest;
243 }
244
245 /* Free and compute again all the dominators information. */
246
247 static inline void
248 recompute_all_dominators (void)
249 {
250 mark_irreducible_loops ();
251 free_dominance_info (CDI_DOMINATORS);
252 calculate_dominance_info (CDI_DOMINATORS);
253
254 free_dominance_info (CDI_POST_DOMINATORS);
255 calculate_dominance_info (CDI_POST_DOMINATORS);
256 } 229 }
257 230
258 typedef std::pair <gimple *, tree> scalar_use; 231 typedef std::pair <gimple *, tree> scalar_use;
259 232
260 typedef struct gimple_poly_bb 233 typedef struct gimple_poly_bb