On 06/25/2015 07:21 AM, Andrew MacLeod wrote:
This patch finally removes tm.h as a compile dependency for function.hstruct incoming_args was declared in function.h, and had an instance of CUMULATIVE_ARGS from tm.h The only consumer of incoming_args is rtl-data which is now located in emit-rtl.h, so I moved the decl to there. The remaining dependencies were pointers to CUMULATIVE_ARGS being used as parameters to 2 functions pass_by_reference and reference_callee_copied. I moved these 2 functions to calls.[ch]. The vast majority of consumers are in the backend, and already include/need calls.h, so it seemed a sensible location. This allows tm.h and hard-reg-set.h to be removed from cfgloop.h. On my flattened branch, compiler back-end files requiring hard-reg-set.h dropped from 270ish to 98, and it ought to have a decent impact on the front end files when I get to them. Bootstraps on x86_64-unknown-linux-gnu with no new regressions. Also builds stage 1 on all the targets in config-list.mk. OK for trunk? Andrew 2-func-tm.patch * function.h (struct incoming_args): Move struct. (pass_by_reference, reference_callee_copied): Remove prototypes. * emit-rtl.h (struct incoming_args): Relocate struct here. * calls.h (pass_by_reference, reference_callee_copied): Relocate prototypes here. * function.c (pass_by_reference, reference_callee_copied): Move. * calls.c (pass_by_reference, reference_callee_copied): Relocate here. * cfgloop.h: Don't include tm.h or hard-reg-set.h. * ipa-chkp.c: Include calls.h. * ada/gcc-interface/misc.c: Include calls.h not function.h. * c-family/cilk.c: Move calls.h after tm.h in the include chain.
OK. jeff
