libera/#sicl - IRC Chatlog
Search
19:56:18
Colleen
karlosz: Bike said at 2021.05.21 18:55:58: i think i'm going to give clasp a pass to turn local calls with hairy lambda lists back into calls to do at the end to clean up some stuff. should that be before or after the determine extent passes do you think?
19:57:28
Bike
i've rethought it, but what i mean is that on clasp at least, local calls with &key are compiled into calls to the xep, so there's an implicit enclose
20:58:55
karlosz
for questions like - does this belong in BIR or BMIR or whatever - i usually just think about how well it fits into the overall semantics of the IR and what details they abstract (and what's useful for optimization)
20:59:42
karlosz
extent determination does care about whether encloses exist at all, so that factors somewhat
21:00:12
karlosz
usually youwant to determine extents as late as possible (so optimizations can kick in) but lambda list parsing is sort of orthogonal to that
21:09:41
Bike
right, i was basically wondering whether the extent analyses cared about closures existing, and then actually checked the code and it's obvious they do
21:11:16
Bike
but i can't make an enclose again in any straightforward way since there can be multiple local calls, and so the enclose has to be in a dominator of all of them or suchlike
21:17:23
Bike
nothing severe. hypothetically the closure could be built ahead of time and shared between calls, but that probably doesn't matter performancewise. i've just been going through the details of how local calls are translated in the hopes of optimizing some multiple value calls better
21:17:45
Bike
and it could be kind of convenient at the translation level if local calls that need a closure were treated the same as nonlocal calls
21:19:37
karlosz
yeah, so the issue is that parsing &key shouldn't be tied to stuff like closure creation