Commit bec21fe9 by Ben Clayton

Reactor: Do not start the unreachable block with Unreachable

The LLVM Unreachable instruction is a terminator instruction. It is illegal to place any instructions after this in the same block. Bug: b/131914569 Change-Id: I6dd4ca4f8ca911dc94ba5674db598078060ef795 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30453Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarBen Clayton <bclayton@google.com>
parent 97c13ad1
......@@ -4196,15 +4196,15 @@ namespace rr
void Return()
{
Nucleus::createRetVoid();
// Place any unreachable instructions in an unreferenced block.
Nucleus::setInsertBlock(Nucleus::createBasicBlock());
Nucleus::createUnreachable();
}
void Return(RValue<Int> ret)
{
Nucleus::createRet(ret.value);
// Place any unreachable instructions in an unreferenced block.
Nucleus::setInsertBlock(Nucleus::createBasicBlock());
Nucleus::createUnreachable();
}
void branch(RValue<Bool> cmp, BasicBlock *bodyBB, BasicBlock *endBB)
......
......@@ -2973,8 +2973,8 @@ namespace rr
{
RR_DEBUG_INFO_UPDATE_LOC();
Nucleus::createRet(Nucleus::createLoad(ret.address, Pointer<T>::getType()));
// Place any unreachable instructions in an unreferenced block.
Nucleus::setInsertBlock(Nucleus::createBasicBlock());
Nucleus::createUnreachable();
}
template<class T>
......@@ -2982,8 +2982,8 @@ namespace rr
{
RR_DEBUG_INFO_UPDATE_LOC();
Nucleus::createRet(ret.value);
// Place any unreachable instructions in an unreferenced block.
Nucleus::setInsertBlock(Nucleus::createBasicBlock());
Nucleus::createUnreachable();
}
template<typename Return, typename... Arguments>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment