mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-05 11:17:53 +00:00
Change the ActualCallees callgraph from hash_multimap<Instruction,Function>
to std::set<std::pair<Inst,Func>> to avoid duplicate entries. This speeds up the CompleteBU pass from 1.99s to .15s on povray and the eqgraph passes from 1.5s to .16s on the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21031 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -339,8 +339,8 @@ processSCC(DSGraph &FG, std::vector<DSGraph*> &Stack, unsigned &NextID,
|
||||
Instruction *Call = CI->getCallSite().getInstruction();
|
||||
|
||||
// Loop over all of the actually called functions...
|
||||
ActualCalleesTy::const_iterator I, E;
|
||||
for (tie(I, E) = getActualCallees().equal_range(Call); I != E; ++I)
|
||||
ActualCalleesTy::const_iterator I = callee_begin(Call),E = callee_end(Call);
|
||||
for (; I != E; ++I)
|
||||
if (!I->second->isExternal()) {
|
||||
// Process the callee as necessary.
|
||||
unsigned M = processSCC(getOrCreateGraph(*I->second),
|
||||
@@ -414,8 +414,8 @@ void EquivClassGraphs::processGraph(DSGraph &G) {
|
||||
// graph so we only need to do this once.
|
||||
//
|
||||
DSGraph* CalleeGraph = NULL;
|
||||
ActualCalleesTy::const_iterator I, E;
|
||||
tie(I, E) = getActualCallees().equal_range(TheCall);
|
||||
ActualCalleesTy::const_iterator I = callee_begin(TheCall);
|
||||
ActualCalleesTy::const_iterator E = callee_end(TheCall);
|
||||
unsigned TNum, Num;
|
||||
|
||||
// Loop over all potential callees to find the first non-external callee.
|
||||
|
Reference in New Issue
Block a user