Changeset 3980 in CLRX


Ignore:
Timestamp:
Apr 10, 2018, 9:30:46 AM (6 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add next testcase. Add next debug dump log.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3978 r3980  
    23782378                }
    23792379                const bool prevHaveReturn = entry.haveReturn;
     2380                std::cout << "collect regvars: " << entry.blockIndex << ": " <<
     2381                        int(prevHaveReturn) << std::endl;
    23802382               
    23812383                flowStack.pop_back();
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAllocCase3.cpp

    r3979 r3980  
    19851985        true, ""
    19861986    },
     1987    {   // 14 - simple routine with loop (without end)
     1988        R"ffDXD(.regvar sa:s:10, va:v:8
     1989        s_mov_b32 sa[2], s4
     1990        s_mov_b32 sa[3], s5
     1991        s_mov_b32 sa[4], s6
     1992        .cf_call routine
     1993        s_swappc_b64 s[0:1], s[2:3]
     1994       
     1995        s_xor_b32 sa[2], sa[2], sa[0]
     1996        s_xor_b32 sa[3], sa[3], sa[0]
     1997        s_xor_b32 sa[4], sa[4], sa[1]
     1998       
     1999        .cf_call routine
     2000        s_swappc_b64 s[0:1], s[2:3]
     2001       
     2002        s_xor_b32 sa[2], sa[2], sa[0]
     2003        s_xor_b32 sa[3], sa[3], sa[0]
     2004        s_xor_b32 sa[4], sa[4], sa[1]
     2005        s_endpgm
     2006       
     2007routine:
     2008        s_xor_b32 sa[2], sa[2], sa[0]
     2009        s_xor_b32 sa[3], sa[3], sa[0]
     2010       
     2011loop0:  s_xor_b32 sa[2], sa[2], sa[0]
     2012        s_xor_b32 sa[3], sa[3], sa[0]
     2013        s_xor_b32 sa[4], sa[4], sa[1]
     2014        s_cbranch_scc0 loop0
     2015       
     2016        s_xor_b32 sa[4], sa[4], sa[1]
     2017        s_xor_b32 sa[2], sa[2], sa[0]
     2018        s_endpgm
     2019)ffDXD",
     2020        {
     2021            {   // block 0 - start
     2022                0, 16,
     2023                { { 3, true } },
     2024                {
     2025                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2026                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2027                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2028                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2029                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2030                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2031                    { { "", 6 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2032                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     2033                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
     2034                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, false) }
     2035                }, true, false, false },
     2036            {   // block 1 - after routine call
     2037                16, 32,
     2038                { { 3, true } },
     2039                {
     2040                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2041                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     2042                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2043                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     2044                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2045                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2046                    { { "sa", 2 }, SSAInfo(3, 5, 5, 5, 1, true) },
     2047                    { { "sa", 3 }, SSAInfo(3, 4, 4, 4, 1, true) },
     2048                    { { "sa", 4 }, SSAInfo(2, 4, 4, 4, 1, true) }
     2049                }, true, false, false },
     2050            {   // block 2 - end
     2051                32, 48,
     2052                { },
     2053                {
     2054                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2055                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2056                    { { "sa", 2 }, SSAInfo(3, 6, 6, 6, 1, true) },
     2057                    { { "sa", 3 }, SSAInfo(3, 5, 5, 5, 1, true) },
     2058                    { { "sa", 4 }, SSAInfo(2, 5, 5, 5, 1, true) }
     2059                }, false, false, true },
     2060            {   // block 3 - routine
     2061                48, 56,
     2062                { },
     2063                {
     2064                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2065                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     2066                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) }
     2067                }, false, false, false },
     2068            {   // block 4 - loop0
     2069                56, 72,
     2070                { { 4, false }, { 5, false } },
     2071                {
     2072                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2073                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2074                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2075                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     2076                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, true) }
     2077                }, false, false, false },
     2078            {   // block 5 - routine end
     2079                72, 84,
     2080                { },
     2081                {
     2082                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2083                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     2084                    { { "sa", 2 }, SSAInfo(3, 4, 4, 4, 1, true) },
     2085                    { { "sa", 4 }, SSAInfo(2, 3, 3, 3, 1, true) }
     2086                }, false, false, true }
     2087        },
     2088        {   // SSA replaces
     2089            { { "sa", 2 }, { { 3, 2 }, { 5, 1 } } },
     2090            { { "sa", 3 }, { { 3, 2 }, { 4, 1 } } },
     2091            { { "sa", 4 }, { { 2, 1 }, { 4, 1 } } }
     2092        },
     2093        true, ""
     2094    },
    19872095    { nullptr }
    19882096};
Note: See TracChangeset for help on using the changeset viewer.