llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.29k stars 11.68k forks source link

IR BasicBlock r600 target segfault #22799

Closed llvmbot closed 8 years ago

llvmbot commented 9 years ago
Bugzilla Link 22425
Resolution FIXED
Resolved on Mar 07, 2016 10:05
Version 3.5
OS Linux
Reporter LLVM Bugzilla Contributor
CC @arsenm

Extended Description

Got segfault when trying to run Grim Fandango Remastered game for linux. gbd shows:

Program received signal SIGSEGV, Segmentation fault. llvm::BasicBlock::getTerminator (this=0x0) at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/BasicBlock.cpp:125 125 if (InstList.empty()) return nullptr; (gdb) bt

​0 llvm::BasicBlock::getTerminator (this=0x0) at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/BasicBlock.cpp:125

​1 0xf5fbe8ab in (anonymous namespace)::SIAnnotateControlFlow::handleLoopCondition (this=0x0, Cond=0xc23f9e8, Broken=0xcaa0f00)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/Target/R600/SIAnnotateControlFlow.cpp:252

​2 0xf5fbf899 in handleLoop (Term=, this=)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/Target/R600/SIAnnotateControlFlow.cpp:269

​3 (anonymous namespace)::SIAnnotateControlFlow::runOnFunction (this=0xc241240, F=...)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/Target/R600/SIAnnotateControlFlow.cpp:306

​4 0xf53769ce in llvm::FPPassManager::runOnFunction (this=0xcaa1a60, F=...)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/LegacyPassManager.cpp:1545

​5 0xf5376d75 in llvm::FPPassManager::runOnModule (this=0xcaa1a60, M=...)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/LegacyPassManager.cpp:1565

​6 0xf5377090 in runOnModule (M=..., this=)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/LegacyPassManager.cpp:1623

​7 llvm::legacy::PassManagerImpl::run (this=0xca9bf38, M=...)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/LegacyPassManager.cpp:1730

​8 0xf537724f in llvm::legacy::PassManager::run (this=0xffff70a4, M=...)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/IR/LegacyPassManager.cpp:1767

​9 0xf59adb7a in LLVMTargetMachineEmit (T=0xc23fee0, M=0xc23f530, OS=..., codegen=LLVMObjectFile, ErrorMessage=0xffff71ac)

at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/Target/TargetMachineC.cpp:217

​10 0xf59add63 in LLVMTargetMachineEmitToMemoryBuffer (T=0xc23fee0, M=0xc23f530, codegen=LLVMObjectFile, ErrorMessage=0xffff71ac,

OutMemBuf=0xffff71b4) at /usr/src/debug/sys-devel/llvm-3.5.1/llvm-3.5.1.src/lib/Target/TargetMachineC.cpp:243

​11 0xf714a1ba in radeon_llvm_compile (M=0xc23f530, binary=0xffff7254, gpu_family=0xf72d2e32 "pitcairn", dump=0)

at radeon_llvm_emit.c:156

​12 0xf71f7cc0 in si_compile_llvm (sctx=0xb308298, shader=0xca648f0, mod=0xc23f530) at si_shader.c:2561

​13 0xf71f8665 in si_pipe_shader_create (ctx=0xb308298, shader=0xca648f0) at si_shader.c:2864

​14 0xf71fe28c in si_shader_select (ctx=0xb308298, sel=0xca78940) at si_state.c:2211

​15 0xf71fe3ac in si_create_shader_state (ctx=0xb308298, state=0xca782e8, pipe_shader_type=1) at si_state.c:2243

​16 0xf6f7911e in st_translate_fragment_program (st=0x0, st@entry=0xb4791f8, stfp=0xbd4fab8, key=0xffffc024)

at ../../src/mesa/state_tracker/st_program.c:812

​17 0xf6f7a4ff in st_get_fp_variant (st=0xb4791f8, stfp=0xbd4fab8, key=0xffffc024) at ../../src/mesa/state_tracker/st_program.c:844

​18 0xf6f425a9 in update_fp (st=0xb4791f8) at ../../src/mesa/state_tracker/st_atom_shader.c:96

​19 0xf6f3f43f in st_validate_state (st=0xb4791f8) at ../../src/mesa/state_tracker/st_atom.c:233

​20 0xf6f53f54 in st_draw_vbo (ctx=0xb447de8, prims=0xffffc190, nr_prims=1, ib=0xffffc180, index_bounds_valid=0 '\000',

min_index=4294967295, max_index=4294967295, tfb_vertcount=0x0, indirect=0x0) at ../../src/mesa/state_tracker/st_draw.c:199

​21 0xf6f250d0 in vbo_handle_primitive_restart (ctx=ctx@entry=0xb447de8, prim=prim@entry=0xffffc18c, nr_prims=1, ib=0xffffc180,

index_bounds_valid=0 '\000', min_index=4294967295, max_index=4294967295) at ../../src/mesa/vbo/vbo_exec_array.c:591

​22 0xf6f26638 in vbo_validated_drawrangeelements (ctx=ctx@entry=0xb447de8, mode=mode@entry=4, index_bounds_valid=0 '\000',

start=4294967295, end=4294967295, count=6, type=5123, indices=0x0, basevertex=0, numInstances=1, baseInstance=0)
at ../../src/mesa/vbo/vbo_exec_array.c:1015

​23 0xf6f26a60 in vbo_exec_DrawElementsBaseVertex (mode=4, count=6, type=5123, indices=0x0, basevertex=0)

at ../../src/mesa/vbo/vbo_exec_array.c:1188

​24 0xf779938a in shared_dispatch_stub_702 (mode=4, count=6, type=5123, indices=0x0, basevertex=0)

at ../../src/mapi/shared-glapi/glapi_mapi_tmp.h:19225

​25 0x081b1014 in zg_RenderContext_DrawIndexedPrimitives ()

​26 0x081b2014 in zg_RenderContext_DrawPrimitives ()

​27 0x081f69b5 in zg_RendererDeferred_SmoothLightingPass() ()

​28 0x081f879a in zg_RendererDeferred_Flush() ()

​29 0x081fbe3d in zg_RendererDeferred_EnterStage_Orbis ()

​30 0x08185f23 in zg_Render_EnterStage ()

​31 0x081acf53 in zg_Platform_EndFrame ()

​32 0x0817bd39 in stdDisplay_Update ()

(gdb) list 120 getParent()->getBasicBlockList(), this); 121 } 122 123 124 TerminatorInst BasicBlock::getTerminator() {
125 if (InstList.empty()) return nullptr; 126 return dyn_cast(&InstList.back()); 127 } 128 129 const TerminatorInst
BasicBlock::getTerminator() const {

(gdb) print InstList Cannot access memory at address 0x1c

llvmbot commented 8 years ago

seems to work now.

llvm-libs 3.7.1

arsenm commented 8 years ago

Is this still a problem?