Changeset 3586 in CLRX


Ignore:
Timestamp:
Jan 7, 2018, 12:43:36 PM (10 days ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: fixed settings SSAInfo for registers (not regvars).

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3585 r3586  
    757757                    if (totalSSACount == 0 && ssaEntry.second.readBeforeWrite)
    758758                    {
    759                         // first read before write at all, need change totalcount, ssaId
    760                         ssaId++;
    761                         totalSSACount++;
     759                        if (ssaEntry.first.regVar!=nullptr)
     760                        {
     761                            /* first read before write at all,
     762                             * need change totalcount, ssaId */
     763                            ssaId++;
     764                            totalSSACount++;
     765                        }
     766                        else // ssaIdBefore is zero (first ssaId), ssaIdFirst is NONE
     767                            ssaEntry.second.ssaIdBefore = 0;
    762768                    }
     769                    else if (ssaEntry.first.regVar==nullptr)
     770                        // if write, then ssaIdFirst is zero, ssaIdBefore is NONE
     771                        ssaEntry.second.ssaIdFirst = 0;
     772                       
    763773                    if (ssaId != totalSSACount) // save old ssaId
    764774                        entry.prevSSAIds.insert({ ssaEntry.first, ssaId });
    765775                    ssaEntry.second.ssaId = totalSSACount;
    766                     ssaEntry.second.ssaIdFirst = ssaEntry.second.ssaIdChange!=0 ?
     776                    if (ssaEntry.first.regVar!=nullptr)
     777                    {
     778                        ssaEntry.second.ssaIdFirst = ssaEntry.second.ssaIdChange!=0 ?
    767779                            totalSSACount : SIZE_MAX;
    768                     ssaEntry.second.ssaIdBefore = ssaId-1;
     780                        ssaEntry.second.ssaIdBefore = ssaId-1;
     781                    }
     782                   
    769783                    totalSSACount += ssaEntry.second.ssaIdChange;
    770784                    ssaEntry.second.ssaIdLast = ssaEntry.second.ssaIdChange!=0 ?
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.cpp

    r3582 r3586  
    688688            { 0, 56, { },
    689689                {
    690                     { { "", 3 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    691                     { { "", 256 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    692                     { { "", 266 }, SSAInfo(SIZE_MAX, SIZE_MAX, 0, SIZE_MAX, 0, false) },
     690                    { { "", 3 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     691                    { { "", 256 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     692                    { { "", 266 }, SSAInfo(SIZE_MAX, 0, 0, SIZE_MAX, 0, false) },
    693693                    { { "sa", 2 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    694694                    { { "sa", 4 }, SSAInfo(SIZE_MAX, 0, 0, 1, 2, false) },
     
    728728                { { 1, false }, { 2, false }, { 3, false } },
    729729                {
    730                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    731                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    732                     { { "", 3 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    733                     { { "", 256 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     730                    { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     731                    { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     732                    { { "", 3 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     733                    { { "", 256 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    734734                    { { "sa", 2 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    735735                    { { "sa", 4 }, SSAInfo(SIZE_MAX, 0, 0, 1, 2, false) },
     
    790790                { { 1, false }, { 2, false }, { 3, false } },
    791791                {
    792                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    793                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    794                     { { "", 3 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    795                     { { "", 256 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     792                    { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     793                    { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     794                    { { "", 3 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     795                    { { "", 256 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    796796                    { { "sa", 2 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    797797                    { { "sa", 4 }, SSAInfo(SIZE_MAX, 0, 0, 1, 2, false) },
Note: See TracChangeset for help on using the changeset viewer.