[LLVMdev] Extract Loop Failing
Ryan Taylor
ryta1203 at gmail.com
Thu Jan 12 12:27:21 PST 2012
if (shouldExtractLoop) {
if (ExtractLoop(DT, L, AggregateArgs) != 0) {
errs()<<"Extracting, now deleting loop from queue\n";
Changed = true;
if (L->getParentLoop()) {
LPM.deleteLoopFromQueue(L);
}
errs()<<"Extracting Loop
"<<L->getHeader()->getName().str()<<"\n";
}
}
On Thu, Jan 12, 2012 at 12:23 PM, Cameron Zwarich <zwarich at apple.com> wrote:
> How do you expect people to be able to tell you if you are using it
> properly if they can't see how you are using it?
>
> Cameron
>
> On Jan 12, 2012, at 12:22 PM, Ryan Taylor wrote:
>
> I'm not sure it's a bug. If I don't know if I am properly using it then
> how would I know it's a bug and not simply a user issue? If it sounds like
> a bug to you then I will file it. :)
>
> On Thu, Jan 12, 2012 at 12:18 PM, Cameron Zwarich <zwarich at apple.com>wrote:
>
>> Filing a bug with a test case would be a good start.
>>
>> Cameron
>>
>> On Jan 12, 2012, at 12:14 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>>
>> It looks like this problem only exists on nested loops, ideas?
>>
>>
>> On Thu, Jan 12, 2012 at 11:44 AM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>>
>>> Is it not a good idea to try and extract loops that have multiple exits?
>>>
>>>
>>> On Thu, Jan 12, 2012 at 10:44 AM, Ryan Taylor <ryta1203 at gmail.com>wrote:
>>>
>>>> I am trying to use ExtractLoop() but I am getting segFaults:
>>>>
>>>> 0 opt 0x00000000008edc2f
>>>> 1 opt 0x00000000008edfda
>>>> 2 libpthread.so.0 0x00007ffe21203c60
>>>> 3 opt 0x0000000000895ed9 llvm::Value::getName() const + 9
>>>> 4 LLVMEXITCDFG.so 0x00007ffe202b80d7
>>>> 5 opt 0x00000000006fc6e7
>>>> llvm::LPPassManager::runOnFunction(llvm::Function&) + 1143
>>>> 6 opt 0x0000000000882557
>>>> llvm::FPPassManager::runOnFunction(llvm::Function&) + 551
>>>> 7 opt 0x00000000008825db
>>>> llvm::FPPassManager::runOnModule(llvm::Module&) + 75
>>>> 8 opt 0x0000000000882197
>>>> llvm::MPPassManager::runOnModule(llvm::Module&) + 503
>>>> 9 opt 0x0000000000882299
>>>> llvm::PassManagerImpl::run(llvm::Module&) + 137
>>>> 10 opt 0x00000000004ac451 main + 4881
>>>> 11 libc.so.6 0x00007ffe204d9eff __libc_start_main + 255
>>>> 12 opt 0x000000000049f5f9
>>>> Stack dump:
>>>> 0. Program arguments: opt -load
>>>> /home/ryan/llvm/llvm_core/llvm-2.9/Release/lib/LLVMEXITCDFG.so -exitPass
>>>> fix_fft.c.bc -o fix_fft.c.bc
>>>> 1. Running pass 'Function Pass Manager' on module 'fix_fft.c.bc'.
>>>> 2. Running pass 'Loop Pass Manager' on function '@fix_fft'
>>>> 3. Running pass 'CDFG exitPass' on basic block '%bb3'
>>>> ./optScript.sh: line 46: 2637 Segmentation fault opt -load
>>>> /home/ryan/llvm/llvm_core/llvm-2.9/Release/lib/LLVMEXITCDFG.so -exitPass
>>>> $1.bc -o ${1}.bc
>>>>
>>>> If I remove the "deleteLoopFromQueue" function call, it goes over all
>>>> the loops (supposedly extracting them) and then segFaults.
>>>>
>>>> How should I properly use this function?
>>>>
>>>
>>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120112/61117da3/attachment.html>
More information about the llvm-dev
mailing list