Changeset 4088 in CLRX


Ignore:
Timestamp:
May 6, 2018, 8:29:06 AM (5 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: preps to creating livenesses with routines.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/CLRX/amdasm/Assembler.h

    r4060 r4088  
    343343    typedef Array<std::pair<size_t, size_t> > OutLiveness;
    344344   
    345      // first - orig ssaid, second - dest ssaid
     345    // first - orig ssaid, second - dest ssaid
    346346    typedef std::pair<size_t, size_t> SSAReplace;
    347347    typedef std::unordered_map<AsmSingleVReg, VectorSet<SSAReplace> > SSAReplacesMap;
     
    355355        VectorSet<size_t> nextVidxes;
    356356    };
     357   
     358    /* call place and routine dep will be used while join dependency between
     359     * svregs inside routines */
     360    // call place
     361    struct CallPlace
     362    {
     363        std::vector<size_t> routines;
     364        std::vector<size_t> vidxes; // SSAs indexes used in this call place
     365    };
     366    // routine dependency entry
     367    struct RoutineDep
     368    {
     369        std::vector<CallPlace> callPlaces;
     370        std::vector<size_t> vidxes; // SSAs indexes used by routine (no recursion)
     371    };
    357372private:
    358373    Assembler& assembler;
     
    364379    size_t graphVregsCounts[MAX_REGTYPES_NUM];
    365380    VarIndexMap vregIndexMaps[MAX_REGTYPES_NUM]; // indices to igraph for 2 reg types
     381    std::vector<RoutineDep> routineDeps;
    366382    InterGraph interGraphs[MAX_REGTYPES_NUM]; // for 2 register
    367383    Array<cxuint> graphColorMaps[MAX_REGTYPES_NUM];
  • CLRadeonExtender/trunk/amdasm/AsmRegAlloc.h

    r4087 r4088  
    205205{
    206206    std::unordered_set<AsmSingleVReg> readBeforeWrites;
     207    // holds all vreg SSA's used in routine (used while creating call point)
     208    // includes subroutines called in this routines
     209    std::unordered_set<size_t> allSSAs;
    207210    // key - svreg, value - list of the last codeblocks where is svreg
    208211    LastAccessMap lastAccessMap;
Note: See TracChangeset for help on using the changeset viewer.