[llvm-dev] Moving to ORCv2 - Compiling debuggable code?
Stefan Gränitz via llvm-dev
llvm-dev at lists.llvm.org
Fri Dec 20 16:04:40 PST 2019
There's been an API change from 8 to 9, but it should work with both
versions. LLJIT is only one possible implementation and doesn't provide
all functionality. Make your own. Hope it helps.
Release 8: https://github.com/weliveindetail/JitFromScratch/commit/4e858ef
Release 9: https://github.com/weliveindetail/JitFromScratch/commit/a4b88a0
On 20/12/2019 09:47, Geoff Levner via llvm-dev wrote:
> Hmm, the things of which you speak (LLJITBuilder, setNotifyLoaded(),
> ObjectLinkingLayer) do not seem to exist in LLVM 8. We may have to
> jump directly from LLVM 7 to LLVM 9 then....
> On Fri, Dec 20, 2019 at 12:19 AM River Riddle via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> If you are creating your own object linking layer via LLJITBuilder, you could add the notification yourself. For RTDyldObjectLinkingLayer, you can use `setNotifyLoaded`. For ObjectLinkingLayer, I think you would need to use a `ObjectLinkingLayer::Plugin`. I was able to hook the existing GDB registration listener this way.
>> -- River
>> On Thu, Dec 19, 2019 at 12:02 PM Praveen Velliengiri via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>> Dear Geoff,
>>> As for as ORCv2 is concerned, there is no event listener facility available as of now.
>>> On Fri, 20 Dec 2019 at 01:21, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>>> +Lang Hames the author/owner of the ORC JIT - though he's out of teh office at the moment I think, so might not get a reply until the new year I'd expect. Perhaps other folks familiar with it might chime in, though.
>>>> On Thu, Dec 19, 2019 at 7:31 AM Geoff Levner via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>>>> I too am in the process of porting our ORC code to ORC v2 and LLJIT. The new API allows me to remove much of our own code, which can only be a good thing. I sometimes get crashes, however, when executing my JIT compiled function, so I thought I would use gdb to try to figure out what is going wrong. And I am dismayed to see that there seems to be no way to provide an event listener to register compiled functions with gdb. LLJIT creates an object linking layer with no listeners, and no way to add listeners afterwards that I can see.
>>>>> Am I missing something? Is there another way to debug JIT compiled code?
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
More information about the llvm-dev