[Nouveau] [Bug 101371] New: GlobalCSE Pass moves phi instructions

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Jun 10 17:59:33 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=101371

            Bug ID: 101371
           Summary: GlobalCSE Pass moves phi instructions
           Product: Mesa
           Version: git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/nouveau
          Assignee: nouveau at lists.freedesktop.org
          Reporter: karolherbst at gmail.com
        QA Contact: nouveau at lists.freedesktop.org

Created attachment 131843
  --> https://bugs.freedesktop.org/attachment.cgi?id=131843&action=edit
frag.tgsi

In the game "Renowned Explorers: International Society" an assertion was hit
within codegen, because GlobalCSE wanted to move a phi instruction after a join
instruction, which is illegal.

backtrace:
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00007ffff676d54a in __GI_abort () at abort.c:89
#2  0x00007ffff6764eb7 in __assert_fail_base (fmt=<optimized out>,
assertion=assertion at entry=0x52ca18 "q->op != OP_PHI || p->op == OP_PHI",
file=file at entry=0x52c968
"../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp", 
    line=line at entry=219, 
    function=function at entry=0x52ce80
<nv50_ir::BasicBlock::insertAfter(nv50_ir::Instruction*,
nv50_ir::Instruction*)::__PRETTY_FUNCTION__> "void
nv50_ir::BasicBlock::insertAfter(nv50_ir::Instruction*,
nv50_ir::Instruction*)")
    at assert.c:92
#3  0x00007ffff6764f62 in __GI___assert_fail (assertion=0x52ca18 "q->op !=
OP_PHI || p->op == OP_PHI", file=0x52c968
"../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp", line=219, 
    function=0x52ce80 <nv50_ir::BasicBlock::insertAfter(nv50_ir::Instruction*,
nv50_ir::Instruction*)::__PRETTY_FUNCTION__> "void
nv50_ir::BasicBlock::insertAfter(nv50_ir::Instruction*,
nv50_ir::Instruction*)") at assert.c:101
#4  0x000000000041f0a0 in nv50_ir::BasicBlock::insertAfter (this=0x82fd10,
p=0x818ca0, q=0x81d0c0) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:219
#5  0x00000000004554c0 in nv50_ir::GlobalCSE::visit (this=0x7ffffffe7b70,
bb=0x82fd10) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:3466
#6  0x00000000004200fd in nv50_ir::Pass::doRun (this=0x7ffffffe7b70,
func=0x7bc1a0, ordered=false, skipPhi=false) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:495
#7  0x000000000041ff05 in nv50_ir::Pass::doRun (this=0x7ffffffe7b70,
prog=0x7bc000, ordered=false, skipPhi=false) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:466
#8  0x000000000041fe60 in nv50_ir::Pass::run (this=0x7ffffffe7b70,
prog=0x7bc000, ordered=false, skipPhi=false) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:457
#9  0x00000000004561ed in nv50_ir::Program::optimizeSSA (this=0x7bc000,
level=3) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:3725
#10 0x0000000000416adf in nv50_ir_generate_code (info=0x7ffffffe87e0) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir.cpp:1256
#11 0x0000000000402e33 in nouveau_codegen (chipset=230, type=1,
tokens=0x7fffffff9420, size=0x7ffffffe941c, code=0x7ffffffe9410) at
../../../../../src/gallium/drivers/nouveau/nouveau_compiler.c:126
#12 0x0000000000403210 in main (argc=4, argv=0x7fffffffd528) at
../../../../../src/gallium/drivers/nouveau/nouveau_compiler.c:206

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170610/f2222815/attachment.html>


More information about the Nouveau mailing list