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)
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,
233 bool *args_modified =
NULL);
238 void get_surviving_params (
vec<bool> *surviving_params);
240 void get_updated_indices (
vec<int> *new_indices);
243 int get_original_index (
int newidx);
331 bool ignore_default_def);
375 unsigned unit_offset);
Definition genmatch.cc:1506
Definition ipa-param-manipulation.h:211
bool first_param_intact_p()
Definition ipa-param-manipulation.cc:482
bool m_skip_return
Definition ipa-param-manipulation.h:257
int get_max_base_index()
Definition ipa-param-manipulation.cc:402
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:447
tree build_new_function_type(tree old_type, bool type_is_original_p, bool *args_modified=NULL)
Definition ipa-param-manipulation.cc:506
ipa_param_adjustments()
Definition ipa-param-manipulation.h:261
vec< ipa_adjusted_param, va_gc > * m_adj_params
Definition ipa-param-manipulation.h:249
void get_surviving_params(vec< bool > *surviving_params)
Definition ipa-param-manipulation.cc:424
void dump(FILE *f)
Definition ipa-param-manipulation.cc:1054
static bool type_attribute_allowed_p(tree)
Definition ipa-param-manipulation.cc:289
int get_original_index(int newidx)
Definition ipa-param-manipulation.cc:470
void debug()
Definition ipa-param-manipulation.cc:1065
int m_always_copy_start
Definition ipa-param-manipulation.h:255
gcall * modify_call(cgraph_edge *cs, bool update_references, hash_set< tree > *killed_ssas)
Definition ipa-param-manipulation.cc:683
tree adjust_decl(tree orig_decl)
Definition ipa-param-manipulation.cc:549
bool method2func_p(tree orig_type)
Definition ipa-param-manipulation.cc:493
void init(vec< tree > *cur_params)
unsigned get_base_index(ipa_adjusted_param *apm)
void remap_with_debug_expressions(tree *t)
Definition ipa-param-manipulation.cc:1322
bool perform_cfun_body_modifications()
Definition ipa-param-manipulation.cc:2617
ipa_param_body_replacement * get_expr_replacement(tree expr, bool ignore_default_def)
Definition ipa-param-manipulation.cc:1875
bool modify_cfun_body()
Definition ipa-param-manipulation.cc:2452
ipa_param_body_replacement * lookup_first_base_replacement(tree base)
Definition ipa-param-manipulation.cc:1813
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:1709
auto_vec< tree, 16 > m_new_types
Definition ipa-param-manipulation.h:408
hash_map< tree, tree > m_dead_ssa_debug_equiv
Definition ipa-param-manipulation.h:364
bool modify_assignment(gimple *stmt, gimple_seq *extra_stmts)
Definition ipa-param-manipulation.cc:2022
auto_vec< gimple *, 8 > m_split_agg_csts_inits
Definition ipa-param-manipulation.h:420
auto_vec< tree, 16 > m_oparms
Definition ipa-param-manipulation.h:398
tree get_new_param_chain()
Definition ipa-param-manipulation.cc:1726
ipa_param_body_replacement * lookup_replacement_1(tree base, unsigned unit_offset)
Definition ipa-param-manipulation.cc:1786
tree carry_over_param(tree t)
Definition ipa-param-manipulation.cc:1135
bool modify_gimple_stmt(gimple **stmt, gimple_seq *extra_stmts, gimple *orig_stmt)
Definition ipa-param-manipulation.cc:2400
bool modify_expression(tree *expr_p, bool convert, gimple_seq *=nullptr)
Definition ipa-param-manipulation.cc:1964
bool modify_call_stmt(gcall **stmt_p, gimple *orig_stmt)
Definition ipa-param-manipulation.cc:2207
void common_initialization(tree old_fndecl, tree *vars, vec< ipa_replace_map *, va_gc > *tree_map)
Definition ipa-param-manipulation.cc:1440
auto_vec< tree > m_removed_decls
Definition ipa-param-manipulation.h:427
bool m_method2func
Definition ipa-param-manipulation.h:436
vec< ipa_adjusted_param, va_gc > * m_adj_params
Definition ipa-param-manipulation.h:350
void mark_dead_statements(tree dead_param, vec< tree > *debugstack)
Definition ipa-param-manipulation.cc:1174
hash_set< tree > m_dead_ssas
Definition ipa-param-manipulation.h:361
auto_vec< ipa_param_body_replacement, 16 > m_replacements
Definition ipa-param-manipulation.h:414
void append_init_stmts(basic_block bb)
Definition ipa-param-manipulation.cc:2631
bool m_sorted_replacements_p
Definition ipa-param-manipulation.h:440
void mark_clobbers_dead(tree dead_param)
Definition ipa-param-manipulation.cc:1270
auto_vec< tree, 16 > m_new_decls
Definition ipa-param-manipulation.h:403
hash_set< gimple * > m_dead_stmts
Definition ipa-param-manipulation.h:360
bool prepare_debug_expressions(tree dead_ssa)
Definition ipa-param-manipulation.cc:1352
tree m_fndecl
Definition ipa-param-manipulation.h:390
void sort_replacements()
Definition ipa-param-manipulation.cc:1122
void register_replacement(tree base, unsigned unit_offset, tree replacement)
Definition ipa-param-manipulation.cc:1073
auto_vec< tree, 16 > m_reset_debug_decls
Definition ipa-param-manipulation.h:356
tree get_replacement_ssa_base(tree old_decl)
Definition ipa-param-manipulation.cc:1896
void reset_debug_stmts()
Definition ipa-param-manipulation.cc:2520
struct copy_body_data * m_id
Definition ipa-param-manipulation.h:394
tree lookup_replacement(tree base, unsigned unit_offset)
Definition ipa-param-manipulation.cc:1839
tree replace_removed_params_ssa_names(tree old_name, gimple *stmt)
Definition ipa-param-manipulation.cc:1922
tree get_ddef_if_exists_and_is_used(tree decl)
Definition ipa-param-manipulation.cc:1158
ipa_param_adjustments * m_adjustments
Definition ipa-param-manipulation.h:351
hash_map< tree, unsigned > m_removed_map
Definition ipa-param-manipulation.h:431
void modify_formal_parameters()
Definition ipa-param-manipulation.cc:1748
hash_map< gimple *, tree > m_dead_stmt_debug_equiv
Definition ipa-param-manipulation.h:367
bool debug
Definition collect-utils.cc:34
struct basic_block_def * basic_block
Definition coretypes.h:372
gimple * gimple_seq
Definition coretypes.h:100
#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:141
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:175
void push_function_arg_decls(vec< tree > *args, tree fndecl)
Definition ipa-param-manipulation.cc:151
#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:192
void ipa_edge_modifications_finalize()
Definition ipa-param-manipulation.cc:2642
void ipa_release_ssas_in_hash(hash_set< tree > *killed_ssas)
Definition ipa-param-manipulation.cc:2668
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:272
tree repl
Definition ipa-param-manipulation.h:276
tree base
Definition ipa-param-manipulation.h:274
tree dummy
Definition ipa-param-manipulation.h:280
unsigned unit_offset
Definition ipa-param-manipulation.h:282
#define NULL
Definition system.h:50