summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--polly/docs/ReleaseNotes.rst11
-rw-r--r--polly/lib/Analysis/DependenceInfo.cpp6
-rw-r--r--polly/test/DependenceInfo/fine_grain_dep_0.ll4
-rw-r--r--polly/test/DependenceInfo/reduction_complex_location.ll4
-rw-r--r--polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll4
-rw-r--r--polly/test/DependenceInfo/sequential_loops.ll2
6 files changed, 21 insertions, 10 deletions
diff --git a/polly/docs/ReleaseNotes.rst b/polly/docs/ReleaseNotes.rst
index 6054808e581..d2181edfe15 100644
--- a/polly/docs/ReleaseNotes.rst
+++ b/polly/docs/ReleaseNotes.rst
@@ -70,6 +70,17 @@ known only to read memory, read memory accessible through pointer arguments or
access only memory accessible through pointer arguments. See also the function
attributes ``readonly`` and ``argmemonly`` for more information.
+Fine-grain dependences analysis
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In addition of the ScopStmt wise dependences analysis, now the "polly-dependence"
+pass provides dependences analysis at memory reference wise and memory access wise.
+The memory reference wise analysis distinguishes the accessed references in the
+same statement, and generates dependences relationships between (statement, reference)
+pairs. The memory access wise analysis distinguishes accesses in the same statement,
+and generates dependences relationships between (statement, access) pairs. These
+fine-grain dependences are enabled by "-polly-dependences-analysis-level=reference-wise"
+and "-polly-dependences-analysis-level=access-wise", respectively.
Update of the isl math library
------------------------------
diff --git a/polly/lib/Analysis/DependenceInfo.cpp b/polly/lib/Analysis/DependenceInfo.cpp
index 225d84168b6..13597481778 100644
--- a/polly/lib/Analysis/DependenceInfo.cpp
+++ b/polly/lib/Analysis/DependenceInfo.cpp
@@ -73,12 +73,12 @@ static cl::opt<enum AnalysisType> OptAnalysisType(
static cl::opt<Dependences::AnalyisLevel> OptAnalysisLevel(
"polly-dependences-analysis-level",
cl::desc("The level of dependence analysis"),
- cl::values(clEnumValN(Dependences::AL_Statement, "statement-level",
+ cl::values(clEnumValN(Dependences::AL_Statement, "statement-wise",
"Statement-level analysis"),
- clEnumValN(Dependences::AL_Reference, "reference-level",
+ clEnumValN(Dependences::AL_Reference, "reference-wise",
"Memory reference level analysis that distinguish"
" accessed references in the same statement"),
- clEnumValN(Dependences::AL_Access, "access-level",
+ clEnumValN(Dependences::AL_Access, "access-wise",
"Memory reference level analysis that distinguish"
" access instructions in the same statement"),
clEnumValEnd),
diff --git a/polly/test/DependenceInfo/fine_grain_dep_0.ll b/polly/test/DependenceInfo/fine_grain_dep_0.ll
index 126094e0855..5f384b92520 100644
--- a/polly/test/DependenceInfo/fine_grain_dep_0.ll
+++ b/polly/test/DependenceInfo/fine_grain_dep_0.ll
@@ -1,5 +1,5 @@
-; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=reference-level -analyze < %s | FileCheck %s --check-prefix=REF
-; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=access-level -analyze < %s | FileCheck %s --check-prefix=ACC
+; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=reference-wise -analyze < %s | FileCheck %s --check-prefix=REF
+; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=access-wise -analyze < %s | FileCheck %s --check-prefix=ACC
;
; REF: RAW dependences:
; REF-NEXT: [N] -> { [Stmt_for_body[i0] -> MemRef_a[]] -> [Stmt_for_body[4 + i0] -> MemRef_a[]] : 0 <= i0 <= -11 + N; [Stmt_for_body[i0] -> MemRef_b[]] -> [Stmt_for_body[6 + i0] -> MemRef_b[]] : 0 <= i0 <= -13 + N; Stmt_for_body[i0] -> Stmt_for_body[6 + i0] : 0 <= i0 <= -13 + N; Stmt_for_body[i0] -> Stmt_for_body[4 + i0] : 0 <= i0 <= -11 + N }
diff --git a/polly/test/DependenceInfo/reduction_complex_location.ll b/polly/test/DependenceInfo/reduction_complex_location.ll
index fa8b651e026..7d0f263e312 100644
--- a/polly/test/DependenceInfo/reduction_complex_location.ll
+++ b/polly/test/DependenceInfo/reduction_complex_location.ll
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-dependences -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-level=reference-level -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-level=access-level -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-level=reference-wise -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-dependences -polly-dependences-analysis-level=access-wise -analyze < %s | FileCheck %s
;
; CHECK: RAW dependences:
; CHECK-NEXT: { }
diff --git a/polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll b/polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll
index 0b22c334d5b..db1bdca5b50 100644
--- a/polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll
+++ b/polly/test/DependenceInfo/reduction_multiple_loops_array_sum.ll
@@ -1,6 +1,6 @@
; RUN: opt -basicaa %loadPolly -polly-dependences -analyze < %s | FileCheck %s
-; RUN: opt -basicaa %loadPolly -polly-dependences -polly-dependences-analysis-level=reference-level -analyze < %s | FileCheck %s
-; RUN: opt -basicaa %loadPolly -polly-dependences -polly-dependences-analysis-level=access-level -analyze < %s | FileCheck %s
+; RUN: opt -basicaa %loadPolly -polly-dependences -polly-dependences-analysis-level=reference-wise -analyze < %s | FileCheck %s
+; RUN: opt -basicaa %loadPolly -polly-dependences -polly-dependences-analysis-level=access-wise -analyze < %s | FileCheck %s
;
; Verify that only the inner reduction like accesses cause reduction dependences
;
diff --git a/polly/test/DependenceInfo/sequential_loops.ll b/polly/test/DependenceInfo/sequential_loops.ll
index 76df52922be..0b7427eee73 100644
--- a/polly/test/DependenceInfo/sequential_loops.ll
+++ b/polly/test/DependenceInfo/sequential_loops.ll
@@ -1,6 +1,6 @@
; RUN: opt -S %loadPolly -basicaa -polly-dependences -analyze -polly-dependences-analysis-type=value-based < %s | FileCheck %s -check-prefix=VALUE
; RUN: opt -S %loadPolly -basicaa -polly-dependences -analyze -polly-dependences-analysis-type=memory-based < %s | FileCheck %s -check-prefix=MEMORY
-; RUN: opt -S %loadPolly -basicaa -polly-dependences -analyze -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=access-level < %s | FileCheck %s -check-prefix=VALUE_ACCESS
+; RUN: opt -S %loadPolly -basicaa -polly-dependences -analyze -polly-dependences-analysis-type=value-based -polly-dependences-analysis-level=access-wise < %s | FileCheck %s -check-prefix=VALUE_ACCESS
; VALUE-LABEL: Printing analysis 'Polly - Calculate dependences' for region: 'S1 => exit.3' in function 'sequential_writes':
; VALUE-NEXT: RAW dependences:
OpenPOWER on IntegriCloud