This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Precompiled headers


On Saturday, November 8, 2003, at 04:41 AM, Robert Vazan wrote:
Yes, I am concerned about modify-compile-test cycle. I don't mind length of
nightly rebuild and releases.

Ah, ok. A very important detail.


 Yes, in that case, we should be able
to get _lots_ of speed improvements.

Do you mean that your project will be able to eliminate unnecessary rebuilds?

No, what it means is that if you rebuild, that those rebuilds will go faster, compile time
should be close to the amount changed + things that are dependent upon those things that changed. While we don't have all the code implemented to do this, yet, the design so far, permits it.


Can your code answer the question whether given object file will
change after rebuild without actually rebuilding it? Makefiles answer that
question wrongly in most cases and that's where the waste comes from.

They change.


If you already plan this, then I better wait for your results instead of
starting overlapping project. What do you think?

No, you don't have to wait, but use it (the compile server) as a starting point. See how well it works, see what problems you find, report on the results you see, including the bugs. Try your hand at fixing the easier ones that you find.


If you want pointers into what needs doing, see below. The first three are trivial and will need doing. 0 is hard, and I am doing that now. 3, 4, 5 and 6 need testing and maybe doing.

Unintended problems:
1 add if (server_mode) to output fragments in toplev.c
1 asm_out_file = 0 when we close it (crash on linux)
1 fix fragment end code to not ftell when asm_out_file is 0.
Laguage fidelity:
0 -D on client cmd line
1 C++: cpp macros reset/restored per fragment
As this is done, -include is only done once, so ensure that all fragments are active
for the -include.
Unintented smashing of data (TREE_ASM_WRITTEN) causing errors
2 Fixup overloading to be fragment aware
#import/#pragma once files will not be included in other TUs. See should_stack_file,
reset once_only.
Asm fidelity:
3 debugging information
5 EH information
4 RTX const pool
6 Ln being ok on frag reuse
dup .stabs "t5.cc",130,... info
debugging info for builtins (bool:) (marked as output, undo/redo)
IDENTIFIER_TYPENAME_P needs to be set/reset upon fragment activation and bewteen units.
TREE_DEPRACATED needs to be set/reset upon fragment activation and bewteen units, also
should be called
IDENTIFIER_DEPRACATED
cpp_hashnode->flags & NODE_POISONED
Usage:
Streamline server starting
Default to on (at least for testing)
Determinism:
Return exit code after we reregister with load balancer
Scalability:
Running out of vm
Expiring old fragments when memory is tight
GC:
Restore useful dynamic type checking in gt_pch_note_object.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]