Displaying 20 results from an estimated 3000 matches similar to: "Debugging LLVM IR - Reviving the DebugIR pass"
2018 Mar 22
2
Reviving the DebugIR pass
>> This work could also be used to fix [3]. Although this probably needs
>> more though because there's the question of whether we should preserve
>> existing debug information in an LLVM IR file or write over it when it
>> is given to Clang.
>
> If foo.ll contains edited debug info, `clang -g` shouldn't silently drop
> the edits. A warning + no-op seems
2018 Mar 23
0
Reviving the DebugIR pass
Please do take over the pass revival. College hasn't left me with the
bandwidth to continue this side project :)
If there's small things here and there, I'd be happy to pitch in.
However,.whipping the patch into shape is beyond me right now.
Thanks
Siddharth
On Fri 23 Mar, 2018, 00:53 via llvm-dev, <llvm-dev at lists.llvm.org> wrote:
>
> >> This work could also
2018 Jan 04
0
LLVM IR Debugger
You can attach debug info to the Llvm module about LLVM IR, at which point
one can throw the executable into any debugger and get llvm level debugging.
I've started a patch to revive this feature (DebugIR pass). I've been
sidetracked the past month, but I'll come back to it soon :)
https://reviews.llvm.org/D40778
Cheers,
Siddharth
On Thu 4 Jan, 2018, 09:23 Brenda So via llvm-dev,
2018 Mar 21
2
Reviving the DebugIR pass
Hi,
I recently had the need to see the correspondence between some Clang
generated LLVM IR and the compiled machine code within a debugger
(lldb in this case). Unfortunately it looks like the functionality to
do this used to be in a pass called 'DebugIR' but was removed due to
the lack of a maintainer [1].
It appears an attempt was made [2] to revive this but it appears to
have stalled.
2018 Jan 04
3
LLVM IR Debugger
Hi
I am looking at open projects that LLVM want to implement and it seems to
be a suggestion to write an LLVM IR level debugger. Is there any existing
LLVM projects out there that already does such a thing? If not, I would
like to try implementing one myself.
By debugger, I think it means something like gdb, where you can insert
breakpoints, run code and observe layout of registers and memory at
2018 Mar 21
0
Reviving the DebugIR pass
Hi Dan,
Having missed this functionality myself in the past I’m excited to see this
gain traction. Let me know if there’s anything I can do to help this along.
Cheers,
Jonas
On Wed, 21 Mar 2018 at 18:19, Dan Liew via llvm-dev <llvm-dev at lists.llvm.org>
wrote:
> Hi,
>
> I recently had the need to see the correspondence between some Clang
> generated LLVM IR and the compiled
2018 Mar 22
4
Reviving the DebugIR pass
We have implemented a debug pass to enable debugging of jitted functions. The pass dumps the IR of the module at the beginning of the pass, which then becomes the source code for the debug metadata. Our solution focuses on a windows x86 solution but I’m sure it would be easy to extend to other platforms.
In order to load the resulting debugging info into Visual Studio, we jit to object file then
2018 Mar 23
1
Reviving the DebugIR pass
>> This work could also be used to fix [3]. Although this probably needs
>> more though because there's the question of whether we should preserve
>> existing debug information in an LLVM IR file or write over it when it
>> is given to Clang.
>
>
> If foo.ll contains edited debug info, `clang -g` shouldn't silently drop the
> edits. A warning + no-op
2018 Mar 22
0
Reviving the DebugIR pass
+ 1 to having this functionality implemented as `llvm-as -g` or some analog (`clang -g foo.ll`).
As I outlined in https://reviews.llvm.org/D40778 <https://reviews.llvm.org/D40778>, I think such a solution can be made to work for JIT users who don't have on-disk *.ll files.
> On Mar 21, 2018, at 5:37 PM, Jason Surprise via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
2017 Aug 17
3
Inst->replaceAllUsesWith and uses in ConstantExpr
I see. Is there a pre-existing way to do this in LLVM?
Cheers,
~Siddharth.
On Thu, 17 Aug 2017 at 02:12 Craig Topper <craig.topper at gmail.com> wrote:
> ConstantExprs are immutable, they can't be changed once they are created.
> And a ConstantExpr can reference other ConstantExprs. So replacing all uses
> of a Value in a ConstantExpr would require creating a new immutable
2017 Aug 17
2
Inst->replaceAllUsesWith and uses in ConstantExpr
Whoops, sorry, I meant "value->replaceAllUsesWith".
Should I create a new post with an updated title?
Thanks
Siddharth
On Thu 17 Aug, 2017, 01:05 Tim Northover <t.p.northover at gmail.com> wrote:
> On 16 August 2017 at 15:39, (IIIT) Siddharth Bhat via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > From what I have observed, using
2013 Sep 22
1
[LLVMdev] DebugIR pass fails with an assert
Hi List,
My IR compiles fine and runs. I've tried to add DebugIR pass so
as to be able to debug and profile it (since source is an SQL query
all that I can debug and profile is IR itself).
When I tried to add it to pass manager I got the following assert:
Program received signal SIGABRT, Aborted.
0x00007ffff3fe4425 in __GI_raise (sig=<optimized out>) at
2017 Sep 05
5
InstCombine, graph rewriting, Equality saturation
Hello all,
I've seen some discussion that InstCombine is "too general" and that llvm
should implement a proper graph rewrite mechanism:
Link to llvm-dev discussion about this:
http://lists.llvm.org/pipermail/llvm-dev/2017-May/113219.html,
Link to review where this came up (and I first heard about it):
https://reviews.llvm.org/D37195.
I wanted to understand what the current issues
2017 Nov 15
2
答复: hi, Is there any solution about how to add some dwarf info to the IR bitcode file.
Hi Andrew
I am newbie. There are many headers and classes, I do not know how to use to add dwarf info to bc file.
Can you show me the demo or example, is there any info about how to use these classes step by step.
BR
Owen
发件人: Andrew Kelley [mailto:superjoe30 at gmail.com]
发送时间: 2017年11月15日 12:51
收件人: Wuweijia <wuweijia at huawei.com>
抄送: 陳韋任
2017 Oct 13
2
Why does GEP allow src and destination type to have different address spaces?
The GEP constructor does not assert that the source and destination types
match. Of course, this is incorrect and causes random failures somewhere
down the line.
Could I add general sanity checks to the GEP constructor?
In general, is an Instruction allowed to be in an inconsistent state? If
so, is there some well known method to "verify" whether an instruction is
consistent or not?
2017 Aug 09
2
Can a Constant have more than one use?
As the question asks. IIRC, I have only seen constants use to:
1. setup globals
2. as "constant parameters" to instructions.
In both these cases, from what I understand, they will have a single use.
Is it possible to create a Constant with multiple use(r)s?
Thanks,
Siddharth
--
Sending this from my phone, please excuse any typos!
-------------- next part --------------
An HTML
2017 Aug 16
2
Inst->replaceAllUsesWith and uses in ConstantExpr
Hello all,
>From what I have observed, using `Inst->replaceAllUsesWith` does not
replace uses of the `Inst` in `ConstantExpr`s. Is there some way to have a
universal replaceAllUsesWith?
Thanks,
~Siddharth.
--
Sending this from my phone, please excuse any typos!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2017 Aug 11
2
Converting i32** to [4 x i32]* ?
Hello all,
This is a general question regarding type conversion:
from: <ty>**
to: [<size> x <ty>]*
>From what I understand, bitcast is wrong in this case because a GEP into a
<ty>** should be computed differently from a GEP into [<size> x <ty>]*.
So, what is the correct way to perform this type conversion?
Thanks,
Siddharth
--
Sending this from my
2017 Aug 12
2
Converting i32** to [4 x i32]* ?
What would the "correct form of GEP be"?
Thanks,
Siddharth
On Fri 11 Aug, 2017, 23:47 Krzysztof Parzyszek via llvm-dev, <
llvm-dev at lists.llvm.org> wrote:
> On 8/11/2017 3:40 PM, Siddharth Bhat via llvm-dev wrote:
> >
> > This is a general question regarding type conversion:
> >
> > from: <ty>**
> > to: [<size> x <ty>]*
>
2017 Nov 17
2
Ensuring that dead allocations from a custom allocator are killed by LLVM
Hello all,
I have a custom allocator, and would like to teach LLVM about its
semantics. In particular, I would like LLVM to kill allocations that are
"dead", similar to dead new in C++.
Consider this example:
; ModuleID = '<stdin>'
source_filename = "Module"
; Function Attrs: inaccessiblememonly noinline norecurse nounwind
declare i8* @alloc(i64)