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
19:21:42
kpoeck
and from the opendylan release notes https://opendylan.org/news/2020/10/10/new-release.html
19:21:44
kpoeck
The LLVM back-end is now the default back-end. Its performance is 30% to 40% better than the C or HARP back-ends.
19:33:46
drmeister
kpoeck: No - I don't think we will migrate to llvm 11 - I have a version of clasp that is compatible with llvm tip-of-trunk as of about a week ago and it would be a downgrade to migrate to llvm 11 and UPgrading from our current llvm 9 support would be painful as well.
19:34:57
drmeister
The our current llvm9 clasp uses ORCV1 and our new llvm-tip-of-trunk supporting clasp goes all in with ORCV2.
19:36:08
drmeister
And right now the sticking point is llvm-tip-of-trunk doesn't support JITLink on Linux because it's in my lap to fix the linker!
19:37:04
drmeister
They have been releasing pretty steadily haven't they? I dunno when the upgrade will be - see my previous comment about fixing the linker.
19:57:24
Bike
karlosz: i've kind of lost track of how to read the disassemblies. ((151) #<CATCH> ((IBLOCK 152)) ...) means it's the block called 151, but what is the iblock 152?
20:01:40
karlosz
im not too clear on the disassembler, i just manually parsed the stuff in the disassemblies and hacked together a pretty printer and forgot the original structure
21:19:10
Bike
i'm going to seriously consider your suggestion about nonlocal next relationships, cos it would have fixed this before it broke