freenode/#clasp - IRC Chatlog
Search
2:29:53
karlosz
and reinitialize-data on top of the inlining function bar can go away, and so can set predecessors next to inlining-function
2:31:05
karlosz
patch for getting rid of both forthcoming after this build finishes, but its at 90/445 and hasn't died yet
2:31:54
drmeister
My laptop ran out of power in the middle of ASDF build - and it hung up - so I'm starting it again.
11:03:46
selwyn
i built in 1h51 just now - basically no change. i wonder if i did something wrong? asdf did take a while
11:06:30
drmeister
I don't know - timing can be tricky. The flame graphs show improvements in inlining.
11:07:13
drmeister
Do you mean what is the difference between the CST compiler and the AST compiler?
11:08:26
drmeister
A couple of things - (1) the CST compiler tracks source locations for every expression. Source information is propagated all the way from where the source is read down to the object files.
11:09:49
drmeister
(2) The CST compiler fixes a subtle bug in the AST compiler that I still don't really appreciate - I think it's with closed over environments.
11:10:26
drmeister
In fixing that bug it generates code where LET statements are expanded into calls to functions. This slows down the generated code significantly (by a factor of 2 or so).
11:11:07
drmeister
The solution is to do a lot more inlining at the HIR level to improve the generated code performance.
11:11:24
drmeister
That inlining code is what we are dealing with now - it slows the compiler down a lot.
11:12:31
drmeister
So we crawl through this valley of slowness to come out the other side with a better compiler.
11:13:02
drmeister
The next big thing to do is value numbering, type inference and removal of dead code.
11:14:13
selwyn
right. i have to go now, i will read the logs and be back in a couple of hours. thanks for explanation
12:18:51
drmeister
I changed the file that I compile-file for this flame graph - I switched to format.lsp - it has a really long pause at the end when it is compiling the format compiler-macr
12:22:42
drmeister
I have a suggestion: (1) We temporarily add a slot to instructions that stores a 'visited' mark and write a new version of of map-instructions-xxxx that uses the 'visited' mark rather than a hash table to keep track of what instructions have been visited. I believe that this will cut inlining time by quite a lot.
12:23:09
drmeister
(2) We work on value numbering, type inference and removing useless code paths to tighten up the code.