Changeset 3964 in CLRX


Ignore:
Timestamp:
Apr 3, 2018, 9:23:21 PM (8 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: in revertRetSSAIdMap remove old curSSAId from rdata.curSSAId and update curSSAId before updating rdata.curSSAId.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3963 r3964  
    16291629            retSSAIdMap.erase(v.first);
    16301630       
     1631        size_t oldSSAId = curSSAIdMap[v.first]-1;
     1632        curSSAIdMap[v.first] = v.second.prevSSAId;
    16311633        if (rdata!=nullptr)
    16321634        {
    16331635            VectorSet<size_t>& ssaIds = rdata->curSSAIdMap[v.first];
     1636            ssaIds.eraseValue(oldSSAId); // ??? need extra constraints
    16341637            for (size_t ssaId: v.second.ssaIds)
    16351638                ssaIds.insertValue(ssaId);
     
    16461649            std::cout << std::endl;
    16471650        }
    1648         curSSAIdMap[v.first] = v.second.prevSSAId;
    16491651    }
    16501652}
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAllocCase3.cpp

    r3963 r3964  
    13751375                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    13761376                    { { "sa", 2 }, SSAInfo(3, 6, 6, 6, 1, true) },
    1377                     { { "sa", 3 }, SSAInfo(4, 8, 8, 8, 1, true) },
     1377                    { { "sa", 3 }, SSAInfo(6, 8, 8, 8, 1, true) },
    13781378                    { { "sa", 4 }, SSAInfo(1, 3, 3, 3, 1, true) },
    13791379                    { { "sa", 5 }, SSAInfo(1, 3, 3, 3, 1, true) },
    1380                     { { "sa", 6 }, SSAInfo(2, 6, 6, 6, 1, true) }
     1380                    { { "sa", 6 }, SSAInfo(4, 6, 6, 6, 1, true) }
    13811381                }, false, false, true },
    13821382            {   // block 2 - routine
     
    14641464        },
    14651465        {   // SSA replaces
    1466             // TODO: very likely incorrect and redudant (by wrong retssaId lists)
    14671466            { { "sa", 2 }, { { 4, 3 }, { 5, 3 }, { 3, 1 } } },
    1468             { { "sa", 3 }, { { 5, 4 }, { 4, 3 }, { 6, 3 }, { 7, 3 }, { 4, 2 },
    1469                         { 5, 2 }, { 6, 4 }, { 7, 4 }, { 3, 1 } } },
     1467            /*{ { "sa", 3 }, { { 5, 4 }, { 4, 3 }, { 6, 3 }, { 7, 3 }, { 4, 2 },
     1468                        { 5, 2 }, { 6, 4 }, { 7, 4 }, { 3, 1 } } },*/
     1469            { { "sa", 3 }, { { 5, 4 }, { 6, 3 }, { 7, 3 }, { 4, 2 }, { 5, 2 },
     1470                        { 7, 6 }, { 3, 1 } } },
    14701471            { { "sa", 4 }, { { 2, 1 } } },
    14711472            { { "sa", 5 }, { { 2, 1 } } },
    1472             { { "sa", 6 }, { { 3, 2 }, { 2, 1 }, { 4, 1 }, { 5, 1 }, { 3, 1 },
    1473                         { 4, 2 }, { 5, 2 } } }
     1473            /*{ { "sa", 6 }, { { 3, 2 }, { 2, 1 }, { 4, 1 }, { 5, 1 }, { 3, 1 },
     1474                        { 4, 2 }, { 5, 2 } } }*/
     1475            { { "sa", 6 }, { { 3, 2 }, { 4, 1 }, { 5, 1 }, { 2, 1 }, { 3, 1 },
     1476                        { 5, 4 } } }
    14741477        },
    14751478        true, ""
Note: See TracChangeset for help on using the changeset viewer.