freenode/#sicl - IRC Chatlog
Search
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?
16:11:41
beach
ebrasca: froggey is alive and (sort of) well. Just preoccupied with stuff that is more important than IRC.
16:39:28
beach
I am going to call it a day. I'll stick around until my (admittedly small) family announces that dinner is served, in less than 20 minutes. Then I'm off.
16:40:13
beach
I have been reworking most parts of register allocation today, because I realized I didn't have the right abstractions. Now I hope I do, but I need to rework the client code to use those new abstractions.
16:43:43
beach
One major realization that prompted the rework was that allocating registers does not need to mention any specific register whatsoever. It doesn't matter what register is allocated, as long as it is one in the right category.
16:43:44
beach
The exact choice is abstracted out into a module called "arrangement", and methods specialized to various instruction types use only the protocol provided by the arrangement module.
16:48:04
beach
My (admittedly small) family just announced that dinner is served. I'll be back tomorrow.
18:23:12
karlosz
yep, the continuation data structure in cmucl (lvar and ctran in sbcl) precisely represents program points
18:23:47
karlosz
it makes a lot of operations pretty easy which is why functional people like cps style compilers
18:24:43
karlosz
the names lvar and ctran in sbcl are kinda weird; i wish the name continuation was kept in some capacity