[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