Ignore:
Timestamp:
Mar 5, 2018, 7:07:34 PM (18 months ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmRegAlloc?: Implement subroutine cache usage. Add new testcase with fork&join inside routine. Disable previous testcase.

File:
1 edited

Legend:

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

    r3863 r3872  
    38593859        true, ""
    38603860    },
     3861#if 0
    38613862    {   // 30 - routine with loop
    38623863        R"ffDXD(.regvar sa:s:8, va:v:8, xa:s:8
     
    39913992            { { "sa", 2 }, { { 3, 2 }, { 3, 2 }, { 4, 1 } } },
    39923993            { { "sa", 5 }, { { 3, 2 }, { 4, 2 }, { 5, 2 }, { 3, 1 }, { 5, 2 }, { 6, 1 } } }
     3994        },
     3995        true, ""
     3996    }
     3997#endif
     3998    {   // 31 - routine with condition
     3999        R"ffDXD(.regvar sa:s:8, va:v:8, xa:s:8
     4000        s_mov_b32 sa[2], s4
     4001        s_mov_b32 sa[3], s5
     4002        s_mov_b32 sa[4], s6
     4003        s_mov_b32 sa[5], s7
     4004       
     4005        .cf_call routine
     4006        s_swappc_b64 s[0:1], s[2:3]
     4007       
     4008        s_xor_b32 sa[5], sa[5], sa[0]
     4009        s_xor_b32 sa[2], sa[2], sa[0]
     4010       
     4011        .cf_call routine
     4012        s_swappc_b64 s[0:1], s[2:3]
     4013       
     4014        s_endpgm
     4015       
     4016routine:
     4017        s_add_u32 sa[2], sa[2], sa[0]
     4018        s_add_u32 sa[3], sa[3], sa[1]
     4019       
     4020        s_add_u32 sa[4], sa[3], sa[0]
     4021        s_add_u32 sa[5], sa[3], sa[5]
     4022        s_cbranch_scc1 j1
     4023       
     4024j0:     s_add_u32 sa[2], sa[3], sa[0]
     4025        s_add_u32 sa[4], sa[3], sa[1]
     4026        s_branch rend
     4027
     4028j1:     s_add_u32 sa[5], sa[2], sa[0]
     4029        s_add_u32 sa[4], sa[3], sa[1]
     4030
     4031rend:
     4032        s_add_u32 sa[5], sa[5], sa[0]
     4033        s_add_u32 sa[3], sa[3], sa[1]
     4034        .cf_ret
     4035        s_setpc_b64 s[0:1]
     4036)ffDXD",
     4037        {
     4038            {   // block 0 - start
     4039                0, 20,
     4040                { { 3, true } },
     4041                {
     4042                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     4043                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     4044                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4045                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4046                    { { "", 4 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4047                    { { "", 5 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4048                    { { "", 6 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4049                    { { "", 7 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4050                    { { "sa", 2 }, SSAInfo(0, 1, 1, 1, 1, false) },
     4051                    { { "sa", 3 }, SSAInfo(0, 1, 1, 1, 1, false) },
     4052                    { { "sa", 4 }, SSAInfo(0, 1, 1, 1, 1, false) },
     4053                    { { "sa", 5 }, SSAInfo(0, 1, 1, 1, 1, false) }
     4054                }, true, false, false },
     4055            {   // block 1 - before second call
     4056                20, 32,
     4057                { { 3, true } },
     4058                {
     4059                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, false) },
     4060                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, false) },
     4061                    { { "", 2 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4062                    { { "", 3 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4063                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4064                    { { "sa", 2 }, SSAInfo(2, 4, 4, 4, 1, true) },
     4065                    { { "sa", 5 }, SSAInfo(3, 5, 5, 5, 1, true) }
     4066                }, true, false, false },
     4067            {   // block 2 - end
     4068                32, 36,
     4069                { },
     4070                { }, false, false, true },
     4071            {   // block 3 - routine
     4072                36, 56,
     4073                { { 4, false }, { 5, false } },
     4074                {
     4075                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4076                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4077                    { { "sa", 2 }, SSAInfo(1, 2, 2, 2, 1, true) },
     4078                    { { "sa", 3 }, SSAInfo(1, 2, 2, 2, 1, true) },
     4079                    { { "sa", 4 }, SSAInfo(1, 2, 2, 2, 1, false) },
     4080                    { { "sa", 5 }, SSAInfo(1, 2, 2, 2, 1, true) }
     4081                }, false, false, false },
     4082            {   // block 4 - j0
     4083                56, 68,
     4084                { { 6, false } },
     4085                {
     4086                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4087                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4088                    { { "sa", 2 }, SSAInfo(2, 3, 3, 3, 1, false) },
     4089                    { { "sa", 3 }, SSAInfo(2, SIZE_MAX, 3, SIZE_MAX, 0, true) },
     4090                    { { "sa", 4 }, SSAInfo(2, 3, 3, 3, 1, false) }
     4091                },
     4092                false, false, true },
     4093            {   // block 5 - j1
     4094                68, 76,
     4095                { },
     4096                {
     4097                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4098                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4099                    { { "sa", 2 }, SSAInfo(2, SIZE_MAX, 4, SIZE_MAX, 0, true) },
     4100                    { { "sa", 3 }, SSAInfo(2, SIZE_MAX, 4, SIZE_MAX, 0, true) },
     4101                    { { "sa", 4 }, SSAInfo(2, 4, 4, 4, 1, false) },
     4102                    { { "sa", 5 }, SSAInfo(2, 4, 4, 4, 1, false) }
     4103                }, false, false, false },
     4104            {   // block 6 - end
     4105                76, 88,
     4106                { },
     4107                {
     4108                    { { "", 0 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4109                    { { "", 1 }, SSAInfo(0, 0, 0, 0, 0, true) },
     4110                    { { "sa", 0 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4111                    { { "sa", 1 }, SSAInfo(0, SIZE_MAX, 1, SIZE_MAX, 0, true) },
     4112                    { { "sa", 3 }, SSAInfo(2, 3, 3, 3, 1, true) },
     4113                    { { "sa", 5 }, SSAInfo(2, 3, 3, 3, 1, true) }
     4114                }, false, true, true }
     4115        },
     4116        {   // SSA replaces
     4117            { { "sa", 2 }, { { 3, 2 }, { 4, 1 } } },
     4118            { { "sa", 5 }, { { 4, 2 }, { 5, 1 } } }
    39934119        },
    39944120        true, ""
Note: See TracChangeset for help on using the changeset viewer.