[llvm] r340416 - AMDGPU: fix existing alias rules for constant and global

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 30 01:47:08 PDT 2018


Merged to 7.0 in r341040.

On Wed, Aug 22, 2018 at 6:08 PM, Samuel Pitoiset via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: hakzsam
> Date: Wed Aug 22 09:08:43 2018
> New Revision: 340416
>
> URL: http://llvm.org/viewvc/llvm-project?rev=340416&view=rev
> Log:
> AMDGPU: fix existing alias rules for constant and global
>
> Constant and global may alias, also one rules table wasn't
> ordered correctly.
>
> Pinpointed by Matt.
>
> v2: add a test with swapped parameters
>
> Modified:
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
>     llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp?rev=340416&r1=340415&r2=340416&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp Wed Aug 22 09:08:43 2018
> @@ -54,8 +54,8 @@ AMDGPUAAResult::ASAliasRulesTy::ASAliasR
>    static const AliasResult ASAliasRulesPrivIsZero[6][6] = {
>    /*             Private    Global    Constant  Group     Flat      Region*/
>    /* Private  */ {MayAlias, NoAlias , NoAlias , NoAlias , MayAlias, NoAlias},
> -  /* Global   */ {NoAlias , MayAlias, NoAlias , NoAlias , MayAlias, NoAlias},
> -  /* Constant */ {NoAlias , NoAlias , MayAlias, NoAlias , MayAlias, NoAlias},
> +  /* Global   */ {NoAlias , MayAlias, MayAlias, NoAlias , MayAlias, NoAlias},
> +  /* Constant */ {NoAlias , MayAlias, MayAlias, NoAlias , MayAlias, NoAlias},
>    /* Group    */ {NoAlias , NoAlias , NoAlias , MayAlias, MayAlias, NoAlias},
>    /* Flat     */ {MayAlias, MayAlias, MayAlias, MayAlias, MayAlias, MayAlias},
>    /* Region   */ {NoAlias , NoAlias , NoAlias , NoAlias , MayAlias, MayAlias}
> @@ -63,10 +63,10 @@ AMDGPUAAResult::ASAliasRulesTy::ASAliasR
>    static const AliasResult ASAliasRulesGenIsZero[6][6] = {
>    /*             Flat       Global    Region    Group     Constant  Private */
>    /* Flat     */ {MayAlias, MayAlias, MayAlias, MayAlias, MayAlias, MayAlias},
> -  /* Global   */ {MayAlias, MayAlias, NoAlias , NoAlias , NoAlias , NoAlias},
> -  /* Constant */ {MayAlias, NoAlias , MayAlias, NoAlias , NoAlias,  NoAlias},
> -  /* Group    */ {MayAlias, NoAlias , NoAlias , MayAlias, NoAlias , NoAlias},
> +  /* Global   */ {MayAlias, MayAlias, NoAlias , NoAlias , MayAlias, NoAlias},
>    /* Region   */ {MayAlias, NoAlias , NoAlias , NoAlias,  MayAlias, NoAlias},
> +  /* Group    */ {MayAlias, NoAlias , NoAlias , MayAlias, NoAlias , NoAlias},
> +  /* Constant */ {MayAlias, MayAlias, MayAlias, NoAlias , NoAlias,  NoAlias},
>    /* Private  */ {MayAlias, NoAlias , NoAlias , NoAlias , NoAlias , MayAlias}
>    };
>    assert(AS.MAX_COMMON_ADDRESS <= 5);
>
> Modified: llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll?rev=340416&r1=340415&r2=340416&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll (original)
> +++ llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll Wed Aug 22 09:08:43 2018
> @@ -7,3 +7,15 @@ define void @test(i8 addrspace(5)* %p, i
>    ret void
>  }
>
> +; CHECK: MayAlias:      i8 addrspace(1)* %p1, i8 addrspace(4)* %p
> +
> +define void @test_constant_vs_global(i8 addrspace(4)* %p, i8 addrspace(1)* %p1) {
> +  ret void
> +}
> +
> +; CHECK: MayAlias:      i8 addrspace(1)* %p, i8 addrspace(4)* %p1
> +
> +define void @test_global_vs_constant(i8 addrspace(1)* %p, i8 addrspace(4)* %p1) {
> +  ret void
> +}
> +
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list