Changeset 3916 in CLRX


Ignore:
Timestamp:
Mar 21, 2018, 5:42:46 PM (4 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add new testsuite. Do not put already cached subroutine.

Location:
CLRadeonExtender/trunk
Files:
1 added
4 edited

Legend:

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

    r3913 r3916  
    14831483            bool applyToMainRoutine)
    14841484        {
     1485            if (subroutinesCache.hasKey(entry.blockIndex))
     1486            {
     1487                // if already put, just applyToMainRoutine if needed
     1488                if (applyToMainRoutine &&
     1489                    loopBlocks.find(entry.blockIndex) != loopBlocks.end() &&
     1490                    loopsit2 != rdata.loopEnds.end())
     1491                {
     1492                    RoutineData* subRdata = subroutinesCache.use(entry.blockIndex);
     1493                    joinLastSSAIdMap(rdata.lastSSAIdMap, loopsit2->second.ssaIdMap,
     1494                                        *subRdata, true);
     1495                }
     1496                return;
     1497            }
     1498           
    14851499            RoutineData subrData;
    14861500            const bool oldFB = flowStackBlocks[entry.blockIndex];
     
    18961910                isRoutineGen[callStack.back().routineBlock] = true;
    18971911            }
     1912           
     1913           
     1914           
    18981915            callStack.pop_back(); // just return from call
    18991916            if (!callStack.empty())
     
    19321949            if (entry.nextIndex!=0) // if back from calls (just return from calls)
    19331950            {
     1951                //
    19341952                for (const NextBlock& next: cblock.nexts)
    19351953                    if (next.isCall)
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.cpp

    r3893 r3916  
    313313            retVal = 1;
    314314        }
     315    for (size_t i = 0; ssaDataTestCases3Tbl[i].input!=nullptr; i++)
     316        try
     317        { testCreateSSAData(2, i, ssaDataTestCases3Tbl[i]); }
     318        catch(const std::exception& ex)
     319        {
     320            std::cerr << ex.what() << std::endl;
     321            retVal = 1;
     322        }
    315323    return retVal;
    316324}
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.h

    r3887 r3916  
    9898extern const AsmSSADataCase ssaDataTestCases1Tbl[];
    9999extern const AsmSSADataCase ssaDataTestCases2Tbl[];
     100extern const AsmSSADataCase ssaDataTestCases3Tbl[];
    100101
    101102#endif
  • CLRadeonExtender/trunk/tests/amdasm/CMakeLists.txt

    r3887 r3916  
    8585        AsmRegAlloc.cpp
    8686        AsmRegAllocCase1.cpp
    87         AsmRegAllocCase2.cpp)
     87        AsmRegAllocCase2.cpp
     88        AsmRegAllocCase3.cpp)
    8889TEST_LINK_LIBRARIES(AsmRegAlloc CLRXAmdAsm CLRXAmdBin CLRXUtils)
    8990ADD_TEST(AsmRegAlloc AsmRegAlloc)
Note: See TracChangeset for help on using the changeset viewer.