From 381977d191de72144cdbb164666754ca8ed60b49 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 23 Jan 2003 22:06:33 +0000 Subject: [PATCH] * Eliminate boolean arguments in favor of using enums git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5420 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DSGraph.h | 19 ++++++++++++------- include/llvm/Analysis/DataStructure/DSGraph.h | 19 ++++++++++++------- lib/Analysis/DataStructure/IPModRef.cpp | 4 ++-- lib/Analysis/IPA/IPModRef.cpp | 4 ++-- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/include/llvm/Analysis/DSGraph.h b/include/llvm/Analysis/DSGraph.h index a1725dec16c..8e11dc010aa 100644 --- a/include/llvm/Analysis/DSGraph.h +++ b/include/llvm/Analysis/DSGraph.h @@ -137,15 +137,20 @@ public: // the scope of current analysis may have modified it), the 'Incomplete' flag // is added to the NodeType. // - void markIncompleteNodes(bool markFormalArgs = true); + enum MarkIncompleteFlags { + MarkFormalArgs = 1, IgnoreFormalArgs = 0, + }; + void markIncompleteNodes(unsigned Flags); - // removeDeadNodes - Use a more powerful reachability analysis to eliminate - // subgraphs that are unreachable. This often occurs because the data - // structure doesn't "escape" into it's caller, and thus should be eliminated - // from the caller's graph entirely. This is only appropriate to use when - // inlining graphs. + // removeDeadNodes - Use a reachability analysis to eliminate subgraphs that + // are unreachable. This often occurs because the data structure doesn't + // "escape" into it's caller, and thus should be eliminated from the caller's + // graph entirely. This is only appropriate to use when inlining graphs. // - void removeDeadNodes(); + enum RemoveDeadNodesFlags { + RemoveUnreachableGlobals = 1, KeepUnreachableGlobals = 0, + }; + void removeDeadNodes(unsigned Flags); // CloneFlags enum - Bits that may be passed into the cloneInto method to // specify how to clone the function graph. diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h index a1725dec16c..8e11dc010aa 100644 --- a/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/include/llvm/Analysis/DataStructure/DSGraph.h @@ -137,15 +137,20 @@ public: // the scope of current analysis may have modified it), the 'Incomplete' flag // is added to the NodeType. // - void markIncompleteNodes(bool markFormalArgs = true); + enum MarkIncompleteFlags { + MarkFormalArgs = 1, IgnoreFormalArgs = 0, + }; + void markIncompleteNodes(unsigned Flags); - // removeDeadNodes - Use a more powerful reachability analysis to eliminate - // subgraphs that are unreachable. This often occurs because the data - // structure doesn't "escape" into it's caller, and thus should be eliminated - // from the caller's graph entirely. This is only appropriate to use when - // inlining graphs. + // removeDeadNodes - Use a reachability analysis to eliminate subgraphs that + // are unreachable. This often occurs because the data structure doesn't + // "escape" into it's caller, and thus should be eliminated from the caller's + // graph entirely. This is only appropriate to use when inlining graphs. // - void removeDeadNodes(); + enum RemoveDeadNodesFlags { + RemoveUnreachableGlobals = 1, KeepUnreachableGlobals = 0, + }; + void removeDeadNodes(unsigned Flags); // CloneFlags enum - Bits that may be passed into the cloneInto method to // specify how to clone the function graph. diff --git a/lib/Analysis/DataStructure/IPModRef.cpp b/lib/Analysis/DataStructure/IPModRef.cpp index 8c507e9323a..48452fe8b16 100644 --- a/lib/Analysis/DataStructure/IPModRef.cpp +++ b/lib/Analysis/DataStructure/IPModRef.cpp @@ -175,7 +175,7 @@ DSGraph* FunctionModRefInfo::ResolveCallSiteModRefInfo(CallInst &CI, assert(0 && "See error message"); // Remove dead nodes aggressively to match the caller's original graph. - Result->removeDeadNodes(); + Result->removeDeadNodes(DSGraph::KeepUnreachableGlobals); // Step #4: Return the clone + the mapping (by ref) return Result; @@ -393,7 +393,7 @@ FunctionModRefInfo& IPModRef::getFuncInfo(const Function& func, // The memory for this graph clone will be freed by FunctionModRefInfo. DSGraph* funcTDGraph = new DSGraph(getAnalysis().getDSGraph(func)); - funcTDGraph->removeDeadNodes(); + funcTDGraph->removeDeadNodes(DSGraph::KeepUnreachableGlobals); funcInfo = new FunctionModRefInfo(func, *this, funcTDGraph); //auto-insert funcInfo->computeModRef(func); // computes the mod/ref info diff --git a/lib/Analysis/IPA/IPModRef.cpp b/lib/Analysis/IPA/IPModRef.cpp index 8c507e9323a..48452fe8b16 100644 --- a/lib/Analysis/IPA/IPModRef.cpp +++ b/lib/Analysis/IPA/IPModRef.cpp @@ -175,7 +175,7 @@ DSGraph* FunctionModRefInfo::ResolveCallSiteModRefInfo(CallInst &CI, assert(0 && "See error message"); // Remove dead nodes aggressively to match the caller's original graph. - Result->removeDeadNodes(); + Result->removeDeadNodes(DSGraph::KeepUnreachableGlobals); // Step #4: Return the clone + the mapping (by ref) return Result; @@ -393,7 +393,7 @@ FunctionModRefInfo& IPModRef::getFuncInfo(const Function& func, // The memory for this graph clone will be freed by FunctionModRefInfo. DSGraph* funcTDGraph = new DSGraph(getAnalysis().getDSGraph(func)); - funcTDGraph->removeDeadNodes(); + funcTDGraph->removeDeadNodes(DSGraph::KeepUnreachableGlobals); funcInfo = new FunctionModRefInfo(func, *this, funcTDGraph); //auto-insert funcInfo->computeModRef(func); // computes the mod/ref info -- 2.34.1