diff options
author | Davide Italiano <davide@freebsd.org> | 2017-06-27 02:25:06 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2017-06-27 02:25:06 +0000 |
commit | 31d4c1bbbcec4f1bb64dc036ef35d6685d785d68 (patch) | |
tree | 93adcd02df94728d0796fc3732c21c9bd50ba186 | |
parent | 3b978394ba979dad78e3da1535e5b605917bbcd1 (diff) | |
download | bcm5719-llvm-31d4c1bbbcec4f1bb64dc036ef35d6685d785d68.tar.gz bcm5719-llvm-31d4c1bbbcec4f1bb64dc036ef35d6685d785d68.zip |
[CFLAA] Move a common function to the header to reduce duplication.
Differential Revision: https://reviews.llvm.org/D34660
llvm-svn: 306354
-rw-r--r-- | llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h | 15 | ||||
-rw-r--r-- | llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp | 15 |
3 files changed, 17 insertions, 24 deletions
diff --git a/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h b/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h index 411626438c7..e21817852e6 100644 --- a/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h +++ b/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h @@ -41,4 +41,19 @@ private: } }; +namespace llvm { +namespace cflaa { +static inline const Function *parentFunctionOfValue(const Value *Val) { + if (auto *Inst = dyn_cast<Instruction>(Val)) { + auto *Bb = Inst->getParent(); + return Bb->getParent(); + } + + if (auto *Arg = dyn_cast<Argument>(Val)) + return Arg->getParent(); + return nullptr; +} // namespace cflaa +} // namespace llvm +} + #endif // LLVM_ANALYSIS_CFLALIASANALYSISUTILS_H diff --git a/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp b/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp index 63be165953b..0de7ad98af4 100644 --- a/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp +++ b/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp @@ -68,17 +68,6 @@ CFLAndersAAResult::CFLAndersAAResult(CFLAndersAAResult &&RHS) : AAResultBase(std::move(RHS)), TLI(RHS.TLI) {} CFLAndersAAResult::~CFLAndersAAResult() {} -static const Function *parentFunctionOfValue(const Value *Val) { - if (auto *Inst = dyn_cast<Instruction>(Val)) { - auto *Bb = Inst->getParent(); - return Bb->getParent(); - } - - if (auto *Arg = dyn_cast<Argument>(Val)) - return Arg->getParent(); - return nullptr; -} - namespace { enum class MatchState : uint8_t { diff --git a/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp b/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp index 33154ee9588..a87cf458a84 100644 --- a/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp +++ b/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp @@ -90,17 +90,6 @@ const StratifiedIndex StratifiedLink::SetSentinel = /// Determines whether it would be pointless to add the given Value to our sets. static bool canSkipAddingToSets(Value *Val); -static Function *parentFunctionOfValue(Value *Val) { - if (auto *Inst = dyn_cast<Instruction>(Val)) { - auto *Bb = Inst->getParent(); - return Bb->getParent(); - } - - if (auto *Arg = dyn_cast<Argument>(Val)) - return Arg->getParent(); - return nullptr; -} - static bool canSkipAddingToSets(Value *Val) { // Constants can share instances, which may falsely unify multiple // sets, e.g. in @@ -281,8 +270,8 @@ AliasResult CFLSteensAAResult::query(const MemoryLocation &LocA, return NoAlias; Function *Fn = nullptr; - Function *MaybeFnA = parentFunctionOfValue(ValA); - Function *MaybeFnB = parentFunctionOfValue(ValB); + Function *MaybeFnA = const_cast<Function *>(parentFunctionOfValue(ValA)); + Function *MaybeFnB = const_cast<Function *>(parentFunctionOfValue(ValB)); if (!MaybeFnA && !MaybeFnB) { // The only times this is known to happen are when globals + InlineAsm are // involved |