Changeset 4153 in CLRX


Ignore:
Timestamp:
May 12, 2018, 2:57:45 PM (7 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add next testcase for testing a end program paths in the routine.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r4152 r4153  
    152152            const SSAInfo& sinfo = sinfoIt->second;
    153153            if (sinfo.readBeforeWrite && sinfo.ssaIdBefore==ssaId)
     154                // if ssaId is first read, then we assume start at routine start pos
    154155                fromStartPos = true;
    155156            else if (sinfo.ssaIdChange == 0 || sinfo.ssaIdLast != ssaId)
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4151 r4153  
    21552155                { { 5, 36 }, { 48, 56 }, { 64, 69 } }, // 11: sa[3]'0
    21562156                { { 36, 41 }, { 69, 76 } }, // 12: sa[3]'1
     2157                { { 41, 42 } }, // 13: sa[3]'2
     2158                { { 0, 36 }, { 48, 57 }, { 64, 69 } }, // 14: sa[4]'0
     2159                { { 9, 41 } }  // 15: sa[5]'0
     2160            },
     2161            { },
     2162            { },
     2163            { }
     2164        },
     2165        { }, // linearDepMaps
     2166        {   // vidxRoutineMap
     2167            { 2, { { { 0, 1, 6, 7, 8, 9, 11, 12, 14 }, { }, { }, { } } } }
     2168        },
     2169        {   // vidxCallMap
     2170            { 0, { { { 15 }, { }, { }, { } } } }
     2171        },
     2172        true, ""
     2173    },
     2174    {   // 34 - routine with ends (s_endpgm, no return) 4
     2175        R"ffDXD(.regvar sa:s:8, va:v:8
     2176        s_mov_b32 sa[2], s4             # 0
     2177        s_mov_b32 sa[3], s5             # 4
     2178        s_mov_b32 sa[5], s5             # 8
     2179       
     2180        s_getpc_b64 s[2:3]              # 12
     2181        s_add_u32 s2, s2, routine-.     # 16
     2182        s_add_u32 s3, s3, routine-.+4   # 24
     2183        .cf_call routine
     2184        s_swappc_b64 s[0:1], s[2:3]     # 32
     2185       
     2186        s_lshl_b32 sa[2], sa[2], 3      # 36
     2187        s_lshl_b32 sa[3], sa[3], sa[5]  # 40
     2188        s_endpgm                        # 44
     2189       
     2190routine:
     2191        s_xor_b32 sa[2], sa[2], sa[4]   # 48
     2192        s_cbranch_scc1 bb1              # 52
     2193       
     2194        s_min_u32 sa[2], sa[2], sa[4]   # 56
     2195        .cf_ret
     2196        s_setpc_b64 s[0:1]              # 60
     2197       
     2198bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 64
     2199        s_xor_b32 sa[3], sa[3], sa[4]   # 68
     2200        s_endpgm                        # 72
     2201)ffDXD",
     2202        {   // livenesses
     2203            {   // for SGPRs
     2204                { { 33, 36 }, { 48, 61 } }, // 0: S0
     2205                { { 33, 36 }, { 48, 61 } }, // 1: S1
     2206                { { 13, 33 } }, // 2: S2
     2207                { { 13, 33 } }, // 3: S3
     2208                { { 0, 1 } }, // 4: S4
     2209                { { 0, 9 } }, // 5: S5
     2210                { { 1, 36 }, { 48, 49 } }, // 6: sa[2]'0
     2211                { { 49, 57 }, { 64, 65 } }, // 7: sa[2]'1
     2212                { { 36, 37 }, { 57, 64 } }, // 8: sa[2]'2
     2213                { { 65, 66 } }, // 9: sa[2]'3
     2214                { { 37, 38 } }, // 10: sa[2]'4
     2215                { { 5, 41 }, { 48, 69 } }, // 11: sa[3]'0
     2216                { { 69, 70 } }, // 12: sa[3]'1
    21572217                { { 41, 42 } }, // 13: sa[3]'2
    21582218                { { 0, 36 }, { 48, 57 }, { 64, 69 } }, // 14: sa[4]'0
Note: See TracChangeset for help on using the changeset viewer.