[polly] 53720f7 - [Polly] Partially fix scoped alias metadata

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 20 13:52:21 PDT 2021


Author: Nikita Popov
Date: 2021-09-20T22:51:31+02:00
New Revision: 53720f74e4e32fe11a1688282f7d09dc1828b83a

URL: https://github.com/llvm/llvm-project/commit/53720f74e4e32fe11a1688282f7d09dc1828b83a
DIFF: https://github.com/llvm/llvm-project/commit/53720f74e4e32fe11a1688282f7d09dc1828b83a.diff

LOG: [Polly] Partially fix scoped alias metadata

This partially addresses the verifier failures caused by D110026.
In particular, it does not fix the "second level" alias metadata.

Added: 
    

Modified: 
    polly/lib/CodeGen/IRBuilder.cpp
    polly/test/CodeGen/stride_detection.ll
    polly/test/Isl/CodeGen/MemAccess/codegen_address_space.ll
    polly/test/Isl/CodeGen/MemAccess/create_arrays.ll
    polly/test/Isl/CodeGen/MemAccess/different_types.ll
    polly/test/Isl/CodeGen/MemAccess/generate-all.ll
    polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll
    polly/test/Isl/CodeGen/OpenMP/new_multidim_access.ll
    polly/test/Isl/CodeGen/annotated_alias_scopes.ll
    polly/test/Isl/CodeGen/getNumberOfIterations.ll
    polly/test/Isl/CodeGen/invariant_load_alias_metadata.ll
    polly/test/Isl/CodeGen/invariant_loads_ignore_parameter_bounds.ll
    polly/test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll
    polly/test/Isl/CodeGen/non_affine_float_compare.ll
    polly/test/Isl/CodeGen/partial_write_array.ll
    polly/test/Isl/CodeGen/partial_write_full_write_that_appears_partial.ll
    polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll
    polly/test/Isl/CodeGen/phi_loop_carried_float.ll
    polly/test/Isl/CodeGen/phi_loop_carried_float_escape.ll
    polly/test/Isl/CodeGen/scev-backedgetaken.ll
    polly/test/Isl/CodeGen/simple_vec_assign_scalar.ll
    polly/test/Isl/CodeGen/stmt_split_no_dependence.ll
    polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll
    polly/test/ScopInfo/int2ptr_ptr2int.ll
    polly/test/ScopInfo/int2ptr_ptr2int_2.ll

Removed: 
    


################################################################################
diff  --git a/polly/lib/CodeGen/IRBuilder.cpp b/polly/lib/CodeGen/IRBuilder.cpp
index e50fb14d8431a..3479ebda10436 100644
--- a/polly/lib/CodeGen/IRBuilder.cpp
+++ b/polly/lib/CodeGen/IRBuilder.cpp
@@ -304,7 +304,7 @@ void ScopAnnotator::annotate(Instruction *Inst) {
     return;
   }
 
-  Inst->setMetadata("alias.scope", AliasScope);
+  Inst->setMetadata("alias.scope", MDNode::get(SE->getContext(), AliasScope));
   Inst->setMetadata("noalias", OtherAliasScopeList);
 }
 

diff  --git a/polly/test/CodeGen/stride_detection.ll b/polly/test/CodeGen/stride_detection.ll
index 0bbaaa3698814..c05fcfa3dd43e 100644
--- a/polly/test/CodeGen/stride_detection.ll
+++ b/polly/test/CodeGen/stride_detection.ll
@@ -10,13 +10,13 @@
 ;             Stmt_for_body_3(32 * c0 + 4 * c2 + c4, 32 * c1 + c3);
 
 ; CHECK: polly.stmt.for.body.3:                            ; preds = %polly.loop_header18
-; CHECK:   %_p_splat_one = load <1 x double>, <1 x double>* %_p_vec_p, align 8, !alias.scope !3, !noalias !5, !llvm.access.group !2
-; CHECK:   %_p_vec_full = load <4 x double>, <4 x double>* %vector_ptr, align 8, !alias.scope !6, !noalias !7, !llvm.access.group !2
+; CHECK:   %_p_splat_one = load <1 x double>, <1 x double>* %_p_vec_p, align 8, !alias.scope !3, !noalias !6, !llvm.access.group !2
+; CHECK:   %_p_vec_full = load <4 x double>, <4 x double>* %vector_ptr, align 8, !alias.scope !6, !noalias !3, !llvm.access.group !2
 ; CHECK:   extractelement <4 x double> %addp_vec, i32 0
 ; CHECK:   extractelement <4 x double> %addp_vec, i32 1
 ; CHECK:   extractelement <4 x double> %addp_vec, i32 2
 ; CHECK:   extractelement <4 x double> %addp_vec, i32 3
-; CHECK:   store <4 x double> %addp_vec, <4 x double>* {{.*}}, align 8, !alias.scope !6, !noalias !7, !llvm.access.group !2
+; CHECK:   store <4 x double> %addp_vec, <4 x double>* {{.*}}, align 8, !alias.scope !6, !noalias !3, !llvm.access.group !2
 
 define void @kernel_gemm(i32 %ni, i32 %nj, i32 %nk, [1024 x double]* %C, [1024 x double]* %A) #0 {
 entry:

diff  --git a/polly/test/Isl/CodeGen/MemAccess/codegen_address_space.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_address_space.ll
index a013e1bc93425..0127bd1b1aa47 100644
--- a/polly/test/Isl/CodeGen/MemAccess/codegen_address_space.ll
+++ b/polly/test/Isl/CodeGen/MemAccess/codegen_address_space.ll
@@ -41,4 +41,4 @@ for.end:                                          ; preds = %for.cond
 
 ; CHECK: %polly.access.cast.A = bitcast [100 x i32] addrspace(5)* %A to i32 addrspace(5)*
 ; CHECK: %polly.access.A = getelementptr i32, i32 addrspace(5)* %polly.access.cast.A, i64 0
-; CHECK: %tmp2_p_scalar_ = load i32, i32 addrspace(5)* %polly.access.A, align 4, !alias.scope !0, !noalias !2
+; CHECK: %tmp2_p_scalar_ = load i32, i32 addrspace(5)* %polly.access.A, align 4, !alias.scope !0, !noalias !3

diff  --git a/polly/test/Isl/CodeGen/MemAccess/create_arrays.ll b/polly/test/Isl/CodeGen/MemAccess/create_arrays.ll
index 97e586076f73a..dbd0a7bb2c41f 100644
--- a/polly/test/Isl/CodeGen/MemAccess/create_arrays.ll
+++ b/polly/test/Isl/CodeGen/MemAccess/create_arrays.ll
@@ -29,17 +29,19 @@
 ; CODEGEN:  %polly.access.cast.E = bitcast [270336 x [200000 x double]]* %E to double*
 ; CODEGEN:  %polly.access.mul.E = mul nsw i64 %polly.indvar33, 200000
 ; CODEGEN:  %polly.access.add.E = add nsw i64 %polly.access.mul.E, %polly.indvar
-; CODEGEN:  {{%.*}} = load double, double* %polly.access.E, align 8, !alias.scope [[TAG0:![0-9]+]], !noalias [[TAG2:![0-9]+]]
-; CODEGEN:  store double {{%.*}}, double* %scevgep36, align 8, !alias.scope [[TAG5:![0-9]+]], !noalias [[TAG8:![0-9]+]]
+; CODEGEN:  {{%.*}} = load double, double* %polly.access.E, align 8, !alias.scope !0, !noalias !3
+; CODEGEN:  store double {{%.*}}, double* %scevgep36, align 8, !alias.scope !8, !noalias !9
 ;
-; CODEGEN: [[TAG0]] = distinct !{[[TAG0]], [[TAG1:![0-9]+]], !"polly.alias.scope.E"}
-; CODEGEN: [[TAG1]] = distinct !{[[TAG1]], !"polly.alias.scope.domain"}
-; CODEGEN: [[TAG2]] = !{[[TAG3:![0-9]+]], [[TAG4:![0-9]+]], [[TAG5:![0-9]+]], [[TAG6:![0-9]+]]}
-; CODEGEN: [[TAG3]] = distinct !{[[TAG3]], [[TAG1]], !"polly.alias.scope.MemRef_B"}
-; CODEGEN: [[TAG4]] = distinct !{[[TAG4]], [[TAG1]], !"polly.alias.scope.MemRef_A"}
-; CODEGEN: [[TAG5]] = distinct !{[[TAG5]], [[TAG1]], !"polly.alias.scope.D"}
-; CODEGEN: [[TAG6]] = distinct !{[[TAG6]], [[TAG1]], !"polly.alias.scope.F"}
-; CODEGEN: [[TAG7:![0-9]+]] = !{[[TAG3]], [[TAG5]], [[TAG0]], [[TAG6]]}
+; CODEGEN: !0 = !{!1}
+; CODEGEN: !1 = distinct !{!1, !2, !"polly.alias.scope.E"}
+; CODEGEN: !2 = distinct !{!2, !"polly.alias.scope.domain"}
+; CODEGEN: !3 = !{!4, !5, !6, !7}
+; CODEGEN: !4 = distinct !{!4, !2, !"polly.alias.scope.MemRef_B"}
+; CODEGEN: !5 = distinct !{!5, !2, !"polly.alias.scope.MemRef_A"}
+; CODEGEN: !6 = distinct !{!6, !2, !"polly.alias.scope.D"}
+; CODEGEN: !7 = distinct !{!7, !2, !"polly.alias.scope.F"}
+; CODEGEN: !8 = !{!5}
+; CODEGEN: !9 = !{!4, !6, !1, !7}
 ;
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-unknown"

diff  --git a/polly/test/Isl/CodeGen/MemAccess/
diff erent_types.ll b/polly/test/Isl/CodeGen/MemAccess/
diff erent_types.ll
index 35836b6e8c345..50320a66ff2e6 100644
--- a/polly/test/Isl/CodeGen/MemAccess/
diff erent_types.ll
+++ b/polly/test/Isl/CodeGen/MemAccess/
diff erent_types.ll
@@ -14,7 +14,7 @@
 ; CHECK: %[[R2:[._0-9]*]] = add nsw i64 %[[R1]], 99
 ; CHECK: %polly.access.A15 = getelementptr i32, i32* %polly.access.cast.A14, i64 %[[R2]]
 ; CHECK: %[[R3:[._0-9]*]] = bitcast i32* %polly.access.A15 to float*
-; CHECK: %tmp14_p_scalar_ = load float, float* %[[R3]], align 4, !alias.scope !3, !noalias !4
+; CHECK: %tmp14_p_scalar_ = load float, float* %[[R3]], align 4, !alias.scope !3, !noalias !0
 
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 

diff  --git a/polly/test/Isl/CodeGen/MemAccess/generate-all.ll b/polly/test/Isl/CodeGen/MemAccess/generate-all.ll
index f9b07a947c6ae..8fb5d2acdc71a 100644
--- a/polly/test/Isl/CodeGen/MemAccess/generate-all.ll
+++ b/polly/test/Isl/CodeGen/MemAccess/generate-all.ll
@@ -12,9 +12,9 @@
 ; SCEV-NEXT:   %0 = trunc i64 %polly.indvar to i2
 ; SCEV-NEXT:   %1 = zext i2 %0 to i64
 ; SCEV-NEXT:   %scevgep = getelementptr float, float* %A, i64 %1
-; SCEV-NEXT:   %tmp4_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2
+; SCEV-NEXT:   %tmp4_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !3
 ; SCEV-NEXT:   %p_tmp5 = fadd float %tmp4_p_scalar_, 1.000000e+01
-; SCEV-NEXT:   store float %p_tmp5, float* %scevgep, align 4, !alias.scope !0, !noalias !2
+; SCEV-NEXT:   store float %p_tmp5, float* %scevgep, align 4, !alias.scope !0, !noalias !3
 ; SCEV-NEXT:   %polly.indvar_next = add nsw i64 %polly.indvar, 1
 ; SCEV-NEXT:   %polly.loop_cond = icmp sle i64 %polly.indvar_next, 99
 ; SCEV-NEXT:   br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit
@@ -22,11 +22,11 @@
 ; ASTEXPR: 	polly.stmt.bb2:                                   ; preds = %polly.loop_header
 ; ASTEXPR-NEXT:   %pexp.pdiv_r = urem i64 %polly.indvar, 4
 ; ASTEXPR-NEXT:   %polly.access.A = getelementptr float, float* %A, i64 %pexp.pdiv_r
-; ASTEXPR-NEXT:   %tmp4_p_scalar_ = load float, float* %polly.access.A, align 4, !alias.scope !0, !noalias !2
+; ASTEXPR-NEXT:   %tmp4_p_scalar_ = load float, float* %polly.access.A, align 4, !alias.scope !0, !noalias !3
 ; ASTEXPR-NEXT:   %p_tmp5 = fadd float %tmp4_p_scalar_, 1.000000e+01
 ; ASTEXPR-NEXT:   %pexp.pdiv_r1 = urem i64 %polly.indvar, 4
 ; ASTEXPR-NEXT:   %polly.access.A2 = getelementptr float, float* %A, i64 %pexp.pdiv_r1
-; ASTEXPR-NEXT:   store float %p_tmp5, float* %polly.access.A2, align 4, !alias.scope !0, !noalias !2
+; ASTEXPR-NEXT:   store float %p_tmp5, float* %polly.access.A2, align 4, !alias.scope !0, !noalias !3
 ; ASTEXPR-NEXT:   %polly.indvar_next = add nsw i64 %polly.indvar, 1
 ; ASTEXPR-NEXT:   %polly.loop_cond = icmp sle i64 %polly.indvar_next, 99
 ; ASTEXPR-NEXT:   br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit

diff  --git a/polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll b/polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll
index fcb6bd511cb8b..653d22f7e8285 100644
--- a/polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll
+++ b/polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll
@@ -32,8 +32,8 @@ bb5:                                              ; preds = %bb4
   %tmp7 = getelementptr inbounds float, float* %A, i64 %i.0
   %tmp6 = load float, float* %tmp, align 4
   store float %tmp6, float* %tmp7, align 4
-; CHECK: %tmp6_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2
-; CHECK: store float %tmp6_p_scalar_, float* %scevgep8, align 4, !alias.scope !3, !noalias !4
+; CHECK: %tmp6_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !3
+; CHECK: store float %tmp6_p_scalar_, float* %scevgep8, align 4, !alias.scope !3, !noalias !0
   br label %bb8
 
 bb8:                                              ; preds = %bb5

diff  --git a/polly/test/Isl/CodeGen/OpenMP/new_multidim_access.ll b/polly/test/Isl/CodeGen/OpenMP/new_multidim_access.ll
index b28a914fc7301..9b08de58653a3 100644
--- a/polly/test/Isl/CodeGen/OpenMP/new_multidim_access.ll
+++ b/polly/test/Isl/CodeGen/OpenMP/new_multidim_access.ll
@@ -23,13 +23,13 @@
 ; IR: %6 = add nsw i64 %polly.indvar5, 13
 ; IR: %polly.access.add.polly.subfunc.arg.A = add nsw i64 %polly.access.mul.polly.subfunc.arg.A, %6
 ; IR: %polly.access.polly.subfunc.arg.A = getelementptr float, float* %polly.subfunc.arg.A, i64 %polly.access.add.polly.subfunc.arg.A
-; IR: %tmp10_p_scalar_ = load float, float* %polly.access.polly.subfunc.arg.A, align 4, !alias.scope !0, !noalias !2, !llvm.access.group !3
+; IR: %tmp10_p_scalar_ = load float, float* %polly.access.polly.subfunc.arg.A, align 4, !alias.scope !0, !noalias !3, !llvm.access.group !4
 
 ; IR: %polly.access.mul.polly.subfunc.arg.A8 = mul nsw i64 %polly.indvar, %polly.subfunc.arg.m
 ; IR: %7 = add nsw i64 %polly.indvar5, 43
 ; IR: %polly.access.add.polly.subfunc.arg.A9 = add nsw i64 %polly.access.mul.polly.subfunc.arg.A8, %7
 ; IR: %polly.access.polly.subfunc.arg.A10 = getelementptr float, float* %polly.subfunc.arg.A, i64 %polly.access.add.polly.subfunc.arg.A9
-; IR: store float %p_tmp11, float* %polly.access.polly.subfunc.arg.A10, align 4, !alias.scope !0, !noalias !2, !llvm.access.group !3
+; IR: store float %p_tmp11, float* %polly.access.polly.subfunc.arg.A10, align 4, !alias.scope !0, !noalias !3, !llvm.access.group !4
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 
 define void @new_multidim_access(i64 %n, i64 %m, float* %A) {

diff  --git a/polly/test/Isl/CodeGen/annotated_alias_scopes.ll b/polly/test/Isl/CodeGen/annotated_alias_scopes.ll
index c209d9e1ce1c7..22ee7a0ba7476 100644
--- a/polly/test/Isl/CodeGen/annotated_alias_scopes.ll
+++ b/polly/test/Isl/CodeGen/annotated_alias_scopes.ll
@@ -4,27 +4,22 @@
 ;
 ; SCOPES-LABEL: polly.stmt.for.body:
 ; SCOPES:      %[[BIdx:[._a-zA-Z0-9]*]] = getelementptr{{.*}} i32* %B, i64 %polly.indvar
-; SCOPES:      load i32, i32* %[[BIdx]], align 4, !alias.scope ![[AliasScopeB:[0-9]*]], !noalias ![[NoAliasB:[0-9]*]]
+; SCOPES:      load i32, i32* %[[BIdx]], align 4, !alias.scope !0, !noalias !3
 ; SCOPES:      %[[CIdx:[._a-zA-Z0-9]*]] = getelementptr{{.*}} float* %C, i64 %polly.indvar
-; SCOPES:      load float, float* %[[CIdx]], align 4, !alias.scope ![[AliasScopeC:[0-9]*]], !noalias ![[NoAliasC:[0-9]*]]
+; SCOPES:      load float, float* %[[CIdx]], align 4, !alias.scope !6, !noalias !7
 ; SCOPES:      %[[AIdx:[._a-zA-Z0-9]*]] = getelementptr{{.*}} i32* %A, i64 %polly.indvar
-; SCOPES:      store i32 %{{[._a-zA-Z0-9]*}}, i32* %[[AIdx]], align 4, !alias.scope ![[AliasScopeA:[0-9]*]], !noalias ![[NoAliasA:[0-9]*]]
+; SCOPES:      store i32 %{{[._a-zA-Z0-9]*}}, i32* %[[AIdx]], align 4, !alias.scope !8, !noalias !9
 ;
-; SCOPES:      ![[AliasScopeB]] = distinct !{![[AliasScopeB]], !{{[0-9]*}}, !"polly.alias.scope.MemRef_B"}
-; SCOPES:      ![[NoAliasB]] = !{
-; SCOPES-DAG:     ![[AliasScopeA]]
-; SCOPES-DAG:     ![[AliasScopeC]]
-; SCOPES:       }
-; SCOPES-DAG:  ![[AliasScopeA]] = distinct !{![[AliasScopeA]], !{{[0-9]*}}, !"polly.alias.scope.MemRef_A"}
-; SCOPES-DAG:  ![[AliasScopeC]] = distinct !{![[AliasScopeC]], !{{[0-9]*}}, !"polly.alias.scope.MemRef_C"}
-; SCOPES:      ![[NoAliasC]] = !{
-; SCOPES-DAG:     ![[AliasScopeA]]
-; SCOPES-DAG:     ![[AliasScopeB]]
-; SCOPES:       }
-; SCOPES:      ![[NoAliasA]] = !{
-; SCOPES-DAG:     ![[AliasScopeB]]
-; SCOPES-DAG:     ![[AliasScopeC]]
-; SCOPES:       }
+; SCOPES: !0 = !{!1}
+; SCOPES: !1 = distinct !{!1, !2, !"polly.alias.scope.MemRef_B"}
+; SCOPES: !2 = distinct !{!2, !"polly.alias.scope.domain"}
+; SCOPES: !3 = !{!4, !5}
+; SCOPES: !4 = distinct !{!4, !2, !"polly.alias.scope.MemRef_C"}
+; SCOPES: !5 = distinct !{!5, !2, !"polly.alias.scope.MemRef_A"}
+; SCOPES: !6 = !{!4}
+; SCOPES: !7 = !{!1, !5}
+; SCOPES: !8 = !{!5}
+; SCOPES: !9 = !{!1, !4}
 ;
 ;    void jd(int *A, int *B, float *C) {
 ;      for (int i = 0; i < 1024; i++)

diff  --git a/polly/test/Isl/CodeGen/getNumberOfIterations.ll b/polly/test/Isl/CodeGen/getNumberOfIterations.ll
index a1eec2dc5e2d8..5310931e8e9b9 100644
--- a/polly/test/Isl/CodeGen/getNumberOfIterations.ll
+++ b/polly/test/Isl/CodeGen/getNumberOfIterations.ll
@@ -8,9 +8,9 @@
 ; CHECK: polly.stmt.if.then:                               ; preds = %polly.loop_header
 ; CHECK:   %p_conv = sitofp i64 %polly.indvar to float
 ; CHECK:   %scevgep = getelementptr float, float* %A, i64 %polly.indvar
-; CHECK:   %_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2, !llvm.access.group !3
+; CHECK:   %_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !3, !llvm.access.group !4
 ; CHECK:   %p_add = fadd float %p_conv, %_p_scalar_
-; CHECK:   store float %p_add, float* %scevgep, align 4, !alias.scope !0, !noalias !2, !llvm.access.group !3
+; CHECK:   store float %p_add, float* %scevgep, align 4, !alias.scope !0, !noalias !3, !llvm.access.group !4
 
 define void @foo(float* %A, i64 %N) #0 {
 entry:

diff  --git a/polly/test/Isl/CodeGen/invariant_load_alias_metadata.ll b/polly/test/Isl/CodeGen/invariant_load_alias_metadata.ll
index 4fde2dc6443fe..e71349b86f4e5 100644
--- a/polly/test/Isl/CodeGen/invariant_load_alias_metadata.ll
+++ b/polly/test/Isl/CodeGen/invariant_load_alias_metadata.ll
@@ -4,13 +4,13 @@
 ; This test case checks whether Polly generates alias metadata in case of
 ; the ublas gemm kernel and polly-invariant-load-hoisting.
 ;
-; CHECK: store float 4.200000e+01, float* %polly.access.A.load, align 4, !alias.scope !3, !noalias !4
+; CHECK: store float 4.200000e+01, float* %polly.access.A.load, align 4, !alias.scope !3, !noalias !0
 ;
-; CHECK: !0 = distinct !{!0, !1, !"polly.alias.scope.MemRef_A"}
-; CHECK-NEXT: !1 = distinct !{!1, !"polly.alias.scope.domain"}
-; CHECK-NEXT: !2 = !{!3}
-; CHECK-NEXT: !3 = distinct !{!3, !1, !"polly.alias.scope.MemRef_ptrA"}
-; CHECK-NEXT: !4 = !{!0}
+; CHECK: !0 = !{!1}
+; CHECK-NEXT: !1 = distinct !{!1, !2, !"polly.alias.scope.MemRef_A"}
+; CHECK-NEXT: !2 = distinct !{!2, !"polly.alias.scope.domain"}
+; CHECK-NEXT: !3 = !{!4}
+; CHECK-NEXT: !4 = distinct !{!4, !2, !"polly.alias.scope.MemRef_ptrA"}
 ;
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"

diff  --git a/polly/test/Isl/CodeGen/invariant_loads_ignore_parameter_bounds.ll b/polly/test/Isl/CodeGen/invariant_loads_ignore_parameter_bounds.ll
index 684bb14989014..9a7e3254de589 100644
--- a/polly/test/Isl/CodeGen/invariant_loads_ignore_parameter_bounds.ll
+++ b/polly/test/Isl/CodeGen/invariant_loads_ignore_parameter_bounds.ll
@@ -2,7 +2,7 @@
 ; RUN:     -polly-ignore-parameter-bounds -S < %s | FileCheck %s
 
 ; CHECK: polly.preload.begin:
-; CHECK-NEXT: %global.load = load i32, i32* @global, align 4, !alias.scope !0, !noalias !2
+; CHECK-NEXT: %global.load = load i32, i32* @global, align 4, !alias.scope !0, !noalias !3
 ; CHECK-NEXT: store i32 %global.load, i32* %tmp24.preload.s2a
 
 target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"

diff  --git a/polly/test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll b/polly/test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll
index 7cec20cbf6c32..c0d30fb6bc56c 100644
--- a/polly/test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll
+++ b/polly/test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll
@@ -4,7 +4,7 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 
 
 ; CHECK: polly.stmt.bb3:                                   ; preds = %polly.stmt.bb3.entry
-; CHECK:   %tmp6_p_scalar_ = load double, double* %arg1{{[0-9]*}}, align 8, !alias.scope !0, !noalias !2
+; CHECK:   %tmp6_p_scalar_ = load double, double* %arg1{{[0-9]*}}, align 8, !alias.scope !0, !noalias !3
 ; CHECK:   %p_tmp7 = fadd double 1.000000e+00, %tmp6_p_scalar_
 ; CHECK:   %p_tmp8 = fcmp olt double 1.400000e+01, %p_tmp7
 ; CHECK:   br i1 %p_tmp8, label %polly.stmt.bb9, label %polly.stmt.bb10

diff  --git a/polly/test/Isl/CodeGen/non_affine_float_compare.ll b/polly/test/Isl/CodeGen/non_affine_float_compare.ll
index 138da0186a56a..2dfb6a7cfd83a 100644
--- a/polly/test/Isl/CodeGen/non_affine_float_compare.ll
+++ b/polly/test/Isl/CodeGen/non_affine_float_compare.ll
@@ -12,17 +12,17 @@
 ;
 ; CHECK: polly.stmt.bb2:
 ; CHECK:   %scevgep[[R0:[0-9]*]] = getelementptr float, float* %A, i64 %polly.indvar
-; CHECK:   %tmp3_p_scalar_ = load float, float* %scevgep[[R0]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   %tmp3_p_scalar_ = load float, float* %scevgep[[R0]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %scevgep[[R2:[0-9]*]] = getelementptr float, float* %scevgep{{[0-9]*}}, i64 %polly.indvar
-; CHECK:   %tmp6_p_scalar_ = load float, float* %scevgep[[R2]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   %tmp6_p_scalar_ = load float, float* %scevgep[[R2]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %p_tmp7 = fcmp oeq float %tmp3_p_scalar_, %tmp6_p_scalar_
 ; CHECK:   br i1 %p_tmp7, label %polly.stmt.bb8, label %polly.stmt.bb12.[[R:[a-zA-Z_.0-9]*]]
 
 ; CHECK: polly.stmt.bb8:
 ; CHECK:   %scevgep[[R3:[0-9]*]] = getelementptr float, float* %A, i64 %polly.indvar
-; CHECK:   %tmp10_p_scalar_ = load float, float* %scevgep[[R3]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   %tmp10_p_scalar_ = load float, float* %scevgep[[R3]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %p_tmp11 = fadd float %tmp10_p_scalar_, 1.000000e+00
-; CHECK:   store float %p_tmp11, float* %scevgep[[R3]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   store float %p_tmp11, float* %scevgep[[R3]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   br label %polly.stmt.bb12.[[R]]
 
 ; CHECK: polly.stmt.bb12.[[R]]:
@@ -30,9 +30,9 @@
 
 ; CHECK: polly.stmt.bb12:
 ; CHECK:   %scevgep[[R4:[0-9]*]] = getelementptr float, float* %A, i64 %polly.indvar
-; CHECK:   %tmp10b_p_scalar_ = load float, float* %scevgep[[R4]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   %tmp10b_p_scalar_ = load float, float* %scevgep[[R4]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %p_tmp11b = fadd float %tmp10b_p_scalar_, 1.000000e+00
-; CHECK:   store float %p_tmp11b, float* %scevgep[[R4]], align 4, !alias.scope !0, !noalias !2
+; CHECK:   store float %p_tmp11b, float* %scevgep[[R4]], align 4, !alias.scope !0, !noalias !3
 ; CHECK:   %polly.indvar_next = add nsw i64 %polly.indvar, 1
 ; CHECK:   %polly.loop_cond = icmp sle i64 %polly.indvar_next, 1023
 ; CHECK:   br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit

diff  --git a/polly/test/Isl/CodeGen/partial_write_array.ll b/polly/test/Isl/CodeGen/partial_write_array.ll
index 15517aa80198c..14feba0aa7a1e 100644
--- a/polly/test/Isl/CodeGen/partial_write_array.ll
+++ b/polly/test/Isl/CodeGen/partial_write_array.ll
@@ -38,7 +38,7 @@ return:
 
 ; CHECK:      polly.stmt.body.Stmt_body_Write0.partial:
 ; CHECK-NEXT:   %polly.access.A = getelementptr double, double* %A, i64 0
-; CHECK-NEXT:   store double 4.200000e+01, double* %polly.access.A, align 8, !alias.scope !0, !noalias !2
+; CHECK-NEXT:   store double 4.200000e+01, double* %polly.access.A, align 8, !alias.scope !0, !noalias !3
 ; CHECK-NEXT:   br label %polly.stmt.body.cont
 
 ; CHECK:      polly.stmt.body.cont:

diff  --git a/polly/test/Isl/CodeGen/partial_write_full_write_that_appears_partial.ll b/polly/test/Isl/CodeGen/partial_write_full_write_that_appears_partial.ll
index 9df38ff6d9262..70eb86b21b92e 100644
--- a/polly/test/Isl/CodeGen/partial_write_full_write_that_appears_partial.ll
+++ b/polly/test/Isl/CodeGen/partial_write_full_write_that_appears_partial.ll
@@ -3,7 +3,7 @@
 ; CHECK:      polly.stmt.if.then81:                             ; preds = %polly.stmt.if.end75
 ; CHECK-NEXT:   %scevgep = getelementptr [2 x %S], [2 x %S]* %tmp, i64 0, i64 %.147
 ; CHECK-NEXT:   %scevgep1 = bitcast %S* %scevgep to float*
-; CHECK-NEXT:   store float undef, float* %scevgep1, align 4, !alias.scope !0, !noalias !2
+; CHECK-NEXT:   store float undef, float* %scevgep1, align 4, !alias.scope !0, !noalias !3
 ; CHECK-NEXT:   br label %polly.stmt.if.end87.region_exiting
 
 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"

diff  --git a/polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll b/polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll
index 3b17518a3ef4a..136ae052d76f6 100644
--- a/polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll
+++ b/polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll
@@ -49,10 +49,10 @@ if.then.i.i1141.loopexit:                         ; preds = %cond.end
 
 ; CHECK-LABEL: polly.stmt.cond.false:
 ; CHECK:         %polly.access..pn{{[0-9]*}} = getelementptr i32, i32* %.pn, i64 %polly.indvar
-; CHECK:         store i32 %cond.in.sroa.speculate.load.cond.false_p_scalar_, i32* %polly.access..pn{{[0-9]*}}, align 4, !alias.scope !0, !noalias !2
+; CHECK:         store i32 %cond.in.sroa.speculate.load.cond.false_p_scalar_, i32* %polly.access..pn{{[0-9]*}}, align 4, !alias.scope !0, !noalias !3
 ; CHECK:         br label %polly.merge
 
 ; CHECK-LABEL: polly.stmt.cond.false{{[0-9]*}}:
 ; CHECK:         %polly.access..pn{{[0-9]*}} = getelementptr i32, i32* %.pn, i64 0
-; CHECK:         store i32 %cond.in.sroa.speculate.load.cond.false_p_scalar_{{[0-9]*}}, i32* %polly.access..pn{{[0-9]*}}, align 4, !alias.scope !0, !noalias !2
+; CHECK:         store i32 %cond.in.sroa.speculate.load.cond.false_p_scalar_{{[0-9]*}}, i32* %polly.access..pn{{[0-9]*}}, align 4, !alias.scope !0, !noalias !3
 ; CHECK:         br label %polly.stmt.cond.end{{[0-9]*}}

diff  --git a/polly/test/Isl/CodeGen/phi_loop_carried_float.ll b/polly/test/Isl/CodeGen/phi_loop_carried_float.ll
index ff86e38814998..32598698b0a8a 100644
--- a/polly/test/Isl/CodeGen/phi_loop_carried_float.ll
+++ b/polly/test/Isl/CodeGen/phi_loop_carried_float.ll
@@ -29,7 +29,7 @@
 
 ; CHECK-LABEL: polly.stmt.bb4:
 ; CHECK:         %tmp.0.s2a.reload[[R3:[0-9]*]] = load float, float* %tmp.0.s2a
-; CHECK:         %tmp[[R5:[0-9]*]]_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2
+; CHECK:         %tmp[[R5:[0-9]*]]_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !3
 ; CHECK:         %p_tmp[[R4:[0-9]*]] = fadd float %tmp.0.s2a.reload[[R3]], %tmp[[R5]]_p_scalar_
 ; CHECK:         store float %p_tmp[[R4]], float* %tmp.0.phiops
 

diff  --git a/polly/test/Isl/CodeGen/phi_loop_carried_float_escape.ll b/polly/test/Isl/CodeGen/phi_loop_carried_float_escape.ll
index c039a0b16069d..edc4dcbc233c7 100644
--- a/polly/test/Isl/CodeGen/phi_loop_carried_float_escape.ll
+++ b/polly/test/Isl/CodeGen/phi_loop_carried_float_escape.ll
@@ -29,7 +29,7 @@
 
 ; CHECK-LABEL: polly.stmt.bb4:
 ; CHECK:         %tmp.0.s2a.reload[[R3:[0-9]*]] = load float, float* %tmp.0.s2a
-; CHECK:         %tmp[[R5:[0-9]*]]_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2
+; CHECK:         %tmp[[R5:[0-9]*]]_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !3
 ; CHECK:         %p_tmp[[R4:[0-9]*]] = fadd float %tmp.0.s2a.reload[[R3]], %tmp[[R5]]_p_scalar_
 ; CHECK:         store float %p_tmp[[R4]], float* %tmp.0.phiops
 

diff  --git a/polly/test/Isl/CodeGen/scev-backedgetaken.ll b/polly/test/Isl/CodeGen/scev-backedgetaken.ll
index f3cf1014f6227..9baab543c4caa 100644
--- a/polly/test/Isl/CodeGen/scev-backedgetaken.ll
+++ b/polly/test/Isl/CodeGen/scev-backedgetaken.ll
@@ -41,8 +41,9 @@ for.cond.cleanup.loopexit:
 
 ; CHECK-LABEL: @func(
 ; CHECK:         polly.stmt.omp.inner.for.body.us.us.us.preheader:
-; CHECK:         load i32, i32* %scevgep, align 4, !alias.scope !0, !noalias !2
+; CHECK:         load i32, i32* %scevgep, align 4, !alias.scope !0, !noalias !3
 
-; CHECK:       !0 = distinct !{!0, !1, !"polly.alias.scope.MemRef_d"}
-; CHECK:       !1 = distinct !{!1, !"polly.alias.scope.domain"}
-; CHECK:       !2 = !{}
+; CHECK:       !0 = !{!1}
+; CHECK:       !1 = distinct !{!1, !2, !"polly.alias.scope.MemRef_d"}
+; CHECK:       !2 = distinct !{!2, !"polly.alias.scope.domain"}
+; CHECK:       !3 = !{}

diff  --git a/polly/test/Isl/CodeGen/simple_vec_assign_scalar.ll b/polly/test/Isl/CodeGen/simple_vec_assign_scalar.ll
index 2ac4b19e38dd1..6def8f137e745 100644
--- a/polly/test/Isl/CodeGen/simple_vec_assign_scalar.ll
+++ b/polly/test/Isl/CodeGen/simple_vec_assign_scalar.ll
@@ -59,6 +59,6 @@ bb:
 
 ; STRIPMINE-NOT: <4 x float>
 
-; CHECK: %tmp_p_vec_full = load <4 x float>, <4 x float>* bitcast ([1024 x float]* @A to <4 x float>*), align 8, !alias.scope !0, !noalias !2
+; CHECK: %tmp_p_vec_full = load <4 x float>, <4 x float>* bitcast ([1024 x float]* @A to <4 x float>*), align 8, !alias.scope !0, !noalias !3
 ; CHECK: %tmp4p_vec = fadd <4 x float> %tmp_p_vec_full, <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>
 ; CHECK: store <4 x float> %tmp4p_vec, <4 x float>* bitcast ([1024 x float]* @B to <4 x float>*)

diff  --git a/polly/test/Isl/CodeGen/stmt_split_no_dependence.ll b/polly/test/Isl/CodeGen/stmt_split_no_dependence.ll
index 539c4067bbb97..12aeebc9bdd7a 100644
--- a/polly/test/Isl/CodeGen/stmt_split_no_dependence.ll
+++ b/polly/test/Isl/CodeGen/stmt_split_no_dependence.ll
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
 ;
-; CHECK:   store i32 %8, i32* %scevgep, align 4, !alias.scope !1, !noalias !3
-; CHECK:   store i32 %9, i32* %scevgep4, align 4, !alias.scope !4, !noalias !5
+; CHECK:   store i32 %8, i32* %scevgep, align 4, !alias.scope !1, !noalias !4
+; CHECK:   store i32 %9, i32* %scevgep4, align 4, !alias.scope !4, !noalias !1
 ;
 ;      void func(int *A, int *B){
 ;        for (int i = 0; i < 1024; i+=1) {

diff  --git a/polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll b/polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll
index c7b7d4f682f45..3da2370e59fb5 100644
--- a/polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll
+++ b/polly/test/ScheduleOptimizer/pattern-matching-based-opts_10.ll
@@ -12,13 +12,13 @@
 ; This test case checks whether Polly generates second level alias metadata
 ; to distinguish the specific accesses in case of the ublas gemm kernel.
 ;
-; CHECK: !11 = distinct !{!11, !0, !"second level alias metadata"}
-; CHECK: !12 = distinct !{!12, !0, !"second level alias metadata"}
-; CHECK: !13 = !{!3, !4, !5, !6, !11}
-; CHECK: !14 = distinct !{!14, !0, !"second level alias metadata"}
-; CHECK: !15 = !{!3, !4, !5, !6, !11, !12}
-; CHECK: !16 = distinct !{!16, !0, !"second level alias metadata"}
-; CHECK: !17 = !{!3, !4, !5, !6, !11, !12, !14}
+; CHECK: !16 = distinct !{!16, !1, !"second level alias metadata"}
+; CHECK: !17 = distinct !{!17, !1, !"second level alias metadata"}
+; CHECK: !18 = !{!4, !5, !6, !7, !16}
+; CHECK: !19 = distinct !{!19, !1, !"second level alias metadata"}
+; CHECK: !20 = !{!4, !5, !6, !7, !16, !17}
+; CHECK: !21 = distinct !{!21, !1, !"second level alias metadata"}
+; CHECK: !22 = !{!4, !5, !6, !7, !16, !17, !19}
 ;
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-unknown"

diff  --git a/polly/test/ScopInfo/int2ptr_ptr2int.ll b/polly/test/ScopInfo/int2ptr_ptr2int.ll
index c2bedff91e7fc..04fcea1d8bfe6 100644
--- a/polly/test/ScopInfo/int2ptr_ptr2int.ll
+++ b/polly/test/ScopInfo/int2ptr_ptr2int.ll
@@ -24,10 +24,10 @@
 ; IR-NEXT:   %p_add.ptr2 = getelementptr inbounds i64, i64* %p_tmp1, i64 1
 ; IR-NEXT:   %p_tmp2 = ptrtoint i64* %p_add.ptr2 to i64
 ; IR-NEXT:   %p_arrayidx = getelementptr inbounds i64, i64* %A, i64 %p_tmp2
-; IR-NEXT:   %tmp3_p_scalar_ = load i64, i64* %p_arrayidx, align 8, !alias.scope !0, !noalias !2
-; IR-NEXT:   %tmp4_p_scalar_ = load i64, i64* %scevgep, align 8, !alias.scope !0, !noalias !2
+; IR-NEXT:   %tmp3_p_scalar_ = load i64, i64* %p_arrayidx, align 8, !alias.scope !0, !noalias !3
+; IR-NEXT:   %tmp4_p_scalar_ = load i64, i64* %scevgep, align 8, !alias.scope !0, !noalias !3
 ; IR-NEXT:   %p_add4 = add nsw i64 %tmp4_p_scalar_, %tmp3_p_scalar_
-; IR-NEXT:   store i64 %p_add4, i64* %scevgep, align 8, !alias.scope !0, !noalias !2
+; IR-NEXT:   store i64 %p_add4, i64* %scevgep, align 8, !alias.scope !0, !noalias !3
 ; IR-NEXT:   %polly.indvar_next = add nsw i64 %polly.indvar, 1
 ; IR-NEXT:   %polly.loop_cond = icmp sle i64 %polly.indvar_next, 99
 ; IR-NEXT:   br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit

diff  --git a/polly/test/ScopInfo/int2ptr_ptr2int_2.ll b/polly/test/ScopInfo/int2ptr_ptr2int_2.ll
index e84118ca74590..02ff1136c0ade 100644
--- a/polly/test/ScopInfo/int2ptr_ptr2int_2.ll
+++ b/polly/test/ScopInfo/int2ptr_ptr2int_2.ll
@@ -24,9 +24,9 @@
 ; IR-NEXT:   %ptr13 = ptrtoint i64* %ptr to i16
 ;
 ; IR:      polly.stmt.for.body:
-; IR-NEXT:   %tmp4_p_scalar_ = load i64, i64* %scevgep, align 8, !alias.scope !3, !noalias !4
+; IR-NEXT:   %tmp4_p_scalar_ = load i64, i64* %scevgep, align 8, !alias.scope !3, !noalias !0
 ; IR-NEXT:   %p_add4 = add nsw i64 %tmp4_p_scalar_, %polly.preload.tmp3.merge
-; IR-NEXT:   store i64 %p_add4, i64* %scevgep, align 8, !alias.scope !3, !noalias !4
+; IR-NEXT:   store i64 %p_add4, i64* %scevgep, align 8, !alias.scope !3, !noalias !0
 ; IR-NEXT:   %polly.indvar_next = add nsw i64 %polly.indvar, 1
 ; IR-NEXT:   %polly.loop_cond = icmp sle i64 %polly.indvar_next, 99
 ; IR-NEXT:   br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit


        


More information about the llvm-commits mailing list