This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, > + stmt2 = build2 (GIMPLE_MODIFY_STMT, optype, tmp1, fold_convert (optype, build_addr (direct_call->decl, current_function_decl))); > > Please watch the length of lines. One of my favorite asepcts of GNU > coding standard ;) > + stmt3 = build3 (COND_EXPR, void_type_node, > + build2 (NE_EXPR, boolean_type_node, tmp1, tmpv), > + build1 (GOTO_EXPR, void_type_node, label_decl2), > + build1 (GOTO_EXPR, void_type_node, label_decl1)); > > This should be probably indented in the way so the later builds appear > after the "(" of toplevel build. > + /* Fix eh edges */ > + region = lookup_stmt_eh_region (stmt1); > + if (region >= 0 && !TREE_NOTHROW (new_call)) > > tree_could_throw (stmt1) is probably canonical way to test whether > statement needs EH. > + /* Find calls inside STMT for that we want to measure histograms for > + indirect/virtual call optimization. */ > + static void > + tree_indirect_call_to_profile (tree stmt, histogram_values *values) > > There should be vertical space in between comment and function (I know > it is not in a lot > of my code, I will try to fix it gradually). ok. corrected. > + else > + c_node->needed = true; > > You can't just set c_node->needed, you can use cgraph_mark_needed_node (c_node) > if you really mean to force it to be output into file. > But you should not need this at first place, because the function you get called > at is being output to final file anyway. Why have you added this? It's not needed now. Removed. > Index: gcc/libgcov.c > =================================================================== > *** gcc/libgcov.c (revision 119879) > --- gcc/libgcov.c (working copy) > *************** __gcov_one_value_profiler (gcov_type *co > *** 753,758 **** > --- 753,768 ---- > } > #endif > > + #ifdef L_gcov_indirect_call_profiler > + /* Tries to determine the most common value among its inputs. */ > + void > + __gcov_indirect_call_profiler (gcov_type* counter, gcov_type value, void* cur_func, void* callee_func) > + { > + if (cur_func == callee_func) > + __gcov_one_value_profiler (counter, value); > + } > > You want probably to get __gcov_one_value_profiler inlined here t that is > intentionally not done by the macro machinery. Probably > __gcov_one_value_profiler can be moved into static inline function body visible > for both. ok. > Otherwise the patch seems fine (I would however like to know why you fiddle > with needed flag first) THere are discussion about tree-prof.exp changes. > Please ensure before commiting that the tree-prof.exp your new one is based on > didn't change. Still same. Bootstraped and tested on i686-linux and x86_64-linux. OK? Tomas
Attachment:
indirect-call.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |