Displaying 6 results from an estimated 6 matches for "modulelevelchanges".
2016 Feb 09
2
CloneFunction during LTO leads to seg fault?
...mall pass [1].
>>
>> If I run this pass with opt, I get the expected result (i.e. a valid program that calls main twice). If I run the pass during LTO, ld seg faults. Here is a pastebin of when ld seg faults in lldb [2].
>>
>> If I set the third parameter of CloneFunction (ModuleLevelChanges) to false, then then compilation will complete -- but I lose debugging information in the cloned function. I really want to preserve the debug info.
>>
>> Any idea what is wrong? Is this a bug? Usually when I screw up the module the verifier catches the problem. This is getting to I...
2016 Feb 09
2
CloneFunction during LTO leads to seg fault?
...blem so that it occurs in this small pass [1].
If I run this pass with opt, I get the expected result (i.e. a valid
program that calls main twice). If I run the pass during LTO, ld seg
faults. Here is a pastebin of when ld seg faults in lldb [2].
If I set the third parameter of CloneFunction (ModuleLevelChanges) to
false, then then compilation will complete -- but I lose debugging
information in the cloned function. I really want to preserve the debug
info.
Any idea what is wrong? Is this a bug? Usually when I screw up the
module the verifier catches the problem. This is getting to I think
CodeG...
2012 Apr 29
0
[LLVMdev] Bug in Cloning.h?
...MESSAGE-----
Hash: SHA1
Hi all,
unless I overlook something, the second version of CloneFunction()
(from http://llvm.org/doxygen/Cloning_8h_source.html):
00114 Function *CloneFunction(const Function *F,
00115 ValueToValueMapTy &VMap,
00116 bool ModuleLevelChanges,
00117 ClonedCodeInfo *CodeInfo = 0);
00118
00119 /// CloneFunction - Version of the function that doesn't need the VMap.
00120 ///
00121 inline Function *CloneFunction(const Function *F, ClonedCodeInfo *CodeInfo = 0){
00122 ValueToValueMapTy VMap;
00123 return Clone...
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 crashes.
>
> The C program is here [1]. Note that the inliner should inline add into main.
>
> If compile that C program with &qu...
2016 Apr 20
2
Dangling debug value or bug in argument elimination pass?
...34-0410-b5e6-96231b3b80d8
we will have stale DISubprogram because RemapInstruction called from CloneFunctionInto() (here)
// Loop over all instructions, fixing each one as we find it...
for (Instruction &II : *BB) {
RemapInstruction(&II, VMap,
ModuleLevelChanges ? RF_None : RF_NoModuleLevelChanges,
TypeMapper, Materializer);
}
…will actually skip over “metadata i8* null” operands of “call void @llvm.dbg.value” and will not update correspondent debug records… Now the first time verifier takes a look at this, we got an assert...
2016 Apr 15
3
Dangling debug value or bug in argument elimination pass?
I will start from afar… When a dead function argument is removed, should we keep around the debug info for it?
I have the following case:
define internal fastcc void @foo(i8* %aa, i8* %reg, i8* %field, i32 %bb, ...) unnamed_addr #3 !dbg !28 {
entry:
call void @llvm.dbg.value(metabb i8* %aa, i64 0, metabb !34, metabb !47), !dbg !57
call void @llvm.dbg.value(metabb i8* %reg, i64 0,