20#ifndef GCC_CFGLOOPMANIP_H
21#define GCC_CFGLOOPMANIP_H
29#define DLTHE_FLAG_UPDATE_FREQ 1
31#define DLTHE_RECORD_COPY_NUMBER 2
33#define DLTHE_FLAG_COMPLETTE_PEEL 4
35#define DLTHE_FLAG_FLAT_PROFILE 8
37#define DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR 16
53 bitmap loop_closed_ssa_invalidated,
54 bool *irred_invalidated);
bool can_duplicate_loop_p(const class loop *loop)
Definition cfgloopmanip.cc:1199
bool duplicate_loop_body_to_header_edge(class loop *loop, edge e, unsigned int ndupl, sbitmap wont_exit, edge orig, vec< edge > *to_remove, int flags)
Definition cfgloopmanip.cc:1223
void scale_loop_frequencies(class loop *loop, profile_probability p)
Definition cfgloopmanip.cc:503
class loop * create_empty_loop_on_edge(edge entry_edge, tree initial_value, tree stride, tree upper_bound, tree iv, tree *iv_before, tree *iv_after, class loop *outer)
Definition cfgloopmanip.cc:912
edge update_loop_exit_probability_scale_dom_bbs(class loop *loop, edge exit_edge, profile_count desired_count)
Definition cfgloopmanip.cc:565
void duplicate_subloops(class loop *loop, class loop *target)
Definition cfgloopmanip.cc:1152
void create_preheaders(int flags)
Definition cfgloopmanip.cc:1784
void copy_loop_info(class loop *loop, class loop *target)
Definition cfgloopmanip.cc:1101
bool remove_path(edge e, bool *irred_invalidated, bitmap loop_closed_ssa_invalidated)
Definition cfgloopmanip.cc:310
void add_loop(class loop *loop, class loop *outer)
Definition cfgloopmanip.cc:451
bool mfb_keep_just(edge e, void *data)
Definition cfgloopmanip.cc:1647
void scale_loop_profile(class loop *loop, profile_probability p, gcov_type iteration_bound)
Definition cfgloopmanip.cc:698
void scale_dominated_blocks_in_loop(class loop *loop, basic_block bb, profile_count num, profile_count den)
Definition cfgloopmanip.cc:516
void force_single_succ_latches(void)
Definition cfgloopmanip.cc:1797
void unloop(class loop *loop, bool *irred_invalidated, bitmap loop_closed_ssa_invalidated)
Definition cfgloopmanip.cc:1006
void place_new_loop(struct function *fn, class loop *loop)
Definition cfgloopmanip.cc:440
basic_block create_preheader(class loop *loop, int flags)
Definition cfgloopmanip.cc:1676
class loop * duplicate_loop(class loop *loop, class loop *target, class loop *after)
Definition cfgloopmanip.cc:1131
edge create_empty_if_region_on_edge(edge entry_edge, tree condition)
Definition cfgloopmanip.cc:833
class loop * loop_version(class loop *loop, void *cond_expr, basic_block *condition_bb, profile_probability then_prob, profile_probability else_prob, profile_probability then_scale, profile_probability else_scale, bool place_after)
Definition cfgloopmanip.cc:1888
void adjust_loop_info_after_peeling(class loop *loop, int npeel, bool precise)
Definition tree-ssa-loop-ivcanon.cc:1062
@ CP_FALLTHRU_PREHEADERS
Definition cfgloopmanip.h:26
@ CP_SIMPLE_PREHEADERS
Definition cfgloopmanip.h:25
void update_exit_probability_after_unrolling(class loop *loop, edge new_exit)
void unloop_loops(vec< class loop * > &loops_to_unloop, vec< int > &loops_to_unloop_nunroll, vec< edge > &edges_to_remove, bitmap loop_closed_ssa_invalidated, bool *irred_invalidated)
Definition tree-ssa-loop-ivcanon.cc:681
int num
Definition cfgloop.h:124
Definition profile-count.h:149
struct basic_block_def * basic_block
Definition coretypes.h:351
class edge_def * edge
Definition coretypes.h:348
struct simple_bitmap_def * sbitmap
Definition coretypes.h:54
class bitmap_head * bitmap
Definition coretypes.h:51
int64_t gcov_type
Definition coretypes.h:46
union tree_node * tree
Definition coretypes.h:97
Definition function.h:249
Definition profile-count.h:789
static profile_count uninitialized()
Definition profile-count.h:873
#define NULL
Definition system.h:58