Changeset 4005 in CLRX


Ignore:
Timestamp:
Apr 15, 2018, 7:08:00 PM (3 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: applySSAReplaces: optimize clearing flag visited between passes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/AsmRegAlloc.cpp

    r4004 r4005  
    567567            entry.second.visited = false;
    568568       
     569        std::vector<MinSSAGraphNode*> toClear; // nodes to clear
     570       
    569571        for (auto ssaGraphNodeIt = ssaGraphNodes.begin();
    570572                 ssaGraphNodeIt!=ssaGraphNodes.end(); )
     
    581583                {
    582584                    toPop = node.visited;
     585                    if (!node.visited)
     586                        // this flag visited for this node will be clear after this pass
     587                        toClear.push_back(&node);
    583588                    node.visited = true;
    584589                }
     
    620625                    break;
    621626            // zeroing visited
    622             for (auto& entry: ssaGraphNodes)
    623                 entry.second.visited = false;
     627            for (MinSSAGraphNode* node: toClear)
     628                node->visited = false;
     629            toClear.clear();
    624630        }
    625631       
     
    639645                {
    640646                    toPop = node.visited;
     647                    if (!node.visited)
     648                        // this flag visited for this node will be clear after this pass
     649                        toClear.push_back(&node);
    641650                    node.visited = true;
    642651                }
     
    681690           
    682691            // zeroing visited
    683             for (auto& entry: ssaGraphNodes)
    684                 entry.second.visited = false;
     692            for (MinSSAGraphNode* node: toClear)
     693                node->visited = false;
     694            toClear.clear();
    685695        }
    686696       
Note: See TracChangeset for help on using the changeset viewer.