mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-28 07:17:32 +00:00
* Eliminate commented out code
* Do not demand a shadow node when resolving * Raise arbitrary inline limit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2100 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -29,8 +29,6 @@ static void copyEdgesFromTo(PointerVal Val, DSNode *N) {
|
|||||||
if (PVS[j].Node == Val.Node && PVS[j].Index >= ValIdx &&
|
if (PVS[j].Node == Val.Node && PVS[j].Index >= ValIdx &&
|
||||||
PVS[j].Index < ValIdx+NLinks)
|
PVS[j].Index < ValIdx+NLinks)
|
||||||
PVS.add(PointerVal(N, PVS[j].Index-ValIdx));
|
PVS.add(PointerVal(N, PVS[j].Index-ValIdx));
|
||||||
|
|
||||||
//PVS.add(PointerVal(N, Val.Index)); // TODO: support index
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,21 +37,17 @@ static void ResolveNodesTo(const PointerVal &FromPtr,
|
|||||||
const PointerValSet &ToVals) {
|
const PointerValSet &ToVals) {
|
||||||
assert(FromPtr.Index == 0 &&
|
assert(FromPtr.Index == 0 &&
|
||||||
"Resolved node return pointer should be index 0!");
|
"Resolved node return pointer should be index 0!");
|
||||||
assert(isa<ShadowDSNode>(FromPtr.Node) &&
|
DSNode *N = FromPtr.Node;
|
||||||
"Resolved node should be a shadow!");
|
|
||||||
ShadowDSNode *Shadow = cast<ShadowDSNode>(FromPtr.Node);
|
|
||||||
assert(Shadow->isCriticalNode() && "Shadow node should be a critical node!");
|
|
||||||
Shadow->resetCriticalMark();
|
|
||||||
|
|
||||||
// Make everything that pointed to the shadow node also point to the values in
|
// Make everything that pointed to the shadow node also point to the values in
|
||||||
// ToVals...
|
// ToVals...
|
||||||
//
|
//
|
||||||
for (unsigned i = 0, e = ToVals.size(); i != e; ++i)
|
for (unsigned i = 0, e = ToVals.size(); i != e; ++i)
|
||||||
copyEdgesFromTo(ToVals[i], Shadow);
|
copyEdgesFromTo(ToVals[i], N);
|
||||||
|
|
||||||
// Make everything that pointed to the shadow node now also point to the
|
// Make everything that pointed to the shadow node now also point to the
|
||||||
// values it is equivalent to...
|
// values it is equivalent to...
|
||||||
const vector<PointerValSet*> &PVSToUpdate(Shadow->getReferrers());
|
const vector<PointerValSet*> &PVSToUpdate(N->getReferrers());
|
||||||
for (unsigned i = 0, e = PVSToUpdate.size(); i != e; ++i)
|
for (unsigned i = 0, e = PVSToUpdate.size(); i != e; ++i)
|
||||||
PVSToUpdate[i]->add(ToVals);
|
PVSToUpdate[i]->add(ToVals);
|
||||||
}
|
}
|
||||||
@@ -108,7 +102,7 @@ void FunctionDSGraph::computeClosure(const DataStructure &DS) {
|
|||||||
CallDSNode *CN = *NI;
|
CallDSNode *CN = *NI;
|
||||||
Function *F = CN->getCall()->getCalledFunction();
|
Function *F = CN->getCall()->getCalledFunction();
|
||||||
|
|
||||||
if (NumInlines++ == 40) { // CUTE hack huh?
|
if (NumInlines++ == 100) { // CUTE hack huh?
|
||||||
cerr << "Infinite (?) recursion halted\n";
|
cerr << "Infinite (?) recursion halted\n";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user