diff --git a/CompilerImprovements.md b/CompilerImprovements.md index 9d5b12e..c74f52b 100644 --- a/CompilerImprovements.md +++ b/CompilerImprovements.md @@ -7,19 +7,24 @@ performance over each release. - ```-O fast``` - ```-O mem```??? -1. lexer - Front end duplicate include elimination - - per block cache which files have already been included so they don't need to be processed multiple times +1. Better auto tuning of jobs + - -j0 really small systems + - small system + - large system + +1. User side compression + - means compress once in userspace for cache + - kernel only has to unpack, and store compressed instead of doing compression + - better compression if done in userspace (less mem) 1. file cache (memory for speed) * Include parse caching - cache include files post parsing so that they don't need to be re-parsed * generic file cache - cache files that have already been read so they don't need to be reread - - requires multiple profiles be processed by one compiler call to be effective (especially if duplicate include elimination is in effect) + - requires multiple profiles be processed by one compiler call to be effective + - use mmap when possible -1. Rule duplicate removal (only done on files) - - almost unneeded if fix for 1 is done - - requires: to full replace (so code can be dropped) need 1 and 4 1. aare -> pcre convertion - add native parsing of aare to the background eliminating this step @@ -58,6 +63,7 @@ performance over each release. - Requires dfa set operations 1. threaded parallel compile + - thread pool - requires removal of global state - shared file caches - compile profile components in parallel (see partial compiles)