Changeset 4071 in CLRX


Ignore:
Timestamp:
May 3, 2018, 8:26:51 PM (3 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Missing: Add yet another testcase for createSSAData (loop with fork, regvar used only in these forks).
Add testcase for createLivenesses: first loop test. Disable debugdump.

Location:
CLRadeonExtender/trunk
Files:
3 edited

Legend:

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

    r4067 r4071  
    3636using namespace CLRX;
    3737
    38 #define ASMREGALLOC_DEBUGDUMP 1
     38#define ASMREGALLOC_DEBUGDUMP 0
    3939
    4040namespace CLRX
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4060 r4071  
    707707                { 1, { 0, { 0 }, { } } }
    708708            },
     709            { },
     710            { },
     711            { }
     712        },
     713        true, ""
     714    },
     715    {   // 11 - simple loop
     716        R"ffDXD(.regvar sa:s:8, va:v:8
     717        s_mov_b32 sa[0], 0              # 0
     718        s_mov_b32 sa[1], s10            # 4
     719        v_mov_b32 va[0], v0             # 8
     720        v_mov_b32 va[1], v1             # 12
     721        v_mov_b32 va[3], 0              # 16
     722        v_mov_b32 va[4], 11             # 20
     723loop:
     724        ds_read_b32 va[2], va[3]        # 24
     725        v_xor_b32 va[0], va[1], va[2]   # 32
     726        v_not_b32 va[0], va[0]          # 36
     727        v_xor_b32 va[0], 0xfff, va[0]   # 40
     728        v_xor_b32 va[4], va[4], va[2]   # 48
     729        v_not_b32 va[4], va[0]          # 52
     730        v_xor_b32 va[4], 0xfff, va[0]   # 56
     731        v_add_u32 va[1], vcc, 1001, va[1]   # 64
     732       
     733        s_add_u32 sa[0], sa[0], 1       # 72
     734        s_cmp_lt_u32 sa[0], sa[1]       # 76
     735        s_cbranch_scc1 loop             # 80
     736       
     737        v_xor_b32 va[0], 33, va[0]      # 84
     738        s_add_u32 sa[0], 14, sa[0]      # 88
     739        s_endpgm                        # 92
     740)ffDXD",
     741        {   // livenesses
     742            {   // for SGPRs
     743                { { 0, 5 } }, // 0: S10
     744                { { 1, 89 } }, // 1: sa[0]'0
     745                { { 89, 90 } }, // 2: sa[0]'1
     746                { { 5, 84 } }  // 3: sa[1]'0
     747            },
     748            {   // for VGPRs
     749                { { 0, 9 } }, // 0: V0
     750                { { 0, 13 } }, // 1: V1
     751                { { 9, 10 } }, // va[0]'0
     752                { { 33, 37 } }, // va[0]'1
     753                { { 37, 41 } }, // va[0]'2
     754                { { 41, 85 } }, // va[0]'3
     755                { { 85, 86 } }, // va[0]'4
     756                { { 13, 84 } }, // va[1]'0
     757                { { 25, 49 } }, // va[2]'0
     758                { { 17, 84 } }, // va[3]'0
     759                { { 21, 49 }, { 57, 84 } }, // va[4]'0
     760                { { 49, 50 } }, // va[4]'1
     761                { { 53, 54 } }  // va[4]'2
     762            },
     763            { },
     764            { }
     765        },
     766        {   // linearDepMaps
     767            { },
    709768            { },
    710769            { },
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAllocCase1.cpp

    r3897 r4071  
    32123212        true, ""
    32133213    },
     3214    {   // 27 - simple loop with fork (regvar used only in these forks)
     3215        R"ffDXD(.regvar sa:s:8, va:v:8
     3216        s_mov_b32 sa[2], s4
     3217loop:   s_cbranch_scc1 b1
     3218       
     3219b0:     s_add_u32 sa[2], sa[2], sa[0]
     3220        s_branch loopend
     3221b1:     s_add_u32 sa[2], sa[2], sa[1]
     3222loopend:
     3223        s_cbranch_scc0 loop
     3224        s_endpgm
     3225)ffDXD",
     3226        {
     3227            {   // block 0 - start
     3228                0, 4,
     3229                { },
     3230                {
     3231                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     3232                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) }
     3233                }, false, false, false },
     3234            {   // block 1 - loop
     3235                4, 8,
     3236                { { 2, false }, { 3, false } },
     3237                {
     3238                }, false, false, false },
     3239            {   // block 2 - b0
     3240                8, 16,
     3241                { { 4, false } },
     3242                {
     3243                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     3244                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) }
     3245                }, false, false, true },
     3246            {   // block 3 - b1
     3247                16, 20,
     3248                { },
     3249                {
     3250                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     3251                    { { "sa", 2 }, SSAInfo(1, 3, 3, 3, 1, true) }
     3252                }, false, false, false },
     3253            {   // block 4 - loopend
     3254                20, 24,
     3255                { { 1, false }, { 5, false } },
     3256                {
     3257                }, false, false, false },
     3258            {   // block 5 - en
     3259                24, 28,
     3260                { },
     3261                { }, false, false, true }
     3262        },
     3263        {   // SSA replaces
     3264            { { "sa", 2 }, { { 2, 1 }, { 3, 1 } } }
     3265        },
     3266        true, ""
     3267    },
    32143268    { nullptr }
    32153269};
Note: See TracChangeset for help on using the changeset viewer.