freenode/#clasp - IRC Chatlog
Search
19:35:58
kpoeck
Bike drmeister The asdf guys want to add clasp to their ci-pipeline but prefer to do so with a released version. What are your thoughts on a release? Either with current master (w/o image save) or once llvm 13 is our with `main` and image dump?
20:18:31
kpoeck
Bike what you wanted to change in asdf regarding backtraces in clasp is this https://gitlab.common-lisp.net/kpoeck/asdf/-/commit/90455b1c396fe0130fa8b874aaf659fda4d928f9
1:57:47
drmeister
I modified the static analyzer to generate more descriptive output of classes that the scraper could use to build compile-file info that clasp needs for precise GC.
2:00:02
drmeister
The stamp_wtag numbers at the end 7, 11, 15 should be ignored - we need to recalculate them in the scraper - but we already do that.
2:02:09
drmeister
The static analyzer generates this clasp_gc_xxx.desc file that contains these S-expressions and it still generates the clasp_gc_xxx.cc file that we will continue to use until we get the scraper to generate everything that is in the clasp_gc_xxx.ccc
2:03:45
drmeister
With this I think we can merge extensions together and generate a description of the layout of all objects that works with the specific combination of extensions that a person has.
3:06:55
drmeister
Did you get any more insights into your call site optimization technique after the talk?
3:07:47
drmeister
Oh? That was worth figuring out? I was kicking myself afterwards for asking a stupid question. :-)
3:07:48
beach
The callee allocates the snippet, so it can determine how far away it is from itself, and use the appropriate call.
3:10:03
drmeister
Let me say that better. Short calls give better performance on x86. We have switched between the large (all 64bit calls) and the small code model (primarily short calls) and there was significant difference in performance. It's not all due to jumps. But a 64bit call/jump means load a register and then jump to the contents of that register.
3:14:26
drmeister
I've been wondering if for functions with few arguments you couldn't leave space in the caller for most cases.
3:16:00
beach
Sure, that's possible. But even for functions like that, you have the indirection for the static environment and the entry point, and you load the environment even when it is not necessary, so even in cases like that, I win.
3:16:26
beach
On SICL, there are also more indirections than on most systems, so it is important to eliminate those.