summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/SCCP.cpp
diff options
context:
space:
mode:
authorAndrew Kaylor <andrew.kaylor@intel.com>2017-06-09 23:18:11 +0000
committerAndrew Kaylor <andrew.kaylor@intel.com>2017-06-09 23:18:11 +0000
commit647025f9e10e59c3fc31aeb8964f3dd16e3c0516 (patch)
tree42b222cd52b29605151e2c869aac001a7005a489 /llvm/lib/Transforms/Scalar/SCCP.cpp
parentdd9627047202118037ea4347b74cfa593e2a2fe8 (diff)
downloadbcm5719-llvm-647025f9e10e59c3fc31aeb8964f3dd16e3c0516.tar.gz
bcm5719-llvm-647025f9e10e59c3fc31aeb8964f3dd16e3c0516.zip
[InstSimplify] Don't constant fold or DCE calls that are marked nobuiltin
Differential Revision: https://reviews.llvm.org/D33737 llvm-svn: 305132
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SCCP.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/SCCP.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp
index 1d0e8396f6a..815492ac354 100644
--- a/llvm/lib/Transforms/Scalar/SCCP.cpp
+++ b/llvm/lib/Transforms/Scalar/SCCP.cpp
@@ -1117,7 +1117,7 @@ CallOverdefined:
// Otherwise, if we have a single return value case, and if the function is
// a declaration, maybe we can constant fold it.
if (F && F->isDeclaration() && !I->getType()->isStructTy() &&
- canConstantFoldCallTo(F)) {
+ canConstantFoldCallTo(CS, F)) {
SmallVector<Constant*, 8> Operands;
for (CallSite::arg_iterator AI = CS.arg_begin(), E = CS.arg_end();
@@ -1137,7 +1137,7 @@ CallOverdefined:
// If we can constant fold this, mark the result of the call as a
// constant.
- if (Constant *C = ConstantFoldCall(F, Operands, TLI)) {
+ if (Constant *C = ConstantFoldCall(CS, F, Operands, TLI)) {
// call -> undef.
if (isa<UndefValue>(C))
return;
OpenPOWER on IntegriCloud