freenode/#clasp - IRC Chatlog
Search
13:49:10
karlosz
beach: yes, the only possible defs for merge vars are in different branches, which can't overlap
13:49:10
Colleen
karlosz: beach said 21 minutes, 1 second ago: I believe you are right. It should be enough to know where a variable is defined and where it is used. And we have that information already. There will not be a definition that hides another definition, so the UD chains are trivial.
13:49:49
karlosz
so maybe SCC algorithm can be written more like the one for SSA, without the extra DU UD computations
14:07:23
karlosz
another simplification: instead of having to look up the predecessor associated with the phi input (to check if it is executable), there is no need for that in SFA because you can check which assignment instructions are executable instead. there is no need for using the indices this way
14:10:32
beach
We should remember that UD and DU chains are trivial in SFA. That information can come in handy.
14:44:36
karlosz
but the crucial observation is that you can recover the same information at a merge point because those branches cant overlap in execution
15:55:53
karlosz
beach: it occured to me that SCC could be generalized into a much more powerful algoirthm that deals with general constraints
15:56:27
karlosz
the current type inference algorithm doesn't keep track of executable branches, right?
15:56:51
karlosz
so perhaps instead of consstants in the lattice, types and other constraint information can be kept track of
15:57:30
karlosz
when i had implemented it earlier i realized that as long as the universe has the finite chain condition it should terminate and work the same
17:56:40
drmeister
In preparation of GC'ing code and switching fully to MPS and saving/loading images I'm taking an inventory of objects created at startup.
17:58:00
drmeister
I'm generating a backtrace for every allocation (about 15,000) and then a flame graph from those backtraces.
17:58:37
drmeister
I found several thousand redundant allocations using this that I eliminated already.
17:59:13
drmeister
fmakunbound allocates a closure. I was calling fmakunbound twice on symbols during bootstrapping.