diff options
author | Hans Wennborg <hans@hanshq.net> | 2018-08-30 08:46:10 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2018-08-30 08:46:10 +0000 |
commit | 8be237552cda50ac680cb75eb6c83e3acccf037e (patch) | |
tree | 4ef9507de891eaadd77d9f55cfab5767caf96e47 | |
parent | 400322b03e6d3891a3d413b8ee7078c4ed6ac4a3 (diff) |
Merging r340416:
------------------------------------------------------------------------
r340416 | hakzsam | 2018-08-22 18:08:43 +0200 (Wed, 22 Aug 2018) | 8 lines
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
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_70@341040 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp | 10 | ||||
-rw-r--r-- | test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll | 12 |
2 files changed, 17 insertions, 5 deletions
diff --git a/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp b/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp index ef4b69d09d9..f9bddf860b9 100644 --- a/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp +++ b/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp @@ -54,8 +54,8 @@ AMDGPUAAResult::ASAliasRulesTy::ASAliasRulesTy(AMDGPUAS AS_, Triple::ArchType Ar 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::ASAliasRulesTy(AMDGPUAS AS_, Triple::ArchType Ar 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); diff --git a/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll b/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll index 51d96498c53..a84ef77cea3 100644 --- a/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll +++ b/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll @@ -7,3 +7,15 @@ define void @test(i8 addrspace(5)* %p, i8 addrspace(1)* %p1) { 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 +} + |