LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 30956 - [polly] isl_tab_pip.c:508: unbounded optimum
Summary: [polly] isl_tab_pip.c:508: unbounded optimum
Status: RESOLVED FIXED
Alias: None
Product: Polly
Classification: Unclassified
Component: Optimizer (show other bugs)
Version: unspecified
Hardware: PC Linux
: P normal
Assignee: Polly Development Mailinglist
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-08 19:54 PST by Eli Friedman
Modified: 2016-11-10 03:40 PST (History)
2 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eli Friedman 2016-11-08 19:54:36 PST
Testcase (reproduce with opt -polly-process-unprofitable -polly-ast):

target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "thumbv7--linux-android"

define void @f(i8* %p, i32 %fs) {
entry:
  %shr8.i320 = ashr i32 undef, 25
  %mul.i321 = shl nsw i32 %shr8.i320, 1
  %conv39 = trunc i32 %mul.i321 to i8
  %conv2.i446 = and i32 %mul.i321, 254
  %cmp236.i.i449 = icmp eq i8 %conv39, 0
  br label %if.end67

if.end67:
  %arrayidx69 = getelementptr inbounds i8, i8* %p, i32 0
  br i1 %cmp236.i.i449, label %exit, label %for.body.i596.preheader

for.body.i596.preheader:
  br label %for.body.i596

for.body.i596:
  %i.016.i586 = phi i32 [ %inc.i594, %for.body.i596 ], [ 1, %for.body.i596.preheader ]
  %arrayidx7.i593 = getelementptr inbounds i8, i8* %arrayidx69, i32 %i.016.i586
  store i8 undef, i8* %arrayidx7.i593, align 1
  %inc.i594 = add nuw nsw i32 %i.016.i586, 1
  %exitcond.i595 = icmp eq i32 %i.016.i586, %conv2.i446
  br i1 %exitcond.i595, label %loopexit, label %for.body.i596

loopexit:
  br label %exit

exit:
  ret void
}

Stack trace:
[src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:508: unbounded optimum
#0 0x0000000002a7315c llvm::sys::PrintStackTrace(llvm::raw_ostream&) [src]/llvm/lib/Support/Unix/Signals.inc:402:11
#1 0x0000000002a736b9 PrintStackTraceSignalHandler(void*) [src]/llvm/lib/Support/Unix/Signals.inc:466:1
#2 0x0000000002a705c7 llvm::sys::RunSignalHandlers() [src]/llvm/lib/Support/Signals.cpp:45:5
#3 0x0000000002a73a40 SignalHandler(int) [src]/llvm/lib/Support/Unix/Signals.inc:256:1
#4 0x00007fe396b21330 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)
#5 0x00007fe395512c37 gsignal /build/eglibc-oGUzwX/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#6 0x00007fe395516028 abort /build/eglibc-oGUzwX/eglibc-2.19/stdlib/abort.c:91:0
#7 0x0000000003776de5 isl_handle_error [src]/llvm/tools/polly/lib/External/isl/isl_ctx.c:107:1
#8 0x0000000003841451 sol_add [src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:507:5
#9 0x0000000003840ec3 find_solutions [src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:3976:15
#10 0x0000000003840568 find_solutions_main [src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:4078:34
#11 0x000000000383fec7 basic_map_partial_lexopt_base_sol [src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:4204:3
#12 0x0000000003845cba basic_map_partial_lexopt_base_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_tab_pip.c:5516:6
#13 0x000000000383c045 basic_map_partial_lexopt_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_tab_lexopt_templ.c:159:3
#14 0x000000000383bf8a isl_tab_basic_map_partial_lexopt_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_tab_lexopt_templ.c:225:2
#15 0x00000000037a497b isl_basic_map_partial_lexopt_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_map_lexopt_templ.c:35:2
#16 0x00000000037b58cd basic_map_partial_lexopt_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_map_lexopt_templ.c:95:3
#17 0x00000000037a4ba0 isl_map_partial_lexopt_aligned_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_map.c:6204:6
#18 0x00000000037a4ac0 isl_map_lexopt_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_map_lexopt_templ.c:204:2
#19 0x00000000037a4d17 isl_map_lexmin_pw_multi_aff [src]/llvm/tools/polly/lib/External/isl/isl_map_lexopt_templ.c:210:2
#20 0x000000000375b53e exact_bound [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:475:7
#21 0x000000000375af14 lower_bounds [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:588:6
#22 0x000000000375ac8b refine_generic_bounds [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1179:8
#23 0x000000000375aac2 refine_generic_split [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1287:2
#24 0x000000000375a8b2 refine_generic [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1313:8
#25 0x000000000375a3b5 create_node_scaled [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1521:10
#26 0x0000000003759d6e create_node [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1677:3
#27 0x0000000003759c52 add_node [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1812:8
#28 0x000000000375c595 add_nodes [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:1965:16
#29 0x000000000381f0b6 isl_basic_set_list_call_on_scc [src]/llvm/tools/polly/lib/External/isl/isl_list_templ.c:382:2
#30 0x000000000381ef66 isl_basic_set_list_foreach_scc [src]/llvm/tools/polly/lib/External/isl/isl_list_templ.c:436:23
#31 0x000000000375c219 generate_sorted_domains [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:2048:25
#32 0x000000000375c351 generate_sorted_domains_wrap [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:2109:7
#33 0x000000000381f0b6 isl_basic_set_list_call_on_scc [src]/llvm/tools/polly/lib/External/isl/isl_list_templ.c:382:2
#34 0x000000000381ef66 isl_basic_set_list_foreach_scc [src]/llvm/tools/polly/lib/External/isl/isl_list_templ.c:436:23
#35 0x0000000003758dc1 generate_parallel_domains [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:2162:17
#36 0x00000000037587fd generate_shifted_component_tree_base [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:3330:7
#37 0x0000000003758261 generate_shifted_component_tree [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:3552:3
#38 0x00000000037567cf generate_shifted_component [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:3616:3
#39 0x00000000037565f8 generate_next_level [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:4763:3
#40 0x000000000375717f build_ast_from_band [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:5111:9
#41 0x0000000003756ea1 build_ast_from_schedule_node [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:5604:3
#42 0x0000000003756b56 build_ast_from_child [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:5650:2
#43 0x000000000375619e build_ast_from_domain [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:5705:7
#44 0x0000000003756036 isl_ast_build_node_from_schedule [src]/llvm/tools/polly/lib/External/isl/isl_ast_codegen.c:5746:2
#45 0x0000000002ef353e polly::IslAst::init(polly::Dependences const&) [src]/llvm/tools/polly/lib/CodeGen/IslAst.cpp:438:8
#46 0x0000000002ef3a74 polly::IslAst::create(polly::Scop*, polly::Dependences const&) [src]/llvm/tools/polly/lib/CodeGen/IslAst.cpp:446:10
#47 0x0000000002ef3bef polly::IslAstInfo::runOnScop(polly::Scop&) [src]/llvm/tools/polly/lib/CodeGen/IslAst.cpp:475:7
#48 0x0000000002ef2b00 polly::ScopPass::runOnRegion(llvm::Region*, llvm::RGPassManager&) [src]/llvm/tools/polly/lib/Analysis/ScopPass.cpp:24:5
#49 0x0000000001b22441 llvm::RGPassManager::runOnFunction(llvm::Function&) [src]/llvm/lib/Analysis/RegionPass.cpp:97:20
#50 0x000000000226e4bf llvm::FPPassManager::runOnFunction(llvm::Function&) [src]/llvm/lib/IR/LegacyPassManager.cpp:1509:23
#51 0x000000000226e7d5 llvm::FPPassManager::runOnModule(llvm::Module&) [src]/llvm/lib/IR/LegacyPassManager.cpp:1530:16
#52 0x000000000226f3f3 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) [src]/llvm/lib/IR/LegacyPassManager.cpp:1586:23
#53 0x000000000226ea96 llvm::legacy::PassManagerImpl::run(llvm::Module&) [src]/llvm/lib/IR/LegacyPassManager.cpp:1689:16
#54 0x000000000226fef1 llvm::legacy::PassManager::run(llvm::Module&) [src]/llvm/lib/IR/LegacyPassManager.cpp:1720:3
#55 0x00000000008bbfb6 main [src]/llvm/tools/opt/opt.cpp:723:3
#56 0x00007fe3954fdf45 __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:321:0
#57 0x00000000008928d4 _start ([bin]/bin/opt+0x8928d4)
Stack dump:
0.      Program arguments: [bin]/bin/opt -polly-process-unprofitable -polly-ast sbrdec-reduced.ll -o /dev/null
1.      Running pass 'Function Pass Manager' on module 'sbrdec-reduced.ll'.
2.      Running pass 'Region Pass Manager' on function '@f'
3.      Running pass 'Polly - Generate an AST from the SCoP (isl)' on basic block '%if.end67'
Aborted
Comment 1 Tobias Grosser 2016-11-10 03:40:25 PST
This has been resolved in r286442.