Hello! > as discussed with Honza on many occasions, all users of > cgraph_get_create_node really want cgraph_get_create_real_symbol_node, > i.e. they are not interested in inline nodes and should get a > standalone node instead. So this patch changes cgraph_get_create_node > to do what cgraph_get_create_real_symbol_node currently does and > removes the latter altogether. > > I had to change a call to cgraph_get_create_node to cgraph_get_node in > lto-streamer-in.c so that it does not make the node it operates on a > clone of another one because this made ipa_pta_execute abort on assert > after calling cgraph_get_body (visionary points to Richi for putting > the assert there). > > The patch successfully passed bootstrap and testing ("all" languages + > Ada) and LTO-bootstrap (C and C++ only) on x86_64-linux. > > 2013-11-12 Martin Jambor <mjam...@suse.cz> > > * cgraph.c (cgraph_get_create_node): Do what > cgraph_get_create_real_symbol_node used to do. > (cgraph_get_create_real_symbol_node): Removed. Changed all users to > call cgraph_get_create_node. > * cgraph.h (cgraph_get_create_real_symbol_node): Removed. > * lto-streamer-in.c (input_function): Call cgraph_get_node instead of > cgraph_get_create_node. Assert we get a node.
This patch breaks lto-profiledbootstrap on x86_64-pc-linux-gnu with: In function ‘colorize_start’: lto1: internal compiler error: in input_function, at lto-streamer-in.c:919 0xa585c1 input_function /home/uros/gcc-svn/trunk/gcc/lto-streamer-in.c:919 0xa585c1 lto_read_body /home/uros/gcc-svn/trunk/gcc/lto-streamer-in.c:1067 0xa585c1 lto_input_function_body(lto_file_decl_data*, cgraph_node*, char const*) /home/uros/gcc-svn/trunk/gcc/lto-streamer-in.c:1109 0x66eb2c cgraph_get_body(cgraph_node*) /home/uros/gcc-svn/trunk/gcc/cgraph.c:2967 0x999339 ipa_merge_profiles(cgraph_node*, cgraph_node*) /home/uros/gcc-svn/trunk/gcc/ipa-utils.c:699 0x5979a6 lto_cgraph_replace_node /home/uros/gcc-svn/trunk/gcc/lto/lto-symtab.c:82 0x598079 lto_symtab_merge_symbols_1 /home/uros/gcc-svn/trunk/gcc/lto/lto-symtab.c:561 0x598079 lto_symtab_merge_symbols() /home/uros/gcc-svn/trunk/gcc/lto/lto-symtab.c:589 0x586fad read_cgraph_and_symbols /home/uros/gcc-svn/trunk/gcc/lto/lto.c:2945 0x586fad lto_main() /home/uros/gcc-svn/trunk/gcc/lto/lto.c:3254 You will need patches from Teresa [1],[2] to get up to there in the lto-profiledbootstrap. [1] http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01455.html [2] http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01453.html Uros.