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

Reply via email to