GCC Middle and Back End API Reference
|
#include <tree-inline.h>
Data Fields | |
tree | src_fn |
tree | dst_fn |
struct cgraph_node * | src_node |
struct cgraph_node * | dst_node |
struct function * | src_cfun |
tree | retvar |
struct pointer_map_t * | decl_map |
tree(* | copy_decl )(tree, struct copy_body_data *) |
tree | block |
gimple | gimple_call |
int | eh_lp_nr |
struct pointer_map_t * | eh_map |
enum copy_body_cge_which | transform_call_graph_edges |
bool | transform_new_cfg |
bool | transform_return_to_modify |
bool | transform_parameter |
bool | regimplify |
bool | do_not_unshare |
int | remapping_type_depth |
void(* | transform_lang_insert_block )(tree) |
struct pointer_set_t * | statements_to_fold |
basic_block | entry_bb |
bitmap | blocks_to_copy |
vec< gimple > | debug_stmts |
struct pointer_map_t * | debug_map |
bool | remap_var_for_cilk |
Data required for function body duplication.
tree copy_body_data::block |
Current BLOCK.
Referenced by init_inline_once().
bitmap copy_body_data::blocks_to_copy |
For partial function versioning, bitmap of bbs to be copied, otherwise NULL.
Referenced by remap_decl_1().
tree(* copy_body_data::copy_decl)(tree, struct copy_body_data *) |
Create a new decl to replace DECL in the destination function.
struct pointer_map_t* copy_body_data::debug_map |
A map from local declarations in the inlined function to equivalents in the function into which it is being inlined, where the originals have been mapped to a value rather than to a variable.
struct pointer_map_t* copy_body_data::decl_map |
The map from local declarations in the inlined function to equivalents in the function into which it is being inlined.
Referenced by remap_ssa_name().
bool copy_body_data::do_not_unshare |
True if trees should not be unshared.
tree copy_body_data::dst_fn |
FUNCTION_DECL for function being inlined into, or in general the destination function receiving the new trees.
struct cgraph_node* copy_body_data::dst_node |
Callgraph node of the destination function.
Referenced by copy_gimple_seq_and_replace_locals(), and replace_locals_op().
int copy_body_data::eh_lp_nr |
Exception landing pad the inlined call lies in.
struct pointer_map_t* copy_body_data::eh_map |
Maps region and landing pad structures from the function being copied to duplicates created within the function we inline into.
basic_block copy_body_data::entry_bb |
Entry basic block to currently copied body.
Referenced by remap_ssa_name().
gimple copy_body_data::gimple_call |
GIMPLE_CALL if va arg parameter packs should be expanded or NULL is not.
bool copy_body_data::regimplify |
True if this statement will need to be regimplified.
bool copy_body_data::remap_var_for_cilk |
Cilk keywords currently need to replace some variables that ordinary nested functions do not.
int copy_body_data::remapping_type_depth |
> 0 if we are remapping a type currently.
tree copy_body_data::retvar |
The VAR_DECL for the return value.
struct function* copy_body_data::src_cfun |
struct function for function being inlined. Usually this is the same as DECL_STRUCT_FUNCTION (src_fn), but can be different if saved_cfg and saved_eh are in use.
tree copy_body_data::src_fn |
FUNCTION_DECL for function being inlined, or in general the source function providing the original trees.
Referenced by remap_type().
struct cgraph_node* copy_body_data::src_node |
Callgraph node of the source function.
struct pointer_set_t* copy_body_data::statements_to_fold |
Statements that might be possibly folded.
enum copy_body_cge_which copy_body_data::transform_call_graph_edges |
We use the same mechanism do all sorts of different things. Rather than enumerating the different cases, we categorize the behavior in the various situations.
What to do with call graph edges.
Referenced by replace_locals_op().
void(* copy_body_data::transform_lang_insert_block)(tree) |
A function to be called when duplicating BLOCK nodes.
bool copy_body_data::transform_new_cfg |
True if a new CFG should be created. False for inlining, true for everything else.
bool copy_body_data::transform_parameter |
True if the parameters of the source function are transformed. Only true for inlining.
bool copy_body_data::transform_return_to_modify |
True if RETURN_EXPRs should be transformed to just the contained MODIFY_EXPR. The branch semantics of the return will be handled by manipulating the CFG rather than a statement.