I have improved the reporting of the time and space profile to display the information hierarchically and with the percentage of the total time and space used. Here is the report.
According to this new report, the "IR to ASM translation" and "IR lowering" each account for 1/4 of the total memory allocations. Please look into optimizing these phases first. Note that even if these two are improved to take *no* space, then it would only cut down total memory usage by a factor of 2 (which would be good, but we would still be in the same order of magnitude of memory use). Execution time is another story... it should be easier to get more than a factor of 2 acceleration.
Marc
******************** Performance report
Compiling runtime: 4.98013916015625 s, 335.53583908081055 MB allocated time=68% alloc=63% -- Machine code generation time=19% alloc=25% -- IR to ASM translation time=18% alloc=9% -- Linear scan time=13% alloc=5% -- Resolution time=5% alloc=7% -- Computing live intervals time=4% alloc=4% -- Assembly time=1% alloc=2% -- Operand assignment time=1% alloc=3% -- Number instructions time=0% alloc=1% -- Computing fixed intervals time=0% alloc=0% -- Order blocks time=21% alloc=25% -- IR lowering time=5% alloc=6% -- IR generation time=3% alloc=2% -- Parsing time=1% alloc=1% -- Machine code linking
Compiling stdlib: 6.415508056640625 s, 335.77566146850586 MB allocated time=79% alloc=70% -- Machine code generation time=27% alloc=10% -- Linear scan time=20% alloc=6% -- Resolution time=15% alloc=28% -- IR to ASM translation time=4% alloc=7% -- Computing live intervals time=4% alloc=5% -- Assembly time=2% alloc=3% -- Number instructions time=2% alloc=2% -- Operand assignment time=0% alloc=1% -- Computing fixed intervals time=0% alloc=0% -- Order blocks time=16% alloc=23% -- IR lowering time=2% alloc=3% -- IR generation time=1% alloc=2% -- Machine code linking time=0% alloc=0% -- Parsing
Compiling Tachyon: 533.329 s, 10945.522819519043 MB allocated time=88% alloc=67% -- Machine code generation time=53% alloc=11% -- Linear scan time=17% alloc=4% -- Resolution time=8% alloc=28% -- IR to ASM translation time=3% alloc=5% -- Assembly time=2% alloc=7% -- Computing live intervals time=1% alloc=2% -- Operand assignment time=0% alloc=1% -- Computing fixed intervals time=0% alloc=2% -- Number instructions time=0% alloc=0% -- Order blocks time=9% alloc=23% -- IR lowering time=1% alloc=5% -- IR generation time=0% alloc=2% -- Machine code linking time=0% alloc=0% -- Parsing
********************