I'm think a fair share of the time and space usage for lowering is due to the several validation passes. I can't commit a fix to disable them with a flag right now because our repo seems to still be down, but you could try it yourself.
To disable all validation during lowering, in ir/lowering.js, comment out cfg.validate() on lines 157, 169, 175, 185,
Once I have access to the repo again I might add a parameter so validation is disabled in the bootstrap config only, but remains enabled for our shell and unit tests.
- Maxime
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
Tachyon-list mailing list Tachyon-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/tachyon-list