aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/Analysis.cpp
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2017-01-03 21:42:43 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2017-01-03 21:42:43 +0000
commit8a41319d8d805dd1a8ba85f28eb111a822c4c45b (patch)
treeea414509c93df273871257bad96b7cb21b6206cd /llvm/lib/CodeGen/Analysis.cpp
parentb198e5585e792ccd6fd63734cb49d952bcb1dde7 (diff)
downloadllvm-8a41319d8d805dd1a8ba85f28eb111a822c4c45b.zip
llvm-8a41319d8d805dd1a8ba85f28eb111a822c4c45b.tar.gz
llvm-8a41319d8d805dd1a8ba85f28eb111a822c4c45b.tar.bz2
[CodeGen] Further simplify returned call operand logic. NFC.
As Pete points out in r290905, CallSite lets us avoid duplicating this! llvm-svn: 290909
Diffstat (limited to 'llvm/lib/CodeGen/Analysis.cpp')
-rw-r--r--llvm/lib/CodeGen/Analysis.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/Analysis.cpp b/llvm/lib/CodeGen/Analysis.cpp
index a796e16..79ecc43 100644
--- a/llvm/lib/CodeGen/Analysis.cpp
+++ b/llvm/lib/CodeGen/Analysis.cpp
@@ -272,14 +272,8 @@ static const Value *getNoopInput(const Value *V,
TLI.allowTruncateForTailCall(Op->getType(), I->getType())) {
DataBits = std::min(DataBits, I->getType()->getPrimitiveSizeInBits());
NoopInput = Op;
- } else if (auto *CI = dyn_cast<CallInst>(I)) {
- // Look through call operands.
- Value *ReturnedOp = CI->getReturnedArgOperand();
- if (ReturnedOp && isNoopBitcast(ReturnedOp->getType(), I->getType(), TLI))
- NoopInput = ReturnedOp;
- } else if (auto *II = dyn_cast<InvokeInst>(I)) {
- // Look through invoke operands.
- Value *ReturnedOp = II->getReturnedArgOperand();
+ } else if (auto CS = ImmutableCallSite(I)) {
+ const Value *ReturnedOp = CS.getReturnedArgOperand();
if (ReturnedOp && isNoopBitcast(ReturnedOp->getType(), I->getType(), TLI))
NoopInput = ReturnedOp;
} else if (const InsertValueInst *IVI = dyn_cast<InsertValueInst>(V)) {