summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2015-02-20 14:00:58 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2015-02-20 14:00:58 +0000
commit6f66545ae61572d47576060cae77cdf5545c4529 (patch)
tree81d040e35fcd96504e16ffa8c6dd0ddfc1950b5a /llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
parenta0ef4f36c85565a703fcd533ab2958e238d62421 (diff)
downloadbcm5719-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.cpp22
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;
OpenPOWER on IntegriCloud