freenode/#clasp - IRC Chatlog
Search
17:45:26
karlosz
but without the fastcc convention it seems like the extra mandatory call for each function is slowing things down a bit
18:02:17
Bike
i tried making catch elimination be triggered automatically, but there are difficulties
18:02:48
Bike
i think the exposed bir transformations may be a little too fine grained... you can sort of get things into an invalid state
18:03:34
Bike
but the only major transformation we're doing is interpolation so it's hard to judge what's needed
18:11:27
karlosz
yeah im working on that with the local call stuff subsuming things like interpolation
18:13:05
karlosz
the thing is that for example, interpolation can get triggered by removing a reference to an enclose, for example, and then we want that to potentially trigger an interpolate
18:13:43
karlosz
i mean, even the same client might want to turn things on and off according to speed or debug or whatever
18:14:06
karlosz
so that's kind of where the concept of a pass registry/manager comes in even if they aren't passes per se
18:14:23
karlosz
but yeah we don't have that many transformations for that to be something to think about yet, as you said
18:14:45
karlosz
Bike: calling verify at the end of the bir->bmir also exposes some problems during self build
18:17:27
karlosz
verify should also check if every instruction that is a terminator is actually a terminator
18:18:01
karlosz
like i got a typeq ending a block and that took way too long to find and debug because only the translator would complain and i couldnt figure out that reduce-typeqs wasn't getting everything
18:20:21
Bike
right now THE and type declarations are just discarded, since we're not doing type inference anyway
18:21:01
Bike
it's a little messy, e.g. delete-temporary-variables can screw it up by deleting the information
18:22:30
Bike
https://github.com/s-expressionists/Cleavir/blob/bir/AST-to-BIR/compile-general-purpose-asts.lisp#L417-L457 the-ast does set the ctype. maybe i don't understand what you mean
18:24:50
Bike
typeq isn't a declaration. it's not optional. we use it to implement functions like consp.
18:25:23
karlosz
the reason theres no translator for it in clasp is that it gets transformed into something else before that
18:35:22
karlosz
what would be the best way to expose something like NewCall->setCallingConv(CallingConv::Fast) to clasp?
18:35:53
karlosz
not really sure how things fit together between the stuff in cmp:: and the actual llvm stuff, especially wrt enums
18:53:01
karlosz
cause having eclector not be slow will be pretty huge since its what 70x slower as drmeister said than the clasp reader
18:55:16
karlosz
yeah it worked fine before its just there were some regressions that caused it to stop loading for me in the past day
18:56:11
karlosz
im trying to avoid pushing the local call stuff until im sure it goes on top of a stable ground