libera/#clasp - IRC Chatlog
Search
2:08:44
drmeister
I'm trying llvm libunwind again. I realized that I had not configured llvm to use the patch properly
2:16:44
drmeister
He says that patch is what we need in the short term and he's talking to people at Apple about a long term fix.
3:14:49
drmeister
That patch was not correct for us because it only worked with the old memory manager - we are bleeding edge - using JITLink.
3:15:41
drmeister
Lang suggested I apply the same patch to this file: llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp
3:21:08
drmeister
Think about how to use libunwind to get the frame pointers - then we can get rid of the frame pointer dereferencing code.
3:24:30
Bike
we can get it from RBP easily. if we have to worry about frame pointer omitting i don't think that's exposd by libunwind and we'd have to get into the dwarf
13:04:14
Colleen
Bike: drmeister said 7 hours, 49 minutes ago: I got clasp to look in the /opt/clasp/lib directory using -rpath
13:23:51
drmeister
I'll check and see if this libunwind works on macOS and if it does then we can just use that.
13:25:10
drmeister
Anywho - I build llvm libunwind in the deploy script and we link it on linux and I set the path to it using -rpath. This all works on linux.
13:25:32
drmeister
Lang is talking to folks at Apple that develop libunwind to fix the problem that we saw with it.
13:27:18
drmeister
Can you change the backtrace code to use libunwind to get the RBP for frames where it is available? Get rid of the frame pointer dereferencing.
13:28:34
drmeister
We are probably the only compiled dynamic language that supports that. I looked at the Julia code - they don't appear to do the work to get arguments.
13:30:26
drmeister
Also, I was reading the llvm.experimental.patchpoint documentation again. It seems to hint at beach's call site approach.
13:30:30
drmeister
"The llvm.experimental.patchpoint intrinsic also lowers a specified number of arguments according to its calling convention. This allows patched code to make in-place function calls without marshaling."