Help needed: banishing RTL from the front ends

Steven Bosscher stevenb.gcc@gmail.com
Tue May 25 08:28:00 GMT 2010


Hi,

I would like to banish bits and pieces of the compiler from ever
appearing again in places where they do not belong. That would be step
one towards modularization: impose boundaries of some kind. As it is,
we can't really make separate modules of parts of gcc yet, but at
least I would like to impose some kind of rules to avoid
re-introducing the dependencies that I'm trying to break.

The first thing I'd like to do now, is banish RTL from the front end.
The plan I had for this was:

1) Group front end objects in Makefile.in under e.g. ALL_HOST_FRONTEND_OBJS
2) Add a new build rule that adds an extra define -DIN_GCC_FRONTEND
3) Conditionally poison symbols in system.h

For the last step, that would be e.g.:
#ifdef IN_GCC_FRONTEND
#pragma GCC poison GCC_RTL_H GCC_REGS_H ...
#endif

Unfortunately, my Makefile-fu is insufficient to do step 2. There is
an implicit rule ".c.o:" that triggers no matter what I try, and I
don't want to add explicit $(COMPILER) rules for all the front end
objects.

So this is a call for help. First, is the plan I had a good plan? If
so, can someone give me a little hint/help implementing that? And if
the plan isn't good, what would be other ways to achieve the same
effect?

Thanks,

Ciao!
Steven



More information about the Gcc mailing list