Changeset 3605 in CLRX


Ignore:
Timestamp:
Jan 10, 2018, 1:06:56 PM (8 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add more complex testcase with two branches. Remove obsolete structures.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3604 r3605  
    441441}
    442442
    443 struct SSAId
    444 {
    445     size_t ssaId;
    446     size_t blockIndex;
    447 };
    448 
    449443// map of last SSAId for routine, key - varid, value - last SSA ids
    450 
    451444typedef std::unordered_map<AsmSingleVReg, std::vector<size_t> > LastSSAIdMap;
     445
    452446struct RoutineData
    453447{
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.cpp

    r3604 r3605  
    15791579            { { "va", 1 }, { { 2, 1 }, { 2, 1 }, { 3, 1 } } },
    15801580            { { "va", 2 }, { { 4, 1 }, { 4, 1 }, { 5, 1 } } }
     1581        },
     1582        true, ""
     1583    },
     1584    {   // 9 - two branches
     1585        R"ffDXD(.regvar sa:s:8, va:v:8
     1586        # block 0
     1587        s_mov_b64 sa[0:1], 321
     1588        s_mov_b32 sa[2], s1
     1589        s_mov_b32 sa[3], s2
     1590        s_cmpk_eq_u32 s1, 321
     1591        s_cbranch_scc1 bb10
     1592       
     1593        # block 1
     1594        s_add_u32 sa[0], sa[0], sa[1]
     1595        s_add_u32 sa[0], sa[0], sa[1]
     1596        s_add_u32 sa[0], sa[0], sa[1]
     1597        s_cbranch_scc1 bb01
     1598       
     1599        # block 2
     1600        s_add_u32 sa[0], sa[0], sa[1]
     1601        s_add_u32 sa[0], sa[0], sa[1]
     1602        s_branch bb0e
     1603       
     1604        # block 3
     1605bb01:   s_add_u32 sa[0], sa[0], sa[1]
     1606        s_add_u32 sa[0], sa[0], sa[1]
     1607       
     1608        # block 4
     1609bb0e:   s_add_u32 sa[0], sa[0], sa[2]
     1610        s_endpgm
     1611       
     1612        # block 5
     1613bb10:   s_add_u32 sa[0], sa[0], sa[1]
     1614        s_add_u32 sa[0], sa[0], sa[1]
     1615        s_add_u32 sa[0], sa[0], sa[1]
     1616        s_add_u32 sa[0], sa[0], sa[1]
     1617        s_add_u32 sa[0], sa[0], sa[1]
     1618        s_cbranch_scc1 bb11
     1619       
     1620        # block 6
     1621        s_add_u32 sa[0], sa[0], sa[2]
     1622        s_add_u32 sa[0], sa[0], sa[2]
     1623        s_branch bb1e
     1624       
     1625        # block 7
     1626bb11:   s_add_u32 sa[0], sa[0], sa[3]
     1627        s_add_u32 sa[0], sa[0], sa[3]
     1628       
     1629        # block 8
     1630bb1e:   s_add_u32 sa[0], sa[0], sa[1]
     1631        s_endpgm
     1632)ffDXD",
     1633        {
     1634            // block 0 - start
     1635            { 0, 24,
     1636                { { 1, false }, { 5, false } },
     1637                {
     1638                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1639                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1640                    { { "sa", 0 }, SSAInfo(0, 1, 1, 1, 1, false) },
     1641                    { { "sa", 1 }, SSAInfo(0, 1, 1, 1, 1, false) },
     1642                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     1643                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) }
     1644                }, false, false, false },
     1645            // block 1 - bb00
     1646            { 24, 40,
     1647                { { 2, false }, { 3, false } },
     1648                {
     1649                    { { "sa", 0 }, SSAInfo(1, 2, 2, 4, 3, true) },
     1650                    { { "sa", 1 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1651                }, false, false, false },
     1652            // block 2 - bb00 second
     1653            { 40, 52,
     1654                { { 4, false } },
     1655                {
     1656                    { { "sa", 0 }, SSAInfo(4, 5, 5, 6, 2, true) },
     1657                    { { "sa", 1 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1658                }, false, false, true },
     1659            // block 3 - bb01
     1660            { 52, 60,
     1661                { },
     1662                {
     1663                    { { "sa", 0 }, SSAInfo(4, 8, 8, 9, 2, true) },
     1664                    { { "sa", 1 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1665                }, false, false, false },
     1666            // block 4 - bb0e
     1667            { 60, 68,
     1668                { },
     1669                {
     1670                    { { "sa", 0 }, SSAInfo(6, 7, 7, 7, 1, true) },
     1671                    { { "sa", 2 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1672                }, false, false, true },
     1673            // block 5 - bb10
     1674            { 68, 92,
     1675                { { 6, false }, { 7, false } },
     1676                {
     1677                    { { "sa", 0 }, SSAInfo(1, 10, 10, 14, 5, true) },
     1678                    { { "sa", 1 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1679                }, false, false, false },
     1680            // block 6 - bb10 (second)
     1681            { 92, 104,
     1682                { { 8, false } },
     1683                {
     1684                    { { "sa", 0 }, SSAInfo(14, 15, 15, 16, 2, true) },
     1685                    { { "sa", 2 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1686                }, false, false, true },
     1687            // block 7 - bb11
     1688            { 104, 112,
     1689                { },
     1690                {
     1691                    { { "sa", 0 }, SSAInfo(14, 18, 18, 19, 2, true) },
     1692                    { { "sa", 3 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1693                }, false, false, false },
     1694            // block 8 - bb1e
     1695            { 112, 120,
     1696                { },
     1697                {
     1698                    { { "sa", 0 }, SSAInfo(16, 17, 17, 17, 1, true) },
     1699                    { { "sa", 1 }, SSAInfo(1, SIZE_MAX, 2, SIZE_MAX, 0, true) }
     1700                }, false, false, true }
     1701        },
     1702        {   // SSA replaces
     1703            { { "sa", 0 }, { { 9, 6 }, { 19, 16 } } }
    15811704        },
    15821705        true, ""
Note: See TracChangeset for help on using the changeset viewer.