Displaying 20 results from an estimated 3000 matches similar to: "Handling of metadata in llvm::CloneModule"
2016 Feb 12
3
CloneFunction during LTO leads to seg fault?
In general I use DebugInfoFinder and clear out Metadata if GV in null or GV->isDeclaration().
If there is any interest, I can post that patch...
Sergei
---
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
> -----Original Message-----
> From: Tobias Edler von Koch [mailto:tobias at codeaurora.org]
> Sent: Friday, February 12, 2016
2017 Jun 20
2
CloneFunctionInto produces invalid debug info
I was just going to say: With well-formed debug info it should create a deep copy up until the DISubprogram, but no further. But because the DISubprogram linked to the Function is missing the special handling of the DISubprogram (that would prohibit cloning the DICompileUnit is side-stepped).
But then I remembered the discussion we had in
2017 Jun 19
2
CloneFunctionInto produces invalid debug info
- old Keno
+current Keno
> On Jun 19, 2017, at 2:59 PM, Adrian Prantl <aprantl at apple.com> wrote:
>
> In your example the instructions in the cloned function have debug locations belonging to a different function, and the function itself is missing a DISubprogram metadata attachment.
>
>> (lldb) p OldFunc->dump()
>>
>> ; Function Attrs: nounwind optsize
2016 Feb 11
2
CloneFunction during LTO leads to seg fault?
y
> On Feb 11, 2016, at 8:00 AM, Scott A. Carr <carr27 at purdue.edu> wrote:
>
> Hello again,
>
> I've narrowed down my issue to a small test case. The core of the issue is that CloneFunction (with ModuleLevelChanges=true) on a function that has had other functions inlined into it generates orphan debug info metadata nodes. Then when this module is emitted, DwarfDebug
2017 Jun 16
2
CloneFunctionInto produces invalid debug info
The if you are cloning into the same LLVM module the CU should not cloned. If don't mind sharing your code, I can try to help diagnose why the CU gets cloned... just send me a patch that applies to trunk and instructions.
-- adrian
> On Jun 16, 2017, at 1:54 PM, Sergei Larin <slarin at codeaurora.org> wrote:
>
> Sorry… It takes a pass that was not accepted for upstreaming….
2006 May 16
1
[LLVMdev] CloneModule ValueMap
After cloning a Module with CloneModule, there doesn't seem to be any
easy way to convert a Value pointing into the old Module to a Value
pointing into the new one.
The CloneModule implementation already has to keep such a mapping
internally, so I've written a patch that exposes it as a second inout
parameter to CloneModule(), with the one param version being a simple
wrapper for backward
2017 Jun 15
3
CloneFunctionInto produces invalid debug info
Can you send me a patch with instructions to reproduce? I can take a look.
-- adrian
> On Jun 15, 2017, at 2:23 PM, Sergei Larin <slarin at codeaurora.org> wrote:
>
> Yes, it does for us. My tree is couple days off the tip, and I see it there.
>
> Sergei
>
> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Keno Fischer via llvm-dev
> Sent:
2018 Jan 12
2
StripDeadDebugInfo for static inline functions.
Hi all,
I would like to understand the strip-dead-debug-info transformation.
In my test case there is a static inline function with two local variables.
It appears that the function is already inlined before
strip-dead-debug-info starts its work. As a result the DICompileUnit is
cleaned and its subprograms list has no reference to the DISubprogram for
the inlined function, but as there is
2011 Aug 13
1
[LLVMdev] patch: CloneModule resets GlobalVariable address space
Hi,
I found the following bug in llvm::CloneModule (svn, head revision).
When copying over global variables the address space is reset to
default. The patch changes that behavior by using the other
GlobalVariable constructor that explicitely includes that information.
Regards,
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name:
2018 Jan 12
2
StripDeadDebugInfo for static inline functions.
Hi Arsen, we are beyond what I understand about how metadata operates. Maybe Adrian or David knows.
--paulr
From: Arsen Hakobyan [mailto:hakobyan.ars at gmail.com]
Sent: Friday, January 12, 2018 12:16 PM
To: Robinson, Paul
Cc: llvm-dev at lists.llvm.org; David Blaikie
Subject: Re: [llvm-dev] StripDeadDebugInfo for static inline functions.
Just one update:
the function causing the segmentation
2018 Jan 12
2
StripDeadDebugInfo for static inline functions.
Hi Paul,
Thanks for your response.
Let me actually post more details visualizing my case. Assuming that can
help.
so the IR before the opt tool is running is:
; Function Attrs: nounwind
define i16 @main() #0 !dbg !13 {
entry:
%retval = alloca i16, align 1
...
}
; Function Attrs: inlinehint nounwind
define internal void @delay(i16 %d) #4 !dbg !69 {
entry:
%d.addr = alloca i16,
2018 Jan 12
0
StripDeadDebugInfo for static inline functions.
I'm not as familiar with all the ins and outs of metadata as maybe I should be, but ultimately the inlined function should have a DWARF description contained within the description of the caller (which is why you're seeing the call to constructAbstractSubprogramScopeDIE). That suggests that the DISubprogram for the inlined function ought to remain, and its scope should be the
2018 Jan 12
0
StripDeadDebugInfo for static inline functions.
Just one update:
the function causing the segmentation fault is the following:
359 void DwarfDebug::constructAbstractSubprogramScopeDIE(LexicalScope
*Scope) {
360 assert(Scope && Scope->getScopeNode());
361 assert(Scope->isAbstractScope());
362 assert(!Scope->getInlinedAt());
363
364 const MDNode *SP = Scope->getScopeNode();
365
366
2018 Jan 14
0
StripDeadDebugInfo for static inline functions.
Thanks Paul,
Hi Adrian and David I would really appreciate any comments, thoughts
assumptions.
If additional information is needed please let me know.
Regards,
Arsen
On Sat, Jan 13, 2018 at 2:54 AM, Robinson, Paul <paul.robinson at sony.com>
wrote:
> Hi Arsen, we are beyond what I understand about how metadata operates.
> Maybe Adrian or David knows.
>
> --paulr
>
>
2016 Feb 06
3
Reducing DWARF emitter memory consumption
On Fri, Feb 5, 2016 at 5:56 PM, Mehdi Amini via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
> On Feb 5, 2016, at 5:53 PM, Eric Christopher <echristo at gmail.com> wrote:
>
>
>
> On Fri, Feb 5, 2016 at 5:51 PM Mehdi Amini via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>>
>> > On Feb 5, 2016, at 5:40 PM, Peter Collingbourne
2018 Jan 15
1
StripDeadDebugInfo for static inline functions.
+ Adrian
+ David
Hi Arsen,
This sounds like a bug to me. Have you tried reproducing it on trunk? For instance, I see that the relation between DICompileUnit and DISubprogram was changed in the meantime (https://reviews.llvm.org/D19034 <https://reviews.llvm.org/D19034>).
If this no longer occurs on master you could bisect the compiler to find the commit(s) that fix this and consider
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Thu, Mar 29, 2012 at 01:50:58PM -0500, Sergei Larin wrote:
> Tom,
>
> What is in your isSchedulingBoundary? If it contains isLabel you might
> need to disable that assert:
>
> assert(!MI->isTerminator() && !MI->isLabel() &&
> "Cannot schedule terminators or labels!");
>
> Sergei Larin
>
> --
> Qualcomm
2014 Jun 13
2
[LLVMdev] Looking for a fix to memory leak in DWARF support
Eric,
Let me clarify it a bit... without type uniqueing for LTO + debug will I have a highly inefficient IR representation or incorrect debug info? If debug info for LTO is known to be non-useful or ambiguous or flat wrong - there is no point in fixing its emission... or will it still be practical and if I manage to improve it somewhat the customer will still have some value-add by using it?
2014 Jun 13
4
[LLVMdev] Looking for a fix to memory leak in DWARF support
David,
Thanks for the quick response...
No, at this point I am just getting into the issue... I assume it is a leak, but no clear proof yet. I was hoping it was an obvious thing since I recall a discussion about it a while ago... but maybe I am just confused.
Was your work for compressing DWARF data motivated by a certain inefficiency in debug info representation? Did it result in
2011 Nov 29
2
[LLVMdev] [llvm-commits] Bottom-Up Scheduling?
Sergei,
I would say that each target has its own scheduling strategy that has changed considerably over time. We try to maximize code reuse across targets, but it's not easy and done ad hoc. The result is confusing code that makes it difficult to understand the strategy for any particular target.
The right thing to do is:
1) Make it as easy as possible to understand how scheduling works for