118#ifndef IPA_PARAM_MANIPULATION_H
119#define IPA_PARAM_MANIPULATION_H
134#define IPA_PARAM_MAX_INDEX_BITS 16
220 int always_copy_start,
bool skip_return)
221 : m_adj_params (new_params), m_always_copy_start (always_copy_start),
222 m_skip_return (skip_return)
228 hash_set <tree> *killed_ssas);
230 bool first_param_intact_p ();
232 tree build_new_function_type (
tree old_type,
bool type_is_original_p);
237 void get_surviving_params (
vec<bool> *surviving_params);
239 void get_updated_indices (
vec<int> *new_indices);
242 int get_original_index (
int newidx);
258 static bool type_attribute_allowed_p (
tree);
263 int get_max_base_index ();
264 bool method2func_p (
tree orig_type);
330 bool ignore_default_def);
374 unsigned unit_offset);
Definition genmatch.cc:845
Definition ipa-param-manipulation.h:211
bool first_param_intact_p()
Definition ipa-param-manipulation.cc:471
bool m_skip_return
Definition ipa-param-manipulation.h:256
int get_max_base_index()
Definition ipa-param-manipulation.cc:391
ipa_param_adjustments(vec< ipa_adjusted_param, va_gc > *new_params, int always_copy_start, bool skip_return)
Definition ipa-param-manipulation.h:219
void get_updated_indices(vec< int > *new_indices)
Definition ipa-param-manipulation.cc:436
ipa_param_adjustments()
Definition ipa-param-manipulation.h:260
vec< ipa_adjusted_param, va_gc > * m_adj_params
Definition ipa-param-manipulation.h:248
void get_surviving_params(vec< bool > *surviving_params)
Definition ipa-param-manipulation.cc:413
void dump(FILE *f)
Definition ipa-param-manipulation.cc:1025
tree build_new_function_type(tree old_type, bool type_is_original_p)
Definition ipa-param-manipulation.cc:494
static bool type_attribute_allowed_p(tree)
Definition ipa-param-manipulation.cc:288
int get_original_index(int newidx)
Definition ipa-param-manipulation.cc:459
void debug()
Definition ipa-param-manipulation.cc:1036
int m_always_copy_start
Definition ipa-param-manipulation.h:254
gcall * modify_call(cgraph_edge *cs, bool update_references, hash_set< tree > *killed_ssas)
Definition ipa-param-manipulation.cc:654
tree adjust_decl(tree orig_decl)
Definition ipa-param-manipulation.cc:535
bool method2func_p(tree orig_type)
Definition ipa-param-manipulation.cc:482
void init(vec< tree > *cur_params)
Definition ipa-param-manipulation.h:296
unsigned get_base_index(ipa_adjusted_param *apm)
void remap_with_debug_expressions(tree *t)
Definition ipa-param-manipulation.cc:1293
bool perform_cfun_body_modifications()
Definition ipa-param-manipulation.cc:2588
ipa_param_body_replacement * get_expr_replacement(tree expr, bool ignore_default_def)
Definition ipa-param-manipulation.cc:1846
bool modify_cfun_body()
Definition ipa-param-manipulation.cc:2423
ipa_param_body_replacement * lookup_first_base_replacement(tree base)
Definition ipa-param-manipulation.cc:1784
ipa_param_body_adjustments(ipa_param_adjustments *adjustments, tree fndecl, tree old_fndecl, struct copy_body_data *id, tree *vars, vec< ipa_replace_map *, va_gc > *tree_map)
Definition ipa-param-manipulation.cc:1680
auto_vec< tree, 16 > m_new_types
Definition ipa-param-manipulation.h:407
hash_map< tree, tree > m_dead_ssa_debug_equiv
Definition ipa-param-manipulation.h:363
bool modify_assignment(gimple *stmt, gimple_seq *extra_stmts)
Definition ipa-param-manipulation.cc:1993
auto_vec< gimple *, 8 > m_split_agg_csts_inits
Definition ipa-param-manipulation.h:419
auto_vec< tree, 16 > m_oparms
Definition ipa-param-manipulation.h:397
tree get_new_param_chain()
Definition ipa-param-manipulation.cc:1697
ipa_param_body_replacement * lookup_replacement_1(tree base, unsigned unit_offset)
Definition ipa-param-manipulation.cc:1757
tree carry_over_param(tree t)
Definition ipa-param-manipulation.cc:1106
bool modify_gimple_stmt(gimple **stmt, gimple_seq *extra_stmts, gimple *orig_stmt)
Definition ipa-param-manipulation.cc:2371
bool modify_expression(tree *expr_p, bool convert, gimple_seq *=nullptr)
Definition ipa-param-manipulation.cc:1935
bool modify_call_stmt(gcall **stmt_p, gimple *orig_stmt)
Definition ipa-param-manipulation.cc:2178
void common_initialization(tree old_fndecl, tree *vars, vec< ipa_replace_map *, va_gc > *tree_map)
Definition ipa-param-manipulation.cc:1411
auto_vec< tree > m_removed_decls
Definition ipa-param-manipulation.h:426
bool m_method2func
Definition ipa-param-manipulation.h:435
vec< ipa_adjusted_param, va_gc > * m_adj_params
Definition ipa-param-manipulation.h:349
void mark_dead_statements(tree dead_param, vec< tree > *debugstack)
Definition ipa-param-manipulation.cc:1145
hash_set< tree > m_dead_ssas
Definition ipa-param-manipulation.h:360
auto_vec< ipa_param_body_replacement, 16 > m_replacements
Definition ipa-param-manipulation.h:413
void append_init_stmts(basic_block bb)
Definition ipa-param-manipulation.cc:2602
bool m_sorted_replacements_p
Definition ipa-param-manipulation.h:439
void mark_clobbers_dead(tree dead_param)
Definition ipa-param-manipulation.cc:1241
auto_vec< tree, 16 > m_new_decls
Definition ipa-param-manipulation.h:402
hash_set< gimple * > m_dead_stmts
Definition ipa-param-manipulation.h:359
bool prepare_debug_expressions(tree dead_ssa)
Definition ipa-param-manipulation.cc:1323
tree m_fndecl
Definition ipa-param-manipulation.h:389
void sort_replacements()
Definition ipa-param-manipulation.cc:1093
void register_replacement(tree base, unsigned unit_offset, tree replacement)
Definition ipa-param-manipulation.cc:1044
auto_vec< tree, 16 > m_reset_debug_decls
Definition ipa-param-manipulation.h:355
tree get_replacement_ssa_base(tree old_decl)
Definition ipa-param-manipulation.cc:1867
void reset_debug_stmts()
Definition ipa-param-manipulation.cc:2491
struct copy_body_data * m_id
Definition ipa-param-manipulation.h:393
tree lookup_replacement(tree base, unsigned unit_offset)
Definition ipa-param-manipulation.cc:1810
tree replace_removed_params_ssa_names(tree old_name, gimple *stmt)
Definition ipa-param-manipulation.cc:1893
tree get_ddef_if_exists_and_is_used(tree decl)
Definition ipa-param-manipulation.cc:1129
ipa_param_adjustments * m_adjustments
Definition ipa-param-manipulation.h:350
hash_map< tree, unsigned > m_removed_map
Definition ipa-param-manipulation.h:430
void modify_formal_parameters()
Definition ipa-param-manipulation.cc:1719
hash_map< gimple *, tree > m_dead_stmt_debug_equiv
Definition ipa-param-manipulation.h:366
bool debug
Definition collect-utils.cc:34
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
ipa_param_name_prefix_indices
Definition ipa-param-manipulation.h:124
@ IPA_PARAM_PREFIX_ISRA
Definition ipa-param-manipulation.h:126
@ IPA_PARAM_PREFIX_COUNT
Definition ipa-param-manipulation.h:129
@ IPA_PARAM_PREFIX_SYNTH
Definition ipa-param-manipulation.h:125
@ IPA_PARAM_PREFIX_SIMD
Definition ipa-param-manipulation.h:127
@ IPA_PARAM_PREFIX_MASK
Definition ipa-param-manipulation.h:128
void ipa_verify_edge_has_no_modifications(cgraph_edge *cs)
Definition ipa-param-manipulation.cc:140
ipa_parm_op
Definition ipa-param-manipulation.h:140
@ IPA_PARAM_OP_COPY
Definition ipa-param-manipulation.h:145
@ IPA_PARAM_OP_UNDEFINED
Definition ipa-param-manipulation.h:142
@ IPA_PARAM_OP_NEW
Definition ipa-param-manipulation.h:149
@ IPA_PARAM_OP_SPLIT
Definition ipa-param-manipulation.h:152
void push_function_arg_types(vec< tree > *types, tree fntype)
Definition ipa-param-manipulation.cc:174
void push_function_arg_decls(vec< tree > *args, tree fndecl)
Definition ipa-param-manipulation.cc:150
#define IPA_PARAM_MAX_INDEX_BITS
Definition ipa-param-manipulation.h:134
void ipa_dump_adjusted_parameters(FILE *f, vec< ipa_adjusted_param, va_gc > *adj_params)
Definition ipa-param-manipulation.cc:191
void ipa_edge_modifications_finalize()
Definition ipa-param-manipulation.cc:2613
void ipa_release_ssas_in_hash(hash_set< tree > *killed_ssas)
Definition ipa-param-manipulation.cc:2639
Definition basic-block.h:117
Definition tree-inline.h:43
Definition genautomata.cc:499
Definition ipa-param-manipulation.h:159
unsigned user_flag
Definition ipa-param-manipulation.h:199
unsigned param_prefix_index
Definition ipa-param-manipulation.h:192
unsigned unit_offset
Definition ipa-param-manipulation.h:171
enum ipa_parm_op op
Definition ipa-param-manipulation.h:184
tree type
Definition ipa-param-manipulation.h:162
unsigned base_index
Definition ipa-param-manipulation.h:177
unsigned prev_clone_index
Definition ipa-param-manipulation.h:181
tree alias_ptr_type
Definition ipa-param-manipulation.h:166
unsigned prev_clone_adjustment
Definition ipa-param-manipulation.h:188
unsigned reverse
Definition ipa-param-manipulation.h:196
Definition ipa-param-manipulation.h:271
tree repl
Definition ipa-param-manipulation.h:275
tree base
Definition ipa-param-manipulation.h:273
tree dummy
Definition ipa-param-manipulation.h:279
unsigned unit_offset
Definition ipa-param-manipulation.h:281