This is the mail archive of the
mailing list for the GCC project.
Re: zack's todo list
- To: Zack Weinberg <zackw at stanford dot edu>
- Subject: Re: zack's todo list
- From: Neil Booth <neilb at earthling dot net>
- Date: Mon, 13 Nov 2000 20:30:53 +0000
- Cc: gcc at gcc dot gnu dot org
- References: <20001113095606.K235@wolery.stanford.edu>
Zack Weinberg wrote:-
> This is a list of things I'd like to get done before 3.0. Most of
> them are performance related.
cpplib could do with a performance boost. It looks like integrated
CPP is going to be default, so it's not as important as it would
otherwise be. We're still quite a bit slower though, and even though
we now have more features which cost performance I'm not totally clear
why we can't be as fast.
I can improve function-like macro expansion by around 30-50%, by
delaying pre-expansion until we need it and then just stepping into
the pre-expanded argument. This avoids the tedium of copying the
macro expansion's tokens and inserting pre-expanded arguments, which
is a real performance dog. But it is quite subtle and I'm not really
happy about making the code more complex at this stage - the main
thing is we have a correct macro expander, whose code is quite clean.
Similarly, in the last week or so I've had a working write ()
implementation in cppmain.c, but I'm not happy enough with it to
commit anything, unless someone feels it really needs to be done
before 3.0. That speeds up stand-alone cpp quite a bit, obviously.
There are various minor bugs with _Pragma I still have to fix, but
nothing earth shattering. I also want to delete the USE_CPPLIB stuff;
maybe later this week.
A better dependency generator would be nice before 3.0; I may have a
quick look at this part of cpplib.
There's still a lot of areas that could be tidier, too. The 3
separate do_line callbacks spring to mind (should really become 1), as
does narrowing the exposed interface. These should probably wait till
after 3.0, though, as they involve mucking around with the front ends.
cppfiles.c and buffer handling could do with an overhaul of some kind.
Oh, and the -g -include stuff needs a satisfactory fix before 3.0, too.