mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-06 10:38:54 +00:00
preserve calling conventions when hacking on code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22024 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
16d0db2da8
commit
e43702695d
@ -188,7 +188,8 @@ bool ADCE::doADCE() {
|
||||
// after it to the normal destination.
|
||||
std::vector<Value*> Args(II->op_begin()+3, II->op_end());
|
||||
std::string Name = II->getName(); II->setName("");
|
||||
Instruction *NewCall = new CallInst(F, Args, Name, II);
|
||||
CallInst *NewCall = new CallInst(F, Args, Name, II);
|
||||
NewCall->setCallingConv(II->getCallingConv());
|
||||
II->replaceAllUsesWith(NewCall);
|
||||
new BranchInst(II->getNormalDest(), II);
|
||||
|
||||
|
@ -4271,10 +4271,12 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) {
|
||||
if (InvokeInst *II = dyn_cast<InvokeInst>(Caller)) {
|
||||
NC = new InvokeInst(Callee, II->getNormalDest(), II->getUnwindDest(),
|
||||
Args, Caller->getName(), Caller);
|
||||
cast<InvokeInst>(II)->setCallingConv(II->getCallingConv());
|
||||
} else {
|
||||
NC = new CallInst(Callee, Args, Caller->getName(), Caller);
|
||||
if (cast<CallInst>(Caller)->isTailCall())
|
||||
cast<CallInst>(NC)->setTailCall();
|
||||
cast<CallInst>(NC)->setCallingConv(cast<CallInst>(Caller)->getCallingConv());
|
||||
}
|
||||
|
||||
// Insert a cast of the return type as necessary...
|
||||
|
Loading…
x
Reference in New Issue
Block a user