![]() ![]() +Common Report RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO) * The return type is needed to decide how many bytes the function pops.ĭiff -git a/gcc/common.opt b/gcc/common.opt Will set inhibit_defer_pop to that value. * We pass the old value of inhibit_defer_pop + 1 to emit_call_1, which + record_final_call (SYMBOL_REF_DECL (orgfun), UNKNOWN_LOCATION) 5343,6 +5346,9 emit_library_call_value_1 (int retval, rtx orgfun, rtx value, We will select one of the two chains after * We want to make two insn chains one for a sibling call, the otherįor a normal call. + record_final_call (fndecl, EXPR_LOCATION (exp)) Preferred_unit_stack_boundary = preferred_stack_boundary / BITS_PER_UNIT + if (!alloca_for_var & (flag_callgraph_info & CALLGRAPH_INFO_DYNAMIC_ALLOC)) + /* Dynamic allocations for variables are recorded during gimplification. Result = convert_memory_address (ptr_mode, result) = allocate_dynamic_stack_space (op0, 0, align, max_size, alloca_for_var) These variables are global since they areĭiff -git a/gcc/builtins.c b/gcc/builtins.c * This symbol needs to be defined for the front-end. * gcc-interface/misc.c (callgraph_info_file): Delete. (finalize): If callgraph_info_file is not null, finish it,Ĭlose it, and reset callgraph info state. (lang_dependent_init): Open and start file if (dump_final_callee_vcg, dump_final_node_vcg): New. (dump_final_indirect_call_node_vcg): New. If -fstack-usage, use print_decl_identifier for If -fcallgraph-info=su, print stack usage to cf. (callgraph_info_indirect_emitted): Likewise. (callgraph_info_file): New global variable. (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New. * print-tree.h (print_decl_identifier): Declare. * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL. * gimplify.c (gimplify_decl_expr): Record dynamically-allocated (record_final_call, record_dynamic_alloc): Declare. (struct stack_usage): Add callees and dallocs. * function.h (struct callee, struct dalloc): New. (record_final_call, record_dynamic_alloc): New. (rest_of_handle_thread_prologue_and_epilogue): Release callees (prepare_function_start): Call it otherwise. (allocate_struct_function): Call it for -fcallgraph-info. * function.c (allocate_stack_usage_info): New. (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol. * flag-types.h (enum callgraph_info_type): New type. * calls.c (expand_call): If -fcallgraph-info, record the call. * builtins.c (expand_builtin_alloca): Record allocation if * opts.c (common_handle_option): Handle it. * doc/invoke.texi (Debugging options): Document it. * common.opt (-fcallgraph-info): New option. I have NOT changed the file format,īecause existing tools such as gnatstack consume the current format. Switched to vecs from linked lists, for more compact edges and dynamicĪllocation annotations, and arranged for them to be released as soon as #Approximatrix simply fortran not responding Patch#Stack usage info and -fcallgraph-info=da dynamic allocation info.Ĭompared with the earlier version, this patch does not modify cgraph,Īnd instead adds the required information next to the stage usageįunction data structure, so we only hold one of those at at time. ![]() Nodes can be decorated with additional info: -fcallgraph-info=su adds Optimizations are done at the Tree level and RTL doesn't usuallyįiddle with calls, it's final in almost all cases. "final" is a bit of a misnomer as this is actually theĬallgraph at RTL expansion time, but since most high-level Viewer on it unmodified) and contains the "final" callgraph of the Unit, which is a valid VCG file (you can launch your favorite VCG The command line option -fcallgraph-info is added and makes theĬompiler generate another output file (xxx.ci) for each compilation To: gcc-patches +Cc: ebotcazou, rguenther, joseph ` (2 more replies) 0 siblings, 3 replies 116+ messages in threadįrom: Alexandre Oliva 5:30 UTC ( / raw) ![]() Introduce -fcallgraph-info option public inbox for help / color / mirror / Atom feed * introduce -fcallgraph-info option 5:30 Alexandre Oliva ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |