freenode/#sicl - IRC Chatlog
Search
3:47:11
beach
"The advantage of edge-labeled graphs is even more drastic when looking at programs with a parallel operator" :)
3:56:35
beach
Otherwise, it's an interesting article. When I decided to use a "single instruction" graph for SICL, I had only the "higher conceptual complexity" aspect in mind.
3:58:14
beach
Plus, my reasoning was that the basic blocks could be computed on demand by a single traversal of the graph, whenever they would be convenient to have.
4:15:02
Bike
hmkay. i filed a pull request that would probably be enough for me to move to trucler in cleavir, but it changes the API a bit
4:18:04
Bike
yeah. trucler is pretty much the main block in cleavir towards actually using the ctype customization stuff
4:48:18
beach
As far as I can tell, that article doesn't really say how to represent branches in an edge-labeled SI graph. But I can see how it would be advantageous to have an explicit representation of program points. So I am considering a representation of two kinds of nodes, instructions and program points.
4:49:11
beach
An instruction would then represent a transition from a program point to one or more program points.
4:50:18
beach
But, that's not the main mission for today. I am introducing new abstractions in register allocation so as to simplify the code. That will take most of the day I imagine.
12:06:44
Bike
beach: "So I am considering a representation of two kinds of nodes, instructions and program points" we were actually talking about that earlier - apparently that's how SBCL's IR1 works https://irclog.tymoon.eu/freenode/%23sicl?around=1617568446#1617568446
12:16:37
beach
It makes sense. There are many cases where we have to represent a property of some control arc, but we have no object to associate the property with. So we end up with an EQUAL hash table with the predecessor and the successor.
12:17:38
beach
I am (of course) not in favor of storing things in the objects representing the program points, unless it can be done in a modular way, but having an object representing each program point is very likely an advantage.
12:17:45
Bike
and if you think about it CPS kind of is that as well, the continuation being the edge
12:20:00
beach
I would call it "program point", rather than "ctran" or something else, though, because that's what I think it is called in the literature.
15:28:11
beach
What is a good name for the set of lexical locations that are live after some instruction, but that are not defined by that instruction?