Andrew MacLeod wrote:
* Quite a lot of target interfaces would be used by the front ends
specifically for defining macros for building target libraries only; see
the "probably predefine macros if -fbuilding-libgcc in most cases"
list on
that wiki page. (Thus, given a clean separation of target-side and
host-side configuration, c-cppbuiltin.c is inevitably going to use a lot
of target macros / hooks.)
If thats where most of it lies, maybe there is some way to "push" some
of that activity into the backend?... I'll investigate c-cppbuiltin.c
at some point when I get some time. "Heavy" consumers like that would
show up after the initial conversion stages and we can consider how to
improve it.
When looking at CPP, please don't forget that also gfortran uses CPP
(libcpp).
(Currently, gfortran does not provide all target macro definitions as
gcc/config is too C/C++ centric; the idea was to move to hooks and then
to change the definitions into a generic and C/C++ only part - such that
the generic part can be also used for Fortran. See PR42954.)
Tobias