Don't return values from terminator instructions.
All LLVM instructions are LLVM values, but in the case of terminator
instructions their value is meaningless, and we don't use them.
Bug swiftshader:10
Change-Id: I9eb71e1dcea2614cb810021dfbf3c8908a7e2510
Reviewed-on: https://swiftshader-review.googlesource.com/7355
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index fb1cf03..4069523 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -319,28 +319,28 @@
return V(&*args);
}
- Value *Nucleus::createRetVoid()
+ void Nucleus::createRetVoid()
{
x86::emms();
- return V(::builder->CreateRetVoid());
+ ::builder->CreateRetVoid();
}
- Value *Nucleus::createRet(Value *v)
+ void Nucleus::createRet(Value *v)
{
x86::emms();
- return V(::builder->CreateRet(v));
+ ::builder->CreateRet(v);
}
- Value *Nucleus::createBr(BasicBlock *dest)
+ void Nucleus::createBr(BasicBlock *dest)
{
- return V(::builder->CreateBr(dest));
+ ::builder->CreateBr(dest);
}
- Value *Nucleus::createCondBr(Value *cond, BasicBlock *ifTrue, BasicBlock *ifFalse)
+ void Nucleus::createCondBr(Value *cond, BasicBlock *ifTrue, BasicBlock *ifFalse)
{
- return V(::builder->CreateCondBr(cond, ifTrue, ifFalse));
+ ::builder->CreateCondBr(cond, ifTrue, ifFalse);
}
Value *Nucleus::createAdd(Value *lhs, Value *rhs)
@@ -683,9 +683,9 @@
reinterpret_cast<SwitchInst*>(Switch)->addCase(llvm::ConstantInt::get(Type::getInt32Ty(*::context), Case, true), Branch);
}
- Value *Nucleus::createUnreachable()
+ void Nucleus::createUnreachable()
{
- return V(::builder->CreateUnreachable());
+ ::builder->CreateUnreachable();
}
Value *Nucleus::createSwizzle(Value *val, unsigned char select)