1 /* Data required for function inlining. */
2 typedef struct inline_data
4 /* FUNCTION_DECL for function being inlined. */
6 /* FUNCTION_DECL for function being inlined into. */
8 /* struct function for function being inlined. Usually this is the same
9 as DECL_STRUCT_FUNCTION (callee), but can be different if saved_cfg
10 and saved_eh are in use. */
11 struct function
*callee_cfun
;
12 /* The VAR_DECL for the return value. */
14 /* The map from local declarations in the inlined function to
15 equivalents in the function into which it is being inlined. */
17 /* We use the same mechanism to build clones that we do to perform
18 inlining. However, there are a few places where we need to
19 distinguish between those two situations. This flag is true if
20 we are cloning, rather than inlining. */
22 /* Similarly for saving function body. */
24 /* Versioning function is slightly different from inlining. */
26 /* Copy basic blocks in the same method only. */
28 /* Callgraph node of function we are inlining into. */
29 struct cgraph_node
*node
;
30 /* Callgraph node of currently inlined function. */
31 struct cgraph_node
*current_node
;
35 /* Exception region the inlined call lie in. */
37 /* Take region number in the function being copied, add this value and
38 get eh region number of the duplicate in the function we inline into. */
43 basic_block
copy_bb (inline_data
*, basic_block
, int, int);
44 void copy_edges_for_bb (basic_block
, int);