On 06/25/2015 07:21 AM, Andrew MacLeod wrote:
This patch finally removes tm.h as a compile dependency for function.h
struct 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