Instead of using a bool that constant has to be explained, use a self
explanitory enum instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4600 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Analysis/DSGraph.h b/include/llvm/Analysis/DSGraph.h
index 572410d..66a4e68 100644
--- a/include/llvm/Analysis/DSGraph.h
+++ b/include/llvm/Analysis/DSGraph.h
@@ -125,25 +125,30 @@
//
void removeDeadNodes(bool KeepAllGlobals = false, bool KeepCalls = true);
+ enum AllocaBit {
+ StripAllocaBit,
+ KeepAllocaBit
+ };
+
// cloneInto - Clone the specified DSGraph into the current graph, returning
// the Return node of the graph. The translated ScalarMap for the old
- // function is filled into the OldValMap member. If StripScalars
- // (StripAllocas) is set to true, Scalar (Alloca) markers are removed from the
- // graph as the graph is being cloned.
+ // function is filled into the OldValMap member. If StripAllocas is set to
+ // 'StripAllocaBit', Alloca markers are removed from the graph as the graph is
+ // being cloned.
//
DSNodeHandle cloneInto(const DSGraph &G,
std::map<Value*, DSNodeHandle> &OldValMap,
std::map<const DSNode*, DSNode*> &OldNodeMap,
- bool StripAllocas = false);
+ AllocaBit StripAllocas = KeepAllocaBit);
/// mergeInGraph - The method is used for merging graphs together. If the
/// argument graph is not *this, it makes a clone of the specified graph, then
/// merges the nodes specified in the call site with the formal arguments in
- /// the graph. If the StripAlloca's argument is true then Alloca markers are
- /// removed from nodes.
+ /// the graph. If the StripAlloca's argument is 'StripAllocaBit' then Alloca
+ /// markers are removed from nodes.
///
- void mergeInGraph(DSCallSite &CS, const DSGraph &Graph, bool StripAllocas);
-
+ void mergeInGraph(DSCallSite &CS, const DSGraph &Graph,
+ AllocaBit StripAllocas);
#if 0
// cloneGlobalInto - Clone the given global node (or the node for the given
diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h
index 572410d..66a4e68 100644
--- a/include/llvm/Analysis/DataStructure/DSGraph.h
+++ b/include/llvm/Analysis/DataStructure/DSGraph.h
@@ -125,25 +125,30 @@
//
void removeDeadNodes(bool KeepAllGlobals = false, bool KeepCalls = true);
+ enum AllocaBit {
+ StripAllocaBit,
+ KeepAllocaBit
+ };
+
// cloneInto - Clone the specified DSGraph into the current graph, returning
// the Return node of the graph. The translated ScalarMap for the old
- // function is filled into the OldValMap member. If StripScalars
- // (StripAllocas) is set to true, Scalar (Alloca) markers are removed from the
- // graph as the graph is being cloned.
+ // function is filled into the OldValMap member. If StripAllocas is set to
+ // 'StripAllocaBit', Alloca markers are removed from the graph as the graph is
+ // being cloned.
//
DSNodeHandle cloneInto(const DSGraph &G,
std::map<Value*, DSNodeHandle> &OldValMap,
std::map<const DSNode*, DSNode*> &OldNodeMap,
- bool StripAllocas = false);
+ AllocaBit StripAllocas = KeepAllocaBit);
/// mergeInGraph - The method is used for merging graphs together. If the
/// argument graph is not *this, it makes a clone of the specified graph, then
/// merges the nodes specified in the call site with the formal arguments in
- /// the graph. If the StripAlloca's argument is true then Alloca markers are
- /// removed from nodes.
+ /// the graph. If the StripAlloca's argument is 'StripAllocaBit' then Alloca
+ /// markers are removed from nodes.
///
- void mergeInGraph(DSCallSite &CS, const DSGraph &Graph, bool StripAllocas);
-
+ void mergeInGraph(DSCallSite &CS, const DSGraph &Graph,
+ AllocaBit StripAllocas);
#if 0
// cloneGlobalInto - Clone the given global node (or the node for the given
diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp
index cbe53ce..ed9336d 100644
--- a/lib/Analysis/DataStructure/BottomUpClosure.cpp
+++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp
@@ -93,7 +93,7 @@
DEBUG(std::cerr << "\t[BU] Self Inlining: " << F.getName() << "\n");
// Handle self recursion by resolving the arguments and return value
- Graph->mergeInGraph(Call, *Graph, true);
+ Graph->mergeInGraph(Call, *Graph, DSGraph::StripAllocaBit);
// Erase the entry in the callees vector
Callees.erase(Callees.begin()+c--);
@@ -120,7 +120,7 @@
CallSitesForFunc.back().setCallee(0);
// Handle self recursion by resolving the arguments and return value
- Graph->mergeInGraph(Call, GI, true);
+ Graph->mergeInGraph(Call, GI, DSGraph::StripAllocaBit);
// Erase the entry in the Callees vector
Callees.erase(Callees.begin()+c--);
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 41cd718..31ff0a9 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -526,7 +526,7 @@
DSNodeHandle DSGraph::cloneInto(const DSGraph &G,
std::map<Value*, DSNodeHandle> &OldValMap,
std::map<const DSNode*, DSNode*> &OldNodeMap,
- bool StripAllocas) {
+ AllocaBit StripAllocas) {
assert(OldNodeMap.empty() && "Returned OldNodeMap should be empty!");
unsigned FN = Nodes.size(); // First new node...
@@ -544,11 +544,10 @@
for (unsigned i = FN, e = Nodes.size(); i != e; ++i)
Nodes[i]->remapLinks(OldNodeMap);
- // Remove local markers as specified
- unsigned char StripBits = StripAllocas ? DSNode::AllocaNode : 0;
- if (StripBits)
+ // Remove alloca markers as specified
+ if (StripAllocas == StripAllocaBit)
for (unsigned i = FN, e = Nodes.size(); i != e; ++i)
- Nodes[i]->NodeType &= ~StripBits;
+ Nodes[i]->NodeType &= ~DSNode::AllocaNode;
// Copy the value map... and merge all of the global nodes...
for (std::map<Value*, DSNodeHandle>::const_iterator I = G.ScalarMap.begin(),
@@ -580,7 +579,7 @@
/// graph.
///
void DSGraph::mergeInGraph(DSCallSite &CS, const DSGraph &Graph,
- bool StripAllocas) {
+ AllocaBit StripAllocas) {
std::map<Value*, DSNodeHandle> OldValMap;
DSNodeHandle RetVal;
std::map<Value*, DSNodeHandle> *ScalarMap = &OldValMap;
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp
index 817e734..a37ccd9 100644
--- a/lib/Analysis/DataStructure/TopDownClosure.cpp
+++ b/lib/Analysis/DataStructure/TopDownClosure.cpp
@@ -177,7 +177,7 @@
// Strip scalars but not allocas since they are alive in callee.
//
DSNodeHandle RetVal = Graph->cloneInto(CG, OldValMap, OldNodeMap,
- /*StripAllocas*/ false);
+ DSGraph::KeepAllocaBit);
ResolveCallSite(*Graph, DSCallSite(CallSiteInCG, OldNodeMap));
}