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? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120112/3dd964f7/attachment.html>
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? >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120112/24a564e6/attachment.html>
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? >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120112/cbe19056/attachment.html>