Changeset 4072 in CLRX


Ignore:
Timestamp:
May 3, 2018, 10:16:15 PM (4 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add debugdump (start createLivenesses). Add testcases for createLivenesses - loop with forks.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r4070 r4072  
    10541054                    {
    10551055                        const SSAInfo& sinfo = sentry.second;
    1056                         auto res = alreadyReadMap.insert({ sentry.first, entry.blockIndex });
     1056                        auto res = alreadyReadMap.insert(
     1057                                    { sentry.first, entry.blockIndex });
    10571058                       
    10581059                        if (toCache)
     
    12441245void AsmRegAllocator::createLivenesses(ISAUsageHandler& usageHandler)
    12451246{
     1247    ARDOut << "----- createLivenesses ------\n";
    12461248    // construct var index maps
    12471249    cxuint regRanges[MAX_REGTYPES_NUM*2];
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4071 r4072  
    761761                { { 53, 54 } }  // va[4]'2
    762762            },
     763            { },
     764            { }
     765        },
     766        {   // linearDepMaps
     767            { },
     768            { },
     769            { },
     770            { }
     771        },
     772        true, ""
     773    },
     774    {   // 12 - simple loop with fork (regvar used only in these forks)
     775        R"ffDXD(.regvar sa:s:8, va:v:8
     776        s_mov_b32 sa[2], s4             # 0
     777loop:   s_cbranch_scc1 b1               # 4
     778       
     779b0:     s_add_u32 sa[2], sa[2], sa[0]   # 8
     780        s_branch loopend                # 12
     781b1:     s_add_u32 sa[2], sa[2], sa[1]   # 16
     782loopend:
     783        s_cbranch_scc0 loop             # 20
     784        s_endpgm                        # 24
     785)ffDXD",
     786        {   // livenesses
     787            {   // for SGPRs
     788                { { 0, 1 } }, // 0: S4
     789                { { 0, 24 } }, // 1: sa[0]'0
     790                { { 0, 24 } }, // 2: sa[1]'0
     791                { { 1, 24 } }  // 3: sa[2]'0
     792            },
     793            { },
     794            { },
     795            { }
     796        },
     797        {   // linearDepMaps
     798            { },
     799            { },
     800            { },
     801            { }
     802        },
     803        true, ""
     804    },
     805    {   // 13 - simple with forks - holes in loop (second case)
     806        R"ffDXD(.regvar sa:s:8, va:v:8
     807loop:   s_cbranch_scc1 b1               # 0
     808       
     809b0:     s_add_u32 sa[2], sa[2], sa[0]   # 4
     810        s_add_u32 sa[3], sa[0], sa[1]   # 8
     811        s_branch loopend                # 12
     812b1:     s_add_u32 sa[2], sa[0], sa[1]   # 16
     813        s_add_u32 sa[3], sa[3], sa[1]   # 20
     814loopend:
     815        s_cbranch_scc0 loop             # 24
     816        s_endpgm                        # 28
     817)ffDXD",
     818        {   // livenesses
     819            {   // for SGPRs
     820                { { 0, 28 } }, // 0: sa[0]'0
     821                { { 0, 28 } }, // 1: sa[1]'0
     822                { { 0, 16 }, { 17, 28 } }, // 2: sa[2]'0
     823                { { 0, 4 }, { 9, 28 } }  // 3: sa[3]'0
     824            },
     825            { },
    763826            { },
    764827            { }
Note: See TracChangeset for help on using the changeset viewer.