Changeset 3595 in CLRX


Ignore:
Timestamp:
Jan 8, 2018, 8:22:10 PM (9 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Set readBeforeId for first instruction that read and write regvar. Update createSSAData testcases.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3594 r3595  
    715715                if (res.second)
    716716                    sinfo.firstPos = rvu.offset;
    717                 if ((rvu.rwFlags & ASMRVU_READ) != 0 && sinfo.ssaIdChange == 0)
     717                if ((rvu.rwFlags & ASMRVU_READ) != 0 && (sinfo.ssaIdChange == 0 ||
     718                    (sinfo.ssaIdChange == 1 && sinfo.firstPos==rvu.offset)))
    718719                    sinfo.readBeforeWrite = true;
    719720                if (rvu.rwFlags == ASMRVU_WRITE && rvu.regField!=ASMFIELD_NONE)
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.cpp

    r3594 r3595  
    11091109        s_and_b32 sa[6], sa[0], sa[5]
    11101110.endr
    1111         .cf_jump b11
     1111        .cf_jump b11, b12
    11121112        s_setpc_b64 s[6:7]
    11131113b2:     v_nop
     
    11151115b3:     v_nop
    11161116        s_endpgm
    1117 b11:    s_endpgm
     1117       
     1118        # block 4, offset - xx
     1119b11:    v_mov_b32 va[0], 122
     1120        v_mov_b32 va[1], 122
     1121        v_mov_b32 va[2], 122
     1122.rept 4
     1123        v_xor_b32 va[0], va[1], v2
     1124        v_xor_b32 va[1], va[1], v1
     1125        v_xor_b32 va[2], sa[2], va[1]
     1126.endr
     1127        v_xor_b32 va[1], sa[1], v0
     1128        s_xor_b32 sa[1], sa[2], s3
     1129        s_endpgm
     1130       
     1131        # block 5, offset - xx
     1132b12:    v_mov_b32 va[4], 122
     1133        v_xor_b32 va[1], 112, va[1]
     1134        v_xor_b32 va[0], v2, va[0]
     1135.rept 5
     1136        v_xor_b32 va[0], va[1], v2
     1137        v_xor_b32 va[1], va[0], v0
     1138        v_xor_b32 va[4], sa[3], va[4]
     1139.endr
     1140        v_xor_b32 va[4], sa[2], v0
     1141        s_xor_b32 sa[1], sa[3], s3
     1142        s_endpgm
    11181143)ffDXD",
    11191144        {
     
    11361161                }, false, false, true },
    11371162            { 124, 176,
    1138                 { { 4, false } },
     1163                { { 4, false }, { 5, false } },
    11391164                {
    11401165                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     
    11561181                { },
    11571182                { }, false, false, true },
    1158             { 192, 196,
    1159                 { },
    1160                 { }, false, false, true },
     1183            // block 4
     1184            { 192, 276,
     1185                { },
     1186                {
     1187                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1188                    { { "", 256 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1189                    { { "", 256+1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1190                    { { "", 256+2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1191                    { { "sa", 1 }, SSAInfo(5, 6, 6, 6, 1, true) },
     1192                    { { "sa", 2 }, SSAInfo(6, SIZE_MAX, 7, SIZE_MAX, 0, true) },
     1193                    { { "va", 0 }, SSAInfo(SIZE_MAX, 0, 0, 4, 5, false) },
     1194                    { { "va", 1 }, SSAInfo(SIZE_MAX, 0, 0, 5, 6, false) },
     1195                    { { "va", 2 }, SSAInfo(SIZE_MAX, 0, 0, 4, 5, false) }
     1196                }, false, false, true },
     1197            // block 5
     1198            { 276, 368,
     1199                { },
     1200                {
     1201                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1202                    { { "", 256 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1203                    { { "", 256+2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1204                    { { "sa", 1 }, SSAInfo(5, 7, 7, 7, 1, false) },
     1205                    { { "sa", 2 }, SSAInfo(6, SIZE_MAX, 7, SIZE_MAX, 0, true) },
     1206                    { { "sa", 3 }, SSAInfo(4, SIZE_MAX, 5, SIZE_MAX, 0, true) },
     1207                    { { "va", 0 }, SSAInfo(0, 5, 5, 10, 6, true) },
     1208                    { { "va", 1 }, SSAInfo(0, 6, 6, 11, 6, true) },
     1209                    { { "va", 4 }, SSAInfo(SIZE_MAX, 0, 0, 6, 7, false) },
     1210                }, false, false, true },
    11611211        },
    11621212        { },
Note: See TracChangeset for help on using the changeset viewer.