Dan Sugalski wrote:
The parrot I have, which is a day or two out of date, takes 7m to churn through one of my pir files. With this patch, I killed the run at 19.5 minutes.
Sh... That's one of the smaller ones I presume.
Nope, one of the biggest. Sixth largest, at 800KB of pir code.
How many basic blocks and variables are listed with -v?
sh-2.05a$ ~/src/parrot/parrot -v -o forms/shipper.pbc forms/shipper.imc debug = 0x0 Reading forms/shipper.imc using optimization '0' (0) Starting parse...
build_reglist: 9941 symbols allocate_non_interfering, now: 3167 symbols sub _MAIN: registers in .imc: I2891, N0, S912, P6115 0 labels, 0 lines deleted, 0 if_branch, 0 branch_branch 0 used once deleted 0 invariants_moved registers needed: I3597, N0, S962, P6207 registers in .pasm: I32, N0, S32, P32 - 271 spilled 5679 basic_blocks, 47459 edges build_reglist: 1342 symbols allocate_non_interfering, now: 1003 symbols sub __Internal_Startup: registers in .imc: I25, N0, S0, P1290 0 labels, 0 lines deleted, 0 if_branch, 0 branch_branch 0 used once deleted 0 invariants_moved registers needed: I34, N0, S3, P2828 registers in .pasm: I31, N0, S7, P32 - 476 spilled 650 basic_blocks, 663 edges
Past that there are a mass of very small subs that don't spill.
This is interesting, though. I'd not looked at the numbers too closely, and I've been assuming that the _MAIN sub was the real cause of the register coloring code going insane, but the internal_startup code doesn't look too good either there. I think I'll go see what things look like for the big evil program.
--
Dan
--------------------------------------it's like this------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk