aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/InlineCost.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2015-11-12 21:19:18 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2015-11-12 21:19:18 +0000
commitf3aa82f666387a448bfcf6590664ae9d37bc5b0f (patch)
treee51c38bed3452e643576f755e41c329f696c9c27 /llvm/lib/Analysis/InlineCost.cpp
parentd9fa2b5487549b0b0951bdbbe7a7fcc27bb225ac (diff)
downloadllvm-f3aa82f666387a448bfcf6590664ae9d37bc5b0f.zip
llvm-f3aa82f666387a448bfcf6590664ae9d37bc5b0f.tar.gz
llvm-f3aa82f666387a448bfcf6590664ae9d37bc5b0f.tar.bz2
Revert r252949.
It broke some of the bots including clang-x64-ninja-win7. llvm-svn: 252951
Diffstat (limited to 'llvm/lib/Analysis/InlineCost.cpp')
-rw-r--r--llvm/lib/Analysis/InlineCost.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp
index b908434..26f2e7f 100644
--- a/llvm/lib/Analysis/InlineCost.cpp
+++ b/llvm/lib/Analysis/InlineCost.cpp
@@ -1349,13 +1349,22 @@ InlineCost InlineCostAnalysis::getInlineCost(CallSite CS, int Threshold) {
return getInlineCost(CS, CS.getCalledFunction(), Threshold);
}
+/// \brief Test that two functions either have or have not the given attribute
+/// at the same time.
+template<typename AttrKind>
+static bool attributeMatches(Function *F1, Function *F2, AttrKind Attr) {
+ return F1->getFnAttribute(Attr) == F2->getFnAttribute(Attr);
+}
+
/// \brief Test that there are no attribute conflicts between Caller and Callee
/// that prevent inlining.
static bool functionsHaveCompatibleAttributes(Function *Caller,
Function *Callee,
TargetTransformInfo &TTI) {
return TTI.areInlineCompatible(Caller, Callee) &&
- AttributeFuncs::areInlineCompatible(*Caller, *Callee);
+ attributeMatches(Caller, Callee, Attribute::SanitizeAddress) &&
+ attributeMatches(Caller, Callee, Attribute::SanitizeMemory) &&
+ attributeMatches(Caller, Callee, Attribute::SanitizeThread);
}
InlineCost InlineCostAnalysis::getInlineCost(CallSite CS, Function *Callee,