1 Sep 2003 11:00
Cleanup C frontend function deferring
Jan Hubicka <jh <at> suse.cz>
2003-09-01 09:00:00 GMT
2003-09-01 09:00:00 GMT
Hi, this patch removes function deffering mechanizm from C frontend and moves it to cgraph code only. The cgraph code is also updated to deal with non-unit-at-a-time compilation. This avoids code duplication in between the frontend and cgraphunit and moves all the rather complicated decisions about what to compile when into one place (in fact it has been surprisingly dificult to get it "right" so we pass all the checks in the testsuite). I would like to update the other frontends the same way gradually even when it won't be easy at all for C++, but the code duplication in the compilation driving logic is unforutnate. I also implemented incremental inlining decision heuristics sharing infrastructure with current unit-at-a-time inlining heuristics code that seems to be superrior to the current one in tree-inline.c, but I guess this should not go in before all frontends are moved to cgraph code as we don't want to have three different heuristics to tune at once, so this won't happen before 3.3 is out. Honza Sun Aug 31 22:00:39 CEST 2003 Jan Hubicka <jh <at> suse.cz> * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. * c-decl.c (finish_function): Kill arguments, always use cgraph path. * c-objc-common.c: Kill include of gt-c-objc-common.h (expand_deferred_fns, deffer_fn): Kill function. (deferred_fns): Kill variable. (finish_cdtor): Update finish_function call. (c_objc_common_finish_file): Always call cgraph code. * c-parse.c: Regenerate.(Continue reading)
RSS Feed