<html>
<head>
<base href="https://bugs.freedesktop.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 - GlobalCSE Pass moves phi instructions"
href="https://bugs.freedesktop.org/show_bug.cgi?id=101371">101371</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>GlobalCSE Pass moves phi instructions
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/DRI/nouveau
</td>
</tr>
<tr>
<th>Assignee</th>
<td>nouveau@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>karolherbst@gmail.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>nouveau@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=131843" name="attach_131843" title="frag.tgsi">attachment 131843</a> <a href="attachment.cgi?id=131843&action=edit" title="frag.tgsi">[details]</a></span>
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@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@entry=0x52ca18 "q->op != OP_PHI || p->op == OP_PHI",
file=file@entry=0x52c968
"../../../../../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp",
line=line@entry=219,
function=function@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</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>