<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Polly-ACC: Loop without a header."
href="https://bugs.llvm.org/show_bug.cgi?id=33208">33208</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Polly-ACC: Loop without a header.
</td>
</tr>
<tr>
<th>Product</th>
<td>Polly
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>All
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Optimizer
</td>
</tr>
<tr>
<th>Assignee</th>
<td>polly-dev@googlegroups.com
</td>
</tr>
<tr>
<th>Reporter</th>
<td>llvm@meinersbur.de
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>During code generation, Polly-ACC removes all blocks from some loops
(GPUNodeBuilder::clearLoops). That is, the loops don't even have a header
anymore, which is assumed by ScalarEvolution. ScalarEvolution calls
Loop::getHeader() on such a loops, returning an uninitialized/undefined
pointer.
This happens on 4 different Polly-ACC regression tests, one shown below. Polly
r304151.
Found using msvc's debug STL.
********************
FAIL: Polly :: GPGPU/shared-memory-two-dimensional.ll (111 of 929)
******************** TEST 'Polly :: GPGPU/shared-memory-two-dimensional.ll'
FAILED ********************
Script:
--
opt -polly-process-unprofitable -polly-remarks-minimal
-polly-use-llvm-names -polly-codegen-ppcg -polly-acc-dump-code
-polly-acc-use-shared -disable-output < C:\Users\Meinersbur\src\llvm\tool
s\polly\test\GPGPU\shared-memory-two-dimensional.ll | FileCheck
-check-prefix=CODE
C:\Users\Meinersbur\src\llvm\tools\polly\test\GPGPU\shared-memory-two-dimensional.ll
opt -polly-process-unprofitable -polly-remarks-minimal
-polly-use-llvm-names -polly-codegen-ppcg -polly-acc-use-shared
-disable-output -polly-acc-dump-kernel-ir < C:\Users\Meinersbur\src\llvm
\tools\polly\test\GPGPU\shared-memory-two-dimensional.ll | FileCheck
-check-prefix=KERNEL
C:\Users\Meinersbur\src\llvm\tools\polly\test\GPGPU\shared-memory-two-dimensional.ll
--
Exit Code: 2147483651
Command Output (stdout):
--
$ "opt" "-polly-process-unprofitable" "-polly-remarks-minimal"
"-polly-use-llvm-names" "-polly-codegen-ppcg" "-polly-acc-dump-code"
"-polly-acc-use-shared" "-disable-output"
# command stderr:
#0 0x50892f06 (C:\WINDOWS\SYSTEM32\MSVCP140D.dll+0x32f06)
#1 0x00b92612 std::_Vector_const_iterator<class std::_Vector_val<struct
std::_Simple_types<class llvm::BasicBlock *> > >::operator*(void)const
c:\program files (x86)\microsoft visual studio 14.0\vc\include\vector:73:0
#2 0x00b931d0 std::vector<class llvm::BasicBlock *,class std::allocator<class
llvm::BasicBlock *> >::front(void)const c:\program files (x86)\microsoft
visual studio 14.0\vc\include\vector:1262:0
#3 0x00b93489 llvm::LoopBase<class llvm::BasicBlock,class
llvm::Loop>::getHeader(void)const
c:\users\meinersbur\src\llvm\include\llvm\analysis\loopinfo.h:102:0
#4 0x0119e1d5 PushLoopPHIs
c:\users\meinersbur\src\llvm\lib\analysis\scalarevolution.cpp:5777:0
#5 0x01194bd0 llvm::ScalarEvolution::forgetLoop(class llvm::Loop const *)
c:\users\meinersbur\src\llvm\lib\analysis\scalarevolution.cpp:5893:0
#6 0x01194d70 llvm::ScalarEvolution::forgetLoop(class llvm::Loop const *)
c:\users\meinersbur\src\llvm\lib\analysis\scalarevolution.cpp:5916:0
#7 0x029a0232 GPUNodeBuilder::clearLoops(class llvm::Function *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\ppcgcodegeneration.cpp:1175:0
#8 0x0299dc57 GPUNodeBuilder::createKernel(struct isl_ast_node *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\ppcgcodegeneration.cpp:1407:0
#9 0x0299b19b GPUNodeBuilder::createUser(struct isl_ast_node *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\ppcgcodegeneration.cpp:980:0
#10 0x02a47192 IslNodeBuilder::create(struct isl_ast_node *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\islnodebuilder.cpp:939:0
#11 0x02a4ba79 IslNodeBuilder::createBlock(struct isl_ast_node *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\islnodebuilder.cpp:919:0
#12 0x02a471ae IslNodeBuilder::create(struct isl_ast_node *)
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\islnodebuilder.cpp:942:0
#13 0x029bce9b `anonymous namespace'::PPCGCodeGeneration::generateCode
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\ppcgcodegeneration.cpp:2660:0
#14 0x029c0c48 `anonymous namespace'::PPCGCodeGeneration::runOnScop
c:\users\meinersbur\src\llvm\tools\polly\lib\codegen\ppcgcodegeneration.cpp:2691:0
#15 0x029e8079 polly::ScopPass::runOnRegion(class llvm::Region *,class
llvm::RGPassManager &)
c:\users\meinersbur\src\llvm\tools\polly\lib\analysis\scoppass.cpp:26:0
#16 0x0105643c llvm::RGPassManager::runOnFunction(class llvm::Function &)
c:\users\meinersbur\src\llvm\lib\analysis\regionpass.cpp:97:0
#17 0x01a27d35 llvm::FPPassManager::runOnFunction(class llvm::Function &)
c:\users\meinersbur\src\llvm\lib\ir\legacypassmanager.cpp:1519:0
#18 0x01a27eda llvm::FPPassManager::runOnModule(class llvm::Module &)
c:\users\meinersbur\src\llvm\lib\ir\legacypassmanager.cpp:1540:0
#19 0x01a28f1e `anonymous namespace'::MPPassManager::runOnModule
c:\users\meinersbur\src\llvm\lib\ir\legacypassmanager.cpp:1596:0
#20 0x01a295fa llvm::legacy::PassManagerImpl::run(class llvm::Module &)
c:\users\meinersbur\src\llvm\lib\ir\legacypassmanager.cpp:1699:0
#21 0x01a23c3d llvm::legacy::PassManager::run(class llvm::Module &)
c:\users\meinersbur\src\llvm\lib\ir\legacypassmanager.cpp:1731:0
#22 0x00ba5bd8 main c:\users\meinersbur\src\llvm\tools\opt\opt.cpp:749:0
#23 0x031bf4de invoke_main
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:64:0
#24 0x031bf360 _scrt_common_main_seh
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253:0
#25 0x031bf1fd _scrt_common_main
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:296:0
#26 0x031bf4f8 mainCRTStartup
f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp:17:0
#27 0x767d8744 (C:\WINDOWS\System32\KERNEL32.DLL+0x18744)
#28 0x7707587d (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6587d)
#29 0x7707584d (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6584d)</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>