[llvm] d388222 - InstCombine: Drop some typed pointer bitcast handling
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 31 05:05:17 PDT 2023
Author: Matt Arsenault
Date: 2023-07-31T08:05:12-04:00
New Revision: d388222be2733ad2a5f677ea5e7999356954e458
URL: https://github.com/llvm/llvm-project/commit/d388222be2733ad2a5f677ea5e7999356954e458
DIFF: https://github.com/llvm/llvm-project/commit/d388222be2733ad2a5f677ea5e7999356954e458.diff
LOG: InstCombine: Drop some typed pointer bitcast handling
Added:
Modified:
llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index 81f48c28ab3604..063ce88556f37f 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -3987,8 +3987,6 @@ bool InstCombinerImpl::transformConstExprCastCall(CallBase &Call) {
Instruction *
InstCombinerImpl::transformCallThroughTrampoline(CallBase &Call,
IntrinsicInst &Tramp) {
- Value *Callee = Call.getCalledOperand();
- Type *CalleeTy = Callee->getType();
FunctionType *FTy = Call.getFunctionType();
AttributeList Attrs = Call.getAttributes();
@@ -4085,12 +4083,8 @@ InstCombinerImpl::transformCallThroughTrampoline(CallBase &Call,
// Replace the trampoline call with a direct call. Let the generic
// code sort out any function type mismatches.
- FunctionType *NewFTy = FunctionType::get(FTy->getReturnType(), NewTypes,
- FTy->isVarArg());
- Constant *NewCallee =
- NestF->getType() == PointerType::getUnqual(NewFTy) ?
- NestF : ConstantExpr::getBitCast(NestF,
- PointerType::getUnqual(NewFTy));
+ FunctionType *NewFTy =
+ FunctionType::get(FTy->getReturnType(), NewTypes, FTy->isVarArg());
AttributeList NewPAL =
AttributeList::get(FTy->getContext(), Attrs.getFnAttrs(),
Attrs.getRetAttrs(), NewArgAttrs);
@@ -4100,19 +4094,18 @@ InstCombinerImpl::transformCallThroughTrampoline(CallBase &Call,
Instruction *NewCaller;
if (InvokeInst *II = dyn_cast<InvokeInst>(&Call)) {
- NewCaller = InvokeInst::Create(NewFTy, NewCallee,
- II->getNormalDest(), II->getUnwindDest(),
- NewArgs, OpBundles);
+ NewCaller = InvokeInst::Create(NewFTy, NestF, II->getNormalDest(),
+ II->getUnwindDest(), NewArgs, OpBundles);
cast<InvokeInst>(NewCaller)->setCallingConv(II->getCallingConv());
cast<InvokeInst>(NewCaller)->setAttributes(NewPAL);
} else if (CallBrInst *CBI = dyn_cast<CallBrInst>(&Call)) {
NewCaller =
- CallBrInst::Create(NewFTy, NewCallee, CBI->getDefaultDest(),
+ CallBrInst::Create(NewFTy, NestF, CBI->getDefaultDest(),
CBI->getIndirectDests(), NewArgs, OpBundles);
cast<CallBrInst>(NewCaller)->setCallingConv(CBI->getCallingConv());
cast<CallBrInst>(NewCaller)->setAttributes(NewPAL);
} else {
- NewCaller = CallInst::Create(NewFTy, NewCallee, NewArgs, OpBundles);
+ NewCaller = CallInst::Create(NewFTy, NestF, NewArgs, OpBundles);
cast<CallInst>(NewCaller)->setTailCallKind(
cast<CallInst>(Call).getTailCallKind());
cast<CallInst>(NewCaller)->setCallingConv(
@@ -4128,7 +4121,6 @@ InstCombinerImpl::transformCallThroughTrampoline(CallBase &Call,
// Replace the trampoline call with a direct call. Since there is no 'nest'
// parameter, there is no need to adjust the argument list. Let the generic
// code sort out any function type mismatches.
- Constant *NewCallee = ConstantExpr::getBitCast(NestF, CalleeTy);
- Call.setCalledFunction(FTy, NewCallee);
+ Call.setCalledFunction(FTy, NestF);
return &Call;
}
More information about the llvm-commits
mailing list