mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
AMDGPU: Remove dead code and redundant check
Non intrinsic calls aren't really handled, and this IntrinsicInst dyn_cast checks for the function for us. llvm-svn: 275868
This commit is contained in:
parent
faeac4f290
commit
e38c89d8d7
@ -477,11 +477,6 @@ static bool tryPromoteAllocaToVector(AllocaInst *Alloca) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool isCallPromotable(CallInst *CI) {
|
static bool isCallPromotable(CallInst *CI) {
|
||||||
// TODO: We might be able to handle some cases where the callee is a
|
|
||||||
// constantexpr bitcast of a function.
|
|
||||||
if (!CI->getCalledFunction())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
|
IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
|
||||||
if (!II)
|
if (!II)
|
||||||
return false;
|
return false;
|
||||||
@ -773,28 +768,7 @@ void AMDGPUPromoteAlloca::handleAlloca(AllocaInst &I) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
IntrinsicInst *Intr = dyn_cast<IntrinsicInst>(Call);
|
IntrinsicInst *Intr = cast<IntrinsicInst>(Call);
|
||||||
if (!Intr) {
|
|
||||||
// FIXME: What is this for? It doesn't make sense to promote arbitrary
|
|
||||||
// function calls. If the call is to a defined function that can also be
|
|
||||||
// promoted, we should be able to do this once that function is also
|
|
||||||
// rewritten.
|
|
||||||
|
|
||||||
std::vector<Type*> ArgTypes;
|
|
||||||
for (unsigned ArgIdx = 0, ArgEnd = Call->getNumArgOperands();
|
|
||||||
ArgIdx != ArgEnd; ++ArgIdx) {
|
|
||||||
ArgTypes.push_back(Call->getArgOperand(ArgIdx)->getType());
|
|
||||||
}
|
|
||||||
Function *F = Call->getCalledFunction();
|
|
||||||
FunctionType *NewType = FunctionType::get(Call->getType(), ArgTypes,
|
|
||||||
F->isVarArg());
|
|
||||||
Constant *C = Mod->getOrInsertFunction((F->getName() + ".local").str(),
|
|
||||||
NewType, F->getAttributes());
|
|
||||||
Function *NewF = cast<Function>(C);
|
|
||||||
Call->setCalledFunction(NewF);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Builder.SetInsertPoint(Intr);
|
Builder.SetInsertPoint(Intr);
|
||||||
switch (Intr->getIntrinsicID()) {
|
switch (Intr->getIntrinsicID()) {
|
||||||
case Intrinsic::lifetime_start:
|
case Intrinsic::lifetime_start:
|
||||||
|
Loading…
Reference in New Issue
Block a user