mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
Now that the dead ctor is gone, nothing uses the old node mapping exported by
cloneInto: make it an internally used mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20760 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5805c426dc
commit
a2197139b5
@ -444,16 +444,11 @@ public:
|
||||
void computeCalleeCallerMapping(DSCallSite CS, const Function &Callee,
|
||||
DSGraph &CalleeGraph, NodeMapTy &NodeMap);
|
||||
|
||||
/// cloneInto - Clone the specified DSGraph into the current graph. The
|
||||
/// translated ScalarMap for the old function is filled into the OldValMap
|
||||
/// member, and the translated ReturnNodes map is returned into ReturnNodes.
|
||||
/// OldNodeMap contains a mapping from the original nodes to the newly cloned
|
||||
/// nodes.
|
||||
/// cloneInto - Clone the specified DSGraph into the current graph.
|
||||
///
|
||||
/// The CloneFlags member controls various aspects of the cloning process.
|
||||
///
|
||||
void cloneInto(const DSGraph &G, NodeMapTy &OldNodeMap,
|
||||
unsigned CloneFlags = 0);
|
||||
void cloneInto(const DSGraph &G, unsigned CloneFlags = 0);
|
||||
|
||||
/// getFunctionArgumentsForCall - Given a function that is currently in this
|
||||
/// graph, return the DSNodeHandles that correspond to the pointer-compatible
|
||||
|
@ -267,10 +267,8 @@ unsigned BUDataStructures::calculateGraphs(Function *F,
|
||||
E = SCCGraphs.end(); I != E; ++I) {
|
||||
DSGraph &G = **I;
|
||||
if (&G != SCCGraph) {
|
||||
{
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
SCCGraph->cloneInto(G, NodeMap);
|
||||
}
|
||||
SCCGraph->cloneInto(G);
|
||||
|
||||
// Update the DSInfo map and delete the old graph...
|
||||
for (DSGraph::retnodes_iterator I = G.retnodes_begin(),
|
||||
E = G.retnodes_end(); I != E; ++I)
|
||||
@ -412,8 +410,7 @@ void BUDataStructures::calculateGraph(DSGraph &Graph) {
|
||||
// If the graph already contains the nodes for the function, don't
|
||||
// bother merging it in again.
|
||||
if (!GI->containsFunction(*I)) {
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
GI->cloneInto(getDSGraph(**I), NodeMap);
|
||||
GI->cloneInto(getDSGraph(**I));
|
||||
++NumBUInlines;
|
||||
}
|
||||
|
||||
|
@ -175,10 +175,7 @@ unsigned CompleteBUDataStructures::calculateSCCGraphs(DSGraph &FG,
|
||||
DSGraph *NG = Stack.back();
|
||||
ValMap[NG] = ~0U;
|
||||
|
||||
{
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
FG.cloneInto(*NG, NodeMap);
|
||||
}
|
||||
FG.cloneInto(*NG);
|
||||
|
||||
// Update the DSInfo map and delete the old graph...
|
||||
for (DSGraph::retnodes_iterator I = NG->retnodes_begin();
|
||||
|
@ -1168,8 +1168,7 @@ DSGraph::DSGraph(const DSGraph &G, EquivalenceClasses<GlobalValue*> &ECs,
|
||||
unsigned CloneFlags)
|
||||
: GlobalsGraph(0), ScalarMap(ECs), TD(G.TD) {
|
||||
PrintAuxCalls = false;
|
||||
NodeMapTy NodeMap;
|
||||
cloneInto(G, NodeMap, CloneFlags);
|
||||
cloneInto(G, CloneFlags);
|
||||
}
|
||||
|
||||
DSGraph::~DSGraph() {
|
||||
@ -1235,12 +1234,12 @@ DSNode *DSGraph::addObjectToGraph(Value *Ptr, bool UseDeclaredType) {
|
||||
///
|
||||
/// The CloneFlags member controls various aspects of the cloning process.
|
||||
///
|
||||
void DSGraph::cloneInto(const DSGraph &G, NodeMapTy &OldNodeMap,
|
||||
unsigned CloneFlags) {
|
||||
void DSGraph::cloneInto(const DSGraph &G, unsigned CloneFlags) {
|
||||
TIME_REGION(X, "cloneInto");
|
||||
assert(OldNodeMap.empty() && "Returned OldNodeMap should be empty!");
|
||||
assert(&G != this && "Cannot clone graph into itself!");
|
||||
|
||||
NodeMapTy OldNodeMap;
|
||||
|
||||
// Remove alloca or mod/ref bits as specified...
|
||||
unsigned BitsToClear = ((CloneFlags & StripAllocaBit)? DSNode::AllocaNode : 0)
|
||||
| ((CloneFlags & StripModRefBits)? (DSNode::Modified | DSNode::Read) : 0)
|
||||
|
@ -270,8 +270,7 @@ void EquivClassGraphs::buildIndirectFunctionSets(Module &M) {
|
||||
}
|
||||
|
||||
// Clone this member of the equivalence class into MergedG.
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
MergedG.cloneInto(CBUGraph, NodeMap);
|
||||
MergedG.cloneInto(CBUGraph);
|
||||
}
|
||||
|
||||
// Merge the return nodes of all functions together.
|
||||
@ -362,10 +361,7 @@ processSCC(DSGraph &FG, std::vector<DSGraph*> &Stack, unsigned &NextID,
|
||||
|
||||
// If the SCC found is not the same as those found in CBU, make sure to
|
||||
// merge the graphs as appropriate.
|
||||
{
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
FG.cloneInto(*NG, NodeMap);
|
||||
}
|
||||
FG.cloneInto(*NG);
|
||||
|
||||
// Update the DSInfo map and delete the old graph...
|
||||
for (DSGraph::retnodes_iterator I = NG->retnodes_begin();
|
||||
|
@ -123,10 +123,8 @@ bool Steens::runOnModule(Module &M) {
|
||||
// into this graph.
|
||||
//
|
||||
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
|
||||
if (!I->isExternal()) {
|
||||
DSGraph::NodeMapTy NodeMap;
|
||||
ResultGraph->cloneInto(LDS.getDSGraph(*I), NodeMap, 0);
|
||||
}
|
||||
if (!I->isExternal())
|
||||
ResultGraph->cloneInto(LDS.getDSGraph(*I));
|
||||
|
||||
ResultGraph->removeTriviallyDeadNodes();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user