Changeset 4143 in CLRX


Ignore:
Timestamp:
May 11, 2018, 2:34:25 PM (6 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add testcase with join inside routines.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4142 r4143  
    6464static const AsmLivenessesCase createLivenessesCasesTbl[] =
    6565{
     66#if 0
    6667    {   // 0 - simple case
    6768        R"ffDXD(.regvar sa:s:8, va:v:10
     
    17591760        },
    17601761        { }, // vidxCallMap
     1762        true, ""
     1763    },
     1764#endif
     1765    {   // 28 - two routines with var sharing (output-input)
     1766        R"ffDXD(.regvar sa:s:8, va:v:8, xa:s:8
     1767        s_mov_b32 sa[2], s4             # 0
     1768       
     1769        .cf_call routine
     1770        s_swappc_b64 s[0:1], s[2:3]     # 4
     1771       
     1772        s_sub_u32 sa[3], sa[2], sa[1]   # 8
     1773        .cf_jump a0, a1, a2
     1774        s_setpc_b64 s[2:3]              # 12
     1775       
     1776a0:     .cf_call routine2
     1777        s_swappc_b64 s[0:1], s[2:3]     # 16
     1778        s_xor_b32 sa[2], sa[2], sa[0]   # 20
     1779        s_endpgm                        # 24
     1780
     1781a1:     .cf_call routine2
     1782        s_swappc_b64 s[0:1], s[2:3]     # 28
     1783        s_xor_b32 sa[2], sa[2], sa[0]   # 32
     1784        s_endpgm                        # 36
     1785       
     1786a2:     .cf_call routine2
     1787        s_swappc_b64 s[0:1], s[2:3]     # 40
     1788        s_xor_b32 sa[2], sa[2], sa[0]   # 44
     1789        s_endpgm                        # 48
     1790       
     1791routine:
     1792        s_and_b32 sa[2], sa[2], sa[1]   # 52
     1793        .cf_ret
     1794        s_setpc_b64 s[0:1]              # 56
     1795       
     1796routine2:
     1797        s_cbranch_vccz r2_1             # 60
     1798r2_0:   s_and_b32 sa[2], sa[2], sa[1]   # 64
     1799        .cf_ret
     1800        s_setpc_b64 s[0:1]              # 68
     1801r2_1:   s_and_b32 sa[2], sa[2], sa[1]   # 72
     1802        s_xor_b32 sa[3], sa[3], sa[1]   # 76
     1803        .cf_ret
     1804        s_setpc_b64 s[0:1]              # 80
     1805)ffDXD",
     1806        {   // livenesses
     1807            {   // for SGPRs
     1808                { { 5, 8 }, { 17, 20 }, { 29, 32 }, { 41, 44 },
     1809                    { 52, 57 }, { 60, 69 }, { 72, 81 } }, // 0: S0
     1810                { { 5, 8 }, { 17, 20 }, { 29, 32 }, { 41, 44 },
     1811                    { 52, 57 }, { 60, 69 }, { 72, 81 } }, // 1: S1
     1812                { { 0, 17 }, { 28, 29 }, { 40, 41 } }, // 2: S2
     1813                { { 0, 17 }, { 28, 29 }, { 40, 41 } }, // 3: S3
     1814                { { 0, 1 } }, // 4: S4
     1815                { { 0, 21 }, { 28, 33 }, { 40, 45 } }, // 5: sa[0]'0
     1816                { { 0, 20 }, { 28, 32 }, { 40, 44 },
     1817                    { 52, 65 }, { 72, 77 } }, // 6: sa[1]'0
     1818                { { 1, 8 }, { 52, 53 } }, // 7: sa[2]'0
     1819                { { 8, 20 }, { 28, 32 }, { 40, 44 },
     1820                    { 53, 65 }, { 72, 73 } }, // 8: sa[2]'1
     1821                { { 20, 21 }, { 32, 33 }, { 44, 45 },
     1822                    { 65, 72 }, { 73, 84 } }, // 9: sa[2]'2
     1823                { { 21, 22 } }, // 10: sa[2]'3
     1824                { { 33, 34 } }, // 11: sa[2]'4
     1825                { { 45, 46 } }, // 12: sa[2]'5
     1826                { { 9, 20 }, { 28, 32 }, { 40, 44 },
     1827                    { 60, 64 }, { 72, 77 } }, // 13: sa[3]'0
     1828                { { 77, 78 } }  // 14: sa[3]'1
     1829            },
     1830            { },
     1831            { },
     1832            { }
     1833        },
     1834        { }, // linearDepMaps
     1835        {   // vidxRoutineMap
     1836            { 8, { { { 0, 1, 6, 7, 8 }, { }, { }, { } } } },
     1837            { 9, { { { 0, 1, 6, 8, 9, 13, 14 }, { }, { }, { } } } }
     1838        },
     1839        {   // vidxCallMap
     1840            { 0, { { { 2, 3, 5 }, { }, { }, { } } } },
     1841            { 2, { { { 5 }, { }, { }, { } } } },
     1842            { 4, { { { 5 }, { }, { }, { } } } },
     1843            { 6, { { { 5 }, { }, { }, { } } } }
     1844        },
    17611845        true, ""
    17621846    }
Note: See TracChangeset for help on using the changeset viewer.