On 2011-03-03, at 1:11 PM, chevalma@iro.umontreal.ca wrote:
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 tried commenting out the validation and it did not change much (it saved about 2% allocation overall). The report is below.
Marc
******************** Performance report
Compiling runtime: 4.847571044921875 s, 331.6191101074219 MB allocated time=70% alloc=63% -- Machine code generation time=22% alloc=25% -- IR to ASM translation time=17% alloc=9% -- Linear scan time=11% alloc=5% -- Resolution time=6% alloc=7% -- Computing live intervals time=3% alloc=3% -- Number instructions time=3% alloc=4% -- Assembly time=1% alloc=2% -- Operand assignment time=0% alloc=1% -- Computing fixed intervals time=0% alloc=0% -- Order blocks time=18% alloc=25% -- IR lowering time=4% alloc=6% -- IR generation time=4% alloc=2% -- Parsing time=1% alloc=1% -- Machine code linking
Compiling stdlib: 6.235839111328125 s, 329.2502555847168 MB allocated time=81% alloc=70% -- Machine code generation time=25% alloc=11% -- Linear scan time=21% alloc=6% -- Resolution time=19% alloc=28% -- IR to ASM translation time=5% alloc=8% -- 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=12% alloc=22% -- IR lowering time=3% alloc=0% -- Parsing time=1% alloc=3% -- IR generation time=1% alloc=2% -- Machine code linking
Compiling Tachyon: 507.99649609375 s, 10758.571731567383 MB allocated time=90% alloc=68% -- Machine code generation time=52% alloc=11% -- Linear scan time=19% alloc=4% -- Resolution time=8% alloc=29% -- 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=3% -- Number instructions time=0% alloc=0% -- Order blocks time=7% alloc=22% -- IR lowering time=1% alloc=5% -- IR generation time=0% alloc=2% -- Machine code linking time=0% alloc=0% -- Parsing
********************