Changeset 3590 in CLRX


Ignore:
Timestamp:
Jan 7, 2018, 4:38:52 PM (11 days ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Fixed createSSAData: wrong ssaIdBefore if ssaId has been changed in earlier path and it is first ssaId (0) and readBefore.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

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

    r3589 r3590  
    764764                    {
    765765                        // first read before write at all, need change totalcount, ssaId
     766                        entry.prevSSAIds.insert({ ssaEntry.first, ssaId });
    766767                        ssaId++;
    767768                        totalSSACount++;
    768                     }   
     769                    }
     770                    else if (ssaId == 0 && ssaEntry.second.readBeforeWrite)
     771                    {
     772                        entry.prevSSAIds.insert({ ssaEntry.first, ssaId });
     773                        ssaId++;
     774                    }
     775                   
    769776                    if (ssaId != totalSSACount) // save old ssaId
    770777                        entry.prevSSAIds.insert({ ssaEntry.first, ssaId });
  • CLRadeonExtender/trunk/tests/amdasm/AsmRegAlloc.cpp

    r3589 r3590  
    826826        { },
    827827        true, ""
    828     }
    829 #if 0
    830     ,
     828    },
    831829    {   /* 3 - longer tree (more blocks) */
    832830        R"ffDXD(.regvar sa:s:8, va:v:12, vb:v:10
     
    861859tx1:    v_min_f32 vb[0], va[0], va[1]
    862860        v_madak_f32 vb[5], vb[0], va[1], 2.5
     861        s_endpgm
    863862ux1:    v_nop
     863        s_endpgm
    864864vx1:    v_add_f32 va[9], v11, vb[4]
     865        s_endpgm
    865866wx1:    v_add_f32 va[10], v11, vb[4]
    866867        s_endpgm
     
    868869tx2:    v_max_f32 vb[1], va[0], va[1]
    869870        v_madak_f32 va[3], va[0], va[1], 2.5
     871        s_endpgm
    870872ux2:    v_nop
    871873        s_nop 7
     874        s_endpgm
    872875vx2:    v_nop
     876        s_endpgm
    873877wx2:    v_add_f32 va[8], v19, vb[5]
    874878        s_endpgm
     
    876880tx3:    v_max_u32 vb[2], va[0], va[1]
    877881        v_madmk_f32 vb[3], va[0], 1.23, vb[1]
     882        s_endpgm
    878883ux3:    v_add_f32 va[7], v11, vb[5]
     884        s_endpgm
    879885vx3:    v_add_f32 va[6], v13, vb[5]
     886        s_endpgm
    880887wx3:    v_nop
    881888        s_endpgm
     
    885892                { { 1, false }, { 4, false }, { 8, false }, { 12, false } },
    886893                {
    887                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    888                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    889                     { { "", 256 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    890                     { { "", 256+1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    891                     { { "", 256+2 }, SSAInfo(SIZE_MAX, 0, 0, SIZE_MAX, 0, false) },
    892                     { { "", 256+3 }, SSAInfo(SIZE_MAX, 0, 0, SIZE_MAX, 0, false) },
    893                     { { "", 256+4 }, SSAInfo(SIZE_MAX, 0, 0, SIZE_MAX, 0, false) },
    894                     { { "", 256+5 }, SSAInfo(SIZE_MAX, 0, 0, SIZE_MAX, 0, false) },
     894                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     895                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     896                    { { "", 256 }, SSAInfo(0, 0, 0, 0, 0, true) },
     897                    { { "", 256+1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     898                    { { "", 256+2 }, SSAInfo(0, 0, 0, 0, 0, false) },
     899                    { { "", 256+3 }, SSAInfo(0, 0, 0, 0, 0, false) },
     900                    { { "", 256+4 }, SSAInfo(0, 0, 0, 0, 0, false) },
     901                    { { "", 256+5 }, SSAInfo(0, 0, 0, 0, 0, false) },
    895902                    { { "va", 0 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
    896                     { { "va", 1 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     903                    { { "va", 1 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) }
    897904                }, false, false, false },
    898905            { 28, 52,
    899906                { { 2, false }, { 5, false }, { 9, false }, { 13, false } },
    900907                {
    901                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    902                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    903                     { { "", 256+2 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     908                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     909                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     910                    { { "", 256+2 }, SSAInfo(0, 0, 0, 0, 0, true) },
    904911                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    905912                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     
    912919                { { 3, false }, { 6, false }, { 10, false }, { 14, false } },
    913920                {
    914                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    915                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    916                     { { "", 256+3, }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
     921                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     922                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     923                    { { "", 256+3, }, SSAInfo(0, 0, 0, 0, 0, true) },
    917924                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    918925                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     
    920927                    { { "va", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
    921928                    { { "va", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
    922                     { { "va", 5 }, SSAInfo(0, 1, 1, 1, 1, false) },
     929                    { { "va", 5 }, SSAInfo(0, 1, 1, 1, 1, false) }
    923930                }, false, false, false },
    924931            { 68, 92,
    925932                { { 7, false }, { 11, false }, { 15, false } },
    926933                {
    927                     { { "", 0 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    928                     { { "", 1 }, SSAInfo(0, SIZE_MAX, 0, SIZE_MAX, 0, true) },
    929                 }, false, false, false },
     934                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     935                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     936                    { { "", 256+4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     937                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     938                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     939                    { { "va", 2 }, SSAInfo(1, 2, 2, 2, 1, false) },
     940                    { { "va", 3 }, SSAInfo(1, 2, 2, 2, 1, false) },
     941                    { { "va", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     942                    { { "va", 6 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) }
     943                }, false, false, true },
    930944            // 4-7:
    931             { 96, 108,
     945            { 96, 112,
    932946                { },
    933                 { }, false, false, false },
    934             { 108, 112,
    935                 { },
    936                 { }, false, false, false },
    937             { 112, 116,
    938                 { },
    939                 { }, false, false, false },
    940             { 116, 124,
     947                {
     948                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     949                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     950                    { { "vb", 0 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     951                    { { "vb", 5 }, SSAInfo(SIZE_MAX, 1, 1, 1, 1, false) }
     952                }, false, false, true },
     953            { 112, 120,
    941954                { },
    942955                { }, false, false, true },
     956            { 120, 128,
     957                { },
     958                {
     959                    { { "", 256+11 }, SSAInfo(0, 0, 0, 0, 0, true) },
     960                    { { "va", 9 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     961                    { { "vb", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     962                }, false, false, true },
     963            { 128, 136,
     964                { },
     965                {
     966                    { { "", 256+11 }, SSAInfo(0, 0, 0, 0, 0, true) },
     967                    { { "va", 10 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     968                    { { "vb", 4 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     969                }, false, false, true },
    943970            // 8-11
    944             { 128, 140,
     971            { 144, 160,
    945972                { },
    946                 { }, false, false, false },
    947             { 140, 148,
    948                 { },
    949                 { }, false, false, false },
    950             { 148, 152,
    951                 { },
    952                 { }, false, false, false },
    953             { 152, 160,
     973                {
     974                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     975                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     976                    { { "va", 3 }, SSAInfo(SIZE_MAX, 3, 3, 3, 1, false) },
     977                    { { "vb", 1 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) }
     978                }, false, false, true },
     979            { 160, 172,
    954980                { },
    955981                { }, false, false, true },
    956             // 12-15
    957             { 160, 172,
     982            { 172, 180,
    958983                { },
    959                 { }, false, false, false },
    960             { 172, 176,
    961                 { },
    962                 { }, false, false, false },
    963             { 176, 180,
    964                 { },
    965                 { }, false, false, false },
     984                { }, false, false, true },
    966985            { 180, 188,
    967986                { },
     987                {
     988                    { { "", 256+19 }, SSAInfo(0, 0, 0, 0, 0, true) },
     989                    { { "va", 8 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     990                    { { "vb", 5 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     991                }, false, false, true },
     992            // 12-15
     993            { 192, 208,
     994                { },
     995                {
     996                    { { "va", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     997                    { { "va", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     998                    { { "vb", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     999                    { { "vb", 2 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     1000                    { { "vb", 3 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) }
     1001                }, false, false, true },
     1002            { 208, 216,
     1003                { },
     1004                {
     1005                    { { "", 256+11 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1006                    { { "va", 7 }, SSAInfo(SIZE_MAX, 0, 0, 0, 1, false) },
     1007                    { { "vb", 5 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     1008                }, false, false, true },
     1009            { 216, 224,
     1010                { },
     1011                {
     1012                    { { "", 256+13 }, SSAInfo(0, 0, 0, 0, 0, true) },
     1013                    { { "va", 6 }, SSAInfo(SIZE_MAX, 1, 1, 1, 1, false) },
     1014                    { { "vb", 5 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) }
     1015                }, false, false, true },
     1016            { 224, 232,
     1017                { },
    9681018                { }, false, false, true }
    9691019        },
     
    9711021        true, ""
    9721022    }
    973 #endif
    9741023};
    9751024
Note: See TracChangeset for help on using the changeset viewer.