Changeset 4137 in CLRX


Ignore:
Timestamp:
May 10, 2018, 5:11:28 PM (7 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Add new testcases for testing createRoutineDataLv (createLivenesses): filling up liveness of vidx that not used in all return paths.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc3.cpp

    r4134 r4137  
    13471347            { 5, { { { 6, 8, 11 }, { 2, 4 }, { }, { } } } }
    13481348        }, // vidxCallMap
     1349        true, ""
     1350    },
     1351    {   // 22 - simple call, more complex routine (first unused return)
     1352        R"ffDXD(.regvar sa:s:8, va:v:8
     1353        s_mov_b32 sa[2], s4             # 0
     1354        s_mov_b32 sa[3], s5             # 4
     1355        s_mov_b32 sa[5], s5             # 8
     1356       
     1357        s_getpc_b64 s[2:3]              # 12
     1358        s_add_u32 s2, s2, routine-.     # 16
     1359        s_add_u32 s3, s3, routine-.+4   # 24
     1360        .cf_call routine
     1361        s_swappc_b64 s[0:1], s[2:3]     # 32
     1362       
     1363        s_lshl_b32 sa[2], sa[2], 3      # 36
     1364        s_lshl_b32 sa[3], sa[3], sa[5]  # 40
     1365        s_endpgm                        # 44
     1366       
     1367routine:
     1368        s_xor_b32 sa[2], sa[2], sa[4]   # 48
     1369        s_cbranch_scc1 bb1              # 52
     1370       
     1371        s_min_u32 sa[2], sa[2], sa[4]   # 56
     1372        .cf_ret
     1373        s_setpc_b64 s[0:1]              # 60
     1374       
     1375bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 64
     1376        s_xor_b32 sa[3], sa[3], sa[4]   # 68
     1377        .cf_ret
     1378        s_setpc_b64 s[0:1]              # 72
     1379)ffDXD",
     1380        {   // livenesses
     1381            {   // for SGPRs
     1382                { { 33, 36 }, { 48, 61 }, { 64, 73 } }, // 0: S0
     1383                { { 33, 36 }, { 48, 61 }, { 64, 73 } }, // 1: S1
     1384                { { 13, 33 } }, // 2: S2
     1385                { { 13, 33 } }, // 3: S3
     1386                { { 0, 1 } }, // 4: S4
     1387                { { 0, 9 } }, // 5: S5
     1388                { { 1, 36 }, { 48, 49 } }, // 6: sa[2]'0
     1389                { { 49, 57 }, { 64, 65 } }, // 7: sa[2]'1
     1390                { { 36, 37 }, { 57, 64 }, { 65, 76 } }, // 8: sa[2]'2
     1391                { { 37, 38 } }, // 9: sa[2]'3
     1392                { { 5, 41 }, { 48, 76 } }, // 10: sa[3]'0
     1393                { { 41, 42 } }, // 11: sa[3]'1
     1394                { { 0, 36 }, { 48, 57 }, { 64, 69 } }, // 12: sa[4]'0
     1395                { { 9, 41 } }  // 13: sa[5]'0
     1396            },
     1397            { },
     1398            { },
     1399            { }
     1400        },
     1401        { }, // linearDepMaps
     1402        {   // vidxRoutineMap
     1403            { 2, { { { 0, 1, 6, 7, 8, 10, 12 }, { }, { }, { } } } }
     1404        },
     1405        {   // vidxCallMap
     1406            { 0, { { { 13 }, { }, { }, { } } } }
     1407        },
     1408        true, ""
     1409    },
     1410    {   // 23 - simple nested call (checking filling unused path)
     1411        R"ffDXD(.regvar sa:s:8, va:v:8
     1412        s_mov_b32 sa[2], s4             # 0
     1413        s_mov_b32 sa[3], s5             # 4
     1414        s_mov_b32 sa[5], s5             # 8
     1415       
     1416        .cf_call routine
     1417        s_swappc_b64 s[0:1], s[2:3]     # 12
     1418       
     1419        s_lshl_b32 sa[2], sa[2], 3      # 16
     1420        s_lshl_b32 sa[3], sa[3], sa[5]  # 20
     1421        s_endpgm                        # 24
     1422       
     1423routine:
     1424        s_xor_b32 sa[2], sa[2], sa[4]   # 28
     1425        s_cbranch_scc1 bb1              # 32
     1426       
     1427        s_min_u32 sa[2], sa[2], sa[4]   # 36
     1428        .cf_ret
     1429        s_setpc_b64 s[0:1]              # 40
     1430       
     1431bb1:    s_and_b32 sa[2], sa[2], sa[4]   # 44
     1432       
     1433        .cf_call routine2
     1434        s_swappc_b64 s[4:5], s[6:7]     # 48
     1435       
     1436        .cf_ret
     1437        s_setpc_b64 s[0:1]              # 52
     1438       
     1439routine2:
     1440        s_xor_b32 sa[3], sa[3], sa[4]   # 56
     1441        .cf_ret
     1442        s_setpc_b64 s[4:5]              # 60
     1443)ffDXD",
     1444        {   // livenesses
     1445            {   // for SGPRs
     1446                { { 13, 16 }, { 28, 41 }, { 44, 53 } }, // 0: S0
     1447                { { 13, 16 }, { 28, 41 }, { 44, 53 } }, // 1: S1
     1448                { { 0, 13 } }, // 2: S2
     1449                { { 0, 13 } }, // 3: S3
     1450                { { 0, 1 }, { 49, 52 }, { 56, 61 } }, // 4: S4
     1451                { { 0, 9 }, { 49, 52 }, { 56, 61 } }, // 5: S5
     1452                { { 0, 16 }, { 28, 36 }, { 44, 49 } }, // 6: S6
     1453                { { 0, 16 }, { 28, 36 }, { 44, 49 } }, // 7: S7
     1454                { { 1, 16 }, { 28, 29 } }, // 8: sa[2]'0
     1455                { { 29, 37 }, { 44, 45 } }, // 9: sa[2]'1
     1456                { { 16, 17 }, { 37, 44 }, { 45, 56 } }, // 10: sa[2]'2
     1457                { { 17, 18 } }, // 11: sa[2]'3
     1458                { { 5, 21 }, { 28, 64 } }, // 12: sa[3]'0
     1459                { { 21, 22 } }, // 13: sa[3]'1
     1460                { { 0, 16 }, { 28, 37 }, { 44, 52 }, { 56, 57 } }, // 14: sa[4]'0
     1461                { { 9, 21 } }  // 15: sa[5]'0
     1462            },
     1463            { },
     1464            { },
     1465            { }
     1466        },
     1467        { }, // linearDepMaps
     1468        {   // vidxRoutineMap
     1469            { 2, { { { 0, 1, 4, 5, 6, 7, 8, 9, 10, 12, 14 }, { }, { }, { } } } },
     1470            { 6, { { { 4, 5, 12, 14 }, { }, { }, { } } } }
     1471        },
     1472        {   // vidxCallMap
     1473            { 0, { { { 15 }, { }, { }, { } } } },
     1474            { 4, { { { 0, 1, 10 }, { }, { }, { } } } }
     1475        },
    13491476        true, ""
    13501477    }
Note: See TracChangeset for help on using the changeset viewer.