Debugging LLVM IR - Reviving the DebugIR pass

Hello all,

I recently felt the need to have debug info at the LLVM IR level (because my frontend’s semantics vastly differ from IR that it doesn’t make much sense to use it). Asm can sometimes be too “low level”, so it’s nice to have the ability to single-step at the IR level.

The pass that used to do this (-debugir) bitrotted and was removed from tree. I spent the weekend bringing it back: https://reviews.llvm.org/D40207

I’d love to have some help with reviews and tests I should write for this, because I don’t understand the debug info side of LLVM very well.

Also, is there a protocol to have a review be put on the “review corner”? I’d be glad if this patch could be listed there :slight_smile:

Thanks,
~Siddharth.

Hello all,

I recently felt the need to have debug info at the LLVM IR level (because my frontend’s semantics vastly differ from IR that it doesn’t make much sense to use it). Asm can sometimes be too “low level”, so it’s nice to have the ability to single-step at the IR level.

The pass that used to do this (-debugir) bitrotted and was removed from tree. I spent the weekend bringing it back: https://reviews.llvm.org/D40207

I removed the pass because it wasn’t maintained and the cost of keeping it up to date was more than the benefit, so a few questions:

a) Are you planning on maintaining this?
b) Are you going to be doing active work on it?
c) What’s the benefit here? What use case?

I’d love to have some help with reviews and tests I should write for this, because I don’t understand the debug info side of LLVM very well.

Also, is there a protocol to have a review be put on the “review corner”? I’d be glad if this patch could be listed there :slight_smile:

Are you finding it hard to get a review on the patch?

-eric

I removed the pass because it wasn’t maintained and the cost of keeping it up to date was more than the benefit, so a few questions:

a) Are you planning on maintaining this?
Yes, I do plan on maintaining this.

b) Are you going to be doing active work on it?

I do plan on writing additional tests, and maybe adding support for variables as described in the kaleidoscope docs, yes.

c) What’s the benefit here? What use case?

At least for me, the use case is when you have a miscompile from your frontend. It’s easier to think about things on a LLVM IR level than on the assembly (at least for me). So, I prefer to have the ability to step through the LLVM IR in a debugger.

Are you finding it hard to get a review on the patch?

Yes, I am.

Thanks a lot,

~Siddharth

Hi Siddharth, this is documented at LLVM Weekly - Review Corner
which is linked to in each issue. Pasting the guidance here for
convenience:

"""
For inclusion, the following should be true:
* Your patch has gone at least two weeks without substantial review
feedback OR this is your first patch to an LLVM project
* You have updated the patch based on any review comments received so far
* The patch has been compile tested against the current HEAD of the
appropriate LLVM project, and rebased if necessary
* You are willing to write a short two-sentence summary that explains
1) what the patch does, and 2) why people might interested.
"""

Best,

Alex

@Alex: thanks! If I don’t get a review this week, I’ll put it up :slight_smile:

@Eric: gentle ping. I replied to the questions you asked. Are there any other concerns?

Thanks,
Siddharth