From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ@public.gmane.org
Subject: [Bug 101371] New: GlobalCSE Pass moves phi instructions
Date: Sat, 10 Jun 2017 17:59:33 +0000
Message-ID:
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@lists.freedesktop.org
Reporter
karolherbst@gmail.com
QA Contact
nouveau@lists.freedesktop.org
Created attachment 131843 [deta=
ils]
frag.tgsi
In the game "Renowned Explorers: International Society" an assert=
ion was hit
within codegen, because GlobalCSE wanted to move a phi instruction after a =
join
instruction, which is illegal.
backtrace:
#0 __GI_raise (sig=3Dsig@entry=3D6) at ../sysdeps/unix/sysv/linux/rais=
e.c:58
#1 0x00007ffff676d54a in __GI_abort () at abort.c:89
#2 0x00007ffff6764eb7 in __assert_fail_base (fmt=3D<optimized out>,
assertion=3Dassertion@entry=3D0x52ca18 "q->op !=3D OP_PHI || p-=
>op =3D=3D OP_PHI",
file=3Dfile@entry=3D0x52c968
"../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp&quo=
t;,=20
line=3Dline@entry=3D219,=20
function=3Dfunction@entry=3D0x52ce80
<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=3D0x52ca18 "q-=
>op !=3D
OP_PHI || p->op =3D=3D OP_PHI", file=3D0x52c968
"../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp&quo=
t;, line=3D219,=20
function=3D0x52ce80 <nv50_ir::BasicBlock::insertAfter(nv50_ir::Instr=
uction*,
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=3D0x82fd10,
p=3D0x818ca0, q=3D0x81d0c0) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:219
#5 0x00000000004554c0 in nv50_ir::GlobalCSE::visit (this=3D0x7ffffffe7b70,
bb=3D0x82fd10) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:3466
#6 0x00000000004200fd in nv50_ir::Pass::doRun (this=3D0x7ffffffe7b70,
func=3D0x7bc1a0, ordered=3Dfalse, skipPhi=3Dfalse) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:495
#7 0x000000000041ff05 in nv50_ir::Pass::doRun (this=3D0x7ffffffe7b70,
prog=3D0x7bc000, ordered=3Dfalse, skipPhi=3Dfalse) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:466
#8 0x000000000041fe60 in nv50_ir::Pass::run (this=3D0x7ffffffe7b70,
prog=3D0x7bc000, ordered=3Dfalse, skipPhi=3Dfalse) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp:457
#9 0x00000000004561ed in nv50_ir::Program::optimizeSSA (this=3D0x7bc000,
level=3D3) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:3725
#10 0x0000000000416adf in nv50_ir_generate_code (info=3D0x7ffffffe87e0) at
../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir.cpp:1256
#11 0x0000000000402e33 in nouveau_codegen (chipset=3D230, type=3D1,
tokens=3D0x7fffffff9420, size=3D0x7ffffffe941c, code=3D0x7ffffffe9410) at
../../../../../src/gallium/drivers/nouveau/nouveau_compiler.c:126
#12 0x0000000000403210 in main (argc=3D4, argv=3D0x7fffffffd528) at
../../../../../src/gallium/drivers/nouveau/nouveau_compiler.c:206