Changeset 3958 in CLRX


Ignore:
Timestamp:
Apr 1, 2018, 9:27:44 PM (3 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: fixing recursion support.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3957 r3958  
    14501450        {
    14511451            std::vector<size_t> outSSAIds = ssaIds;
    1452             outSSAIds.push_back(sinfo.ssaIdBefore); // ???
     1452            outSSAIds.push_back(ssaId-1); // ???
    14531453            // already set
    14541454            if (outSSAIds.size() >= 1)
     
    14591459                            outSSAIds.begin());
    14601460                // insert SSA replaces
    1461                 size_t minSSAId = outSSAIds.front();
    1462                 for (auto sit = outSSAIds.begin()+1; sit != outSSAIds.end(); ++sit)
    1463                     insertReplace(ssaReplacesMap, ssaEntry.first, *sit, minSSAId);
     1461                if (outSSAIds.size() >= 2)
     1462                {
     1463                    size_t minSSAId = outSSAIds.front();
     1464                    for (auto sit = outSSAIds.begin()+1; sit != outSSAIds.end(); ++sit)
     1465                        insertReplace(ssaReplacesMap, ssaEntry.first, *sit, minSSAId);
     1466                }
    14641467            }
    14651468        }
     
    22122215                //prevRdata.compare(myRoutineData);
    22132216                isRoutineGen[routineBlock] = true;
     2217               
     2218                auto csimsmit = curSSAIdMapStateMap.find(routineBlock.index);
     2219                if (csimsmit != curSSAIdMapStateMap.end() && entry.blockIndex.pass==0)
     2220                {
     2221                    std::cout << " get curSSAIdMap from back recur 2" << std::endl;
     2222                    curSSAIdMap = csimsmit->second;
     2223                    curSSAIdMapStateMap.erase(csimsmit);
     2224                }
    22142225            }
    22152226           
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAllocCase3.cpp

    r3952 r3958  
    12411241                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    12421242                    { { "sa", 2 }, SSAInfo(2, 4, 4, 4, 1, true) },
    1243                     { { "sa", 3 }, SSAInfo(3, 5, 5, 5, 1, true) },
    1244                     { { "sa", 6 }, SSAInfo(2, 4, 4, 4, 1, true) }
     1243                    //{ { "sa", 3 }, SSAInfo(3, 5, 5, 5, 1, true) },
     1244                    //{ { "sa", 6 }, SSAInfo(2, 4, 4, 4, 1, true) }
     1245                    { { "sa", 3 }, SSAInfo(2, 5, 5, 5, 1, true) },
     1246                    { { "sa", 6 }, SSAInfo(1, 4, 4, 4, 1, true) }
    12451247                }, false, false, true },
    12461248            {   // block 2 - routine
     
    12861288        {   // SSA replaces
    12871289            { { "sa", 2 }, { { 3, 2 }, { 2, 1 } } },
    1288             { { "sa", 3 }, { { 3, 2 }, { 4, 3 }, { 2, 1 } } },
    1289             { { "sa", 6 }, { { 2, 1 }, { 3, 2 } } }
     1290            //{ { "sa", 3 }, { { 3, 2 }, { 4, 3 }, { 2, 1 } } },
     1291            { { "sa", 3 }, { { 3, 2 }, { 4, 2 }, { 2, 1 } } },
     1292            //{ { "sa", 6 }, { { 2, 1 }, { 3, 2 } } }
     1293            { { "sa", 6 }, { { 2, 1 }, { 3, 1 } } }
    12901294        },
    12911295        true, ""
Note: See TracChangeset for help on using the changeset viewer.