diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-02-20 14:00:58 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-02-20 14:00:58 +0000 |
commit | 6f66545ae61572d47576060cae77cdf5545c4529 (patch) | |
tree | 81d040e35fcd96504e16ffa8c6dd0ddfc1950b5a /llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | |
parent | a0ef4f36c85565a703fcd533ab2958e238d62421 (diff) | |
download | bcm5719-llvm-6f66545ae61572d47576060cae77cdf5545c4529.tar.gz bcm5719-llvm-6f66545ae61572d47576060cae77cdf5545c4529.zip |
RewriteStatepointsForGC: Move details into anonymous namespaces. NFC.
While there reduce the number of duplicated std::map lookups.
llvm-svn: 230012
Diffstat (limited to 'llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 0b5e297c9ee..052a149ae26 100644 --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -55,6 +55,7 @@ static cl::opt<bool> PrintLiveSetSize("spp-print-liveset-size", static cl::opt<bool> PrintBasePointers("spp-print-base-pointers", cl::Hidden, cl::init(false)); +namespace { struct RewriteStatepointsForGC : public FunctionPass { static char ID; // Pass identification, replacement for typeid @@ -69,6 +70,7 @@ struct RewriteStatepointsForGC : public FunctionPass { AU.addRequired<DominatorTreeWrapperPass>(); } }; +} // namespace char RewriteStatepointsForGC::ID = 0; @@ -94,9 +96,7 @@ namespace { // base relation will remain. Internally, we add a mixture of the two // types, then update all the second type to the first type typedef std::map<Value *, Value *> DefiningValueMapTy; -} -namespace { struct PartiallyConstructedSafepointRecord { /// The set of values known to be live accross this safepoint std::set<llvm::Value *> liveset; @@ -503,26 +503,28 @@ static Value *findBaseDefiningValue(Value *I) { } /// Returns the base defining value for this value. -Value *findBaseDefiningValueCached(Value *I, DefiningValueMapTy &cache) { - if (cache.find(I) == cache.end()) { - cache[I] = findBaseDefiningValue(I); +static Value *findBaseDefiningValueCached(Value *I, DefiningValueMapTy &cache) { + Value *&Cached = cache[I]; + if (!Cached) { + Cached = findBaseDefiningValue(I); } - assert(cache.find(I) != cache.end()); + assert(cache[I] != nullptr); if (TraceLSP) { - errs() << "fBDV-cached: " << I->getName() << " -> " << cache[I]->getName() + errs() << "fBDV-cached: " << I->getName() << " -> " << Cached->getName() << "\n"; } - return cache[I]; + return Cached; } /// Return a base pointer for this value if known. Otherwise, return it's /// base defining value. static Value *findBaseOrBDV(Value *I, DefiningValueMapTy &cache) { Value *def = findBaseDefiningValueCached(I, cache); - if (cache.count(def)) { + auto Found = cache.find(def); + if (Found != cache.end()) { // Either a base-of relation, or a self reference. Caller must check. - return cache[def]; + return Found->second; } // Only a BDV available return def; |