freenode/#clasp - IRC Chatlog
Search
2:48:50
drmeister
Something has changed with the policy. I put in enough print statements to see the different flow control in llvm9 vs llvm12
2:50:56
Bike
if we specifically request that frame points aren't removed, but they're removed anyway, that seems like a bug
2:52:28
drmeister
https://github.com/llvm/llvm-project/blob/release%2F12.x/llvm/lib/Target/X86/X86FrameLowering.cpp#L93
2:53:38
drmeister
Hmm - it's a big OR block - it's got more terms in it than llvm9. You'd think it would generate FP more often rather than less.
2:55:36
drmeister
For the functions missing the FP - the hasFP function is returning true in llvm9 and false in llvm12
3:42:06
drmeister
I dump all the terms in that big OR block in llmv9 and llvm12 - here's a typical llvm9 case...
3:55:31
drmeister
https://github.com/llvm/llvm-project/blob//llvm/lib/CodeGen/TargetOptionsImpl.cpp#L24
3:56:32
drmeister
https://github.com/llvm/llvm-project/blob/release%2F12.x/llvm/lib/CodeGen/TargetOptionsImpl.cpp#L24
3:57:13
drmeister
I think llvm is moving away from disabling disable-frame-pointer to frame-pointer=all
3:57:14
Bike
https://github.com/llvm/llvm-project/commit/03b9f0a5e19aa68fb0a82d80e409333db7ee511c ah, they did rename it.
3:58:23
Bike
https://github.com/llvm/llvm-project/commit/b7cef81fd36c85e52b115b9ed6d1fb92d63781d6 two years ago! golly
4:20:29
drmeister
Right - analyzing 125 million lines of C++ to figure out what classes have vtables
5:00:19
drmeister
To identify within every class the offset of every pointer that needs to be fixed by the garbage collector. I've just added the ability to determine if the C++ class has a vtable pointer.
5:00:47
drmeister
Because the image save/load needs to be able to restore all of the vtable pointers at load-time.
5:01:17
drmeister
I have lots of pointers into the C++ generated code that I need to restore at load-time.
5:02:58
drmeister
It's going to be like ripping apart a piece of cloth and then putting it back together at load-time.
5:04:05
drmeister
The added challenge is that the C++ generated code and libraries may be at a different location at load-time than they were at save-time.
5:05:33
drmeister
But I'm certain that I can depend on all of the pointers to addresses in a particular library at load-time remaining at the same offset relative to the start of the library at save-time.
5:08:25
drmeister
Hmm, I better talk with cracauer about that. That may be too strict a restriction.
5:15:05
beach
So the plan is to not save shared libraries, and instead to load them again when the saved image is executed?
5:16:46
drmeister
I can't save arbitrary objects. I'm going to limit it to clasp/cando objects. In that case it may turn out that it's only the executable that I need to worry about.
5:17:48
drmeister
My function entry points now involve a level of indirection that keeps track of what executable/library the entry point points in to.
7:05:31
kpoeck
::notify iskander Try (ql:update-client), I believe Xach said version 2021-02-11 has a performance problem scanning the local-projects directory