Mercurial > hg > CbC > CbC_gcc
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 |