[polly] r295958 - Make optimizations based on pattern matching be enabled by default
Roman Gareev via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 23 03:44:13 PST 2017
Author: romangareev
Date: Thu Feb 23 05:44:12 2017
New Revision: 295958
URL: http://llvm.org/viewvc/llvm-project?rev=295958&view=rev
Log:
Make optimizations based on pattern matching be enabled by default
Currently, pattern based optimizations of Polly can identify matrix
multiplication and optimize it according to BLIS matmul optimization pattern
(see ScheduleTreeOptimizer for details). This patch makes optimizations
based on pattern matching be enabled by default.
Reviewed-by: Tobias Grosser <tobias at grosser.es>
Differential Revision: https://reviews.llvm.org/D30293
Modified:
polly/trunk/lib/Transform/ScheduleOptimizer.cpp
polly/trunk/test/ScheduleOptimizer/full_partial_tile_separation.ll
polly/trunk/test/ScheduleOptimizer/pattern-matching-based-opts.ll
polly/trunk/test/ScheduleOptimizer/prevectorization-without-tiling.ll
polly/trunk/test/ScheduleOptimizer/prevectorization.ll
Modified: polly/trunk/lib/Transform/ScheduleOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/ScheduleOptimizer.cpp?rev=295958&r1=295957&r2=295958&view=diff
==============================================================================
--- polly/trunk/lib/Transform/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/Transform/ScheduleOptimizer.cpp Thu Feb 23 05:44:12 2017
@@ -226,7 +226,7 @@ static cl::list<int>
static cl::opt<bool>
PMBasedOpts("polly-pattern-matching-based-opts",
cl::desc("Perform optimizations based on pattern matching"),
- cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
+ cl::init(true), cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<bool> OptimizedScops(
"polly-optimized-scops",
Modified: polly/trunk/test/ScheduleOptimizer/full_partial_tile_separation.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/full_partial_tile_separation.ll?rev=295958&r1=295957&r2=295958&view=diff
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/full_partial_tile_separation.ll (original)
+++ polly/trunk/test/ScheduleOptimizer/full_partial_tile_separation.ll Thu Feb 23 05:44:12 2017
@@ -1,4 +1,6 @@
-; RUN: opt -S %loadPolly -polly-vectorizer=stripmine -polly-opt-isl -polly-ast -analyze < %s | FileCheck %s
+; RUN: opt -S %loadPolly -polly-pattern-matching-based-opts=false \
+; RUN: -polly-vectorizer=stripmine -polly-opt-isl -polly-ast -analyze \
+; RUN: < %s | FileCheck %s
; CHECK: // 1st level tiling - Tiles
; CHECK-NEXT: #pragma known-parallel
; CHECK-NEXT: for (int c0 = 0; c0 <= floord(ni - 1, 32); c0 += 1)
Modified: polly/trunk/test/ScheduleOptimizer/pattern-matching-based-opts.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/pattern-matching-based-opts.ll?rev=295958&r1=295957&r2=295958&view=diff
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/pattern-matching-based-opts.ll (original)
+++ polly/trunk/test/ScheduleOptimizer/pattern-matching-based-opts.ll Thu Feb 23 05:44:12 2017
@@ -1,4 +1,5 @@
-; RUN: opt %loadPolly -polly-opt-isl -debug < %s 2>&1| FileCheck %s
+; RUN: opt %loadPolly -polly-opt-isl -polly-pattern-matching-based-opts=false \
+; RUN: -debug < %s 2>&1| FileCheck %s
; RUN: opt %loadPolly -polly-opt-isl -polly-pattern-matching-based-opts=true -debug < %s 2>&1| FileCheck %s --check-prefix=PATTERN-MATCHING-OPTS
; REQUIRES: asserts
;
Modified: polly/trunk/test/ScheduleOptimizer/prevectorization-without-tiling.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/prevectorization-without-tiling.ll?rev=295958&r1=295957&r2=295958&view=diff
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/prevectorization-without-tiling.ll (original)
+++ polly/trunk/test/ScheduleOptimizer/prevectorization-without-tiling.ll Thu Feb 23 05:44:12 2017
@@ -1,4 +1,6 @@
-; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-tiling=false -polly-vectorizer=polly -polly-ast -analyze < %s | FileCheck %s
+; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-tiling=false \
+; RUN: -polly-pattern-matching-based-opts=false -polly-vectorizer=polly \
+; RUN: -polly-ast -analyze < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
@C = common global [1536 x [1536 x float]] zeroinitializer, align 16
Modified: polly/trunk/test/ScheduleOptimizer/prevectorization.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/prevectorization.ll?rev=295958&r1=295957&r2=295958&view=diff
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/prevectorization.ll (original)
+++ polly/trunk/test/ScheduleOptimizer/prevectorization.ll Thu Feb 23 05:44:12 2017
@@ -1,10 +1,14 @@
-; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-vectorizer=polly -polly-ast -analyze < %s | FileCheck %s
-; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-vectorizer=stripmine -polly-ast -analyze < %s | FileCheck %s
+; RUN: opt -S %loadPolly -basicaa -polly-opt-isl \
+; RUN: -polly-pattern-matching-based-opts=false -polly-vectorizer=polly \
+; RUN: -polly-ast -analyze < %s | FileCheck %s
+; RUN: opt -S %loadPolly -basicaa -polly-opt-isl \
+; RUN: -polly-pattern-matching-based-opts=false -polly-vectorizer=stripmine \
+; RUN: -polly-ast -analyze < %s | FileCheck %s
; RUN: opt -S %loadPolly -basicaa -polly-opt-isl \
-; RUN: -polly-vectorizer=polly -polly-ast -analyze \
-; RUN: -polly-prevect-width=16 < %s | \
-; RUN: FileCheck %s -check-prefix=VEC16
+; RUN: -polly-vectorizer=polly -polly-pattern-matching-based-opts=false \
+; RUN: -polly-ast -analyze -polly-prevect-width=16 < %s | \
+; RUN: FileCheck %s -check-prefix=VEC16
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
More information about the llvm-commits
mailing list