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@grosser.es>

Differential Revision: https://reviews.llvm.org/D30293

llvm-svn: 295958
This commit is contained in:
Roman Gareev 2017-02-23 11:44:12 +00:00
parent 14b370c1bf
commit 96e1119a96
5 changed files with 18 additions and 9 deletions

View File

@ -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",

View File

@ -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)

View File

@ -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
;

View File

@ -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

View File

@ -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"