forked from OSchip/llvm-project
[tests] Force invariant load hoisting for test cases that need it
This will make it easier to switch the default of Polly's invariant load hoisting strategy and also makes it very clear that these test cases indeed require invariant code hoisting to work. llvm-svn: 278667
This commit is contained in:
parent
1c892e91e3
commit
6e6264c142
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-parallel \
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-parallel \
|
||||
; RUN: -polly-parallel-force -S < %s | FileCheck %s
|
||||
;
|
||||
; Test to verify that we hand down the preloaded A[0] to the OpenMP subfunction.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-parallel \
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-parallel \
|
||||
; RUN: -polly-parallel-force -S < %s | FileCheck %s
|
||||
;
|
||||
; Test to verify that we hand down the preloaded A[0] to the OpenMP subfunction.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-parallel \
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-parallel \
|
||||
; RUN: -polly-parallel-force -S < %s | FileCheck %s
|
||||
;
|
||||
; Test to verify that we hand down the preloaded A[0] to the OpenMP subfunction but
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-parallel \
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-parallel \
|
||||
; RUN: -polly-parallel-force -S < %s | FileCheck %s
|
||||
;
|
||||
; Test to verify that we hand down the preloaded A[0] to the OpenMP subfunction.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -S -polly-codegen < %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true < %s
|
||||
;
|
||||
; Check that we generate valid code as we did non preload the base pointer
|
||||
; origin of %tmp4 at some point.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -analyze -polly-scops %s | FileCheck %s --check-prefix=SCOP
|
||||
; RUN: opt %loadPolly -S -polly-codegen %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -analyze -polly-scops -polly-invariant-load-hoisting=true %s | FileCheck %s --check-prefix=SCOP
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true %s | FileCheck %s
|
||||
;
|
||||
; The offset of the %tmp1 load wrt. to %buff (62 bytes) is not divisible
|
||||
; by the type size (i32 = 4 bytes), thus we will have to represent %buff
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK-NEXT: %polly.access.B = getelementptr i32, i32* %B, i64 0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK-NEXT: %polly.access.BPLoc = getelementptr i32*, i32** %BPLoc, i64 0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK-NEXT: %0 = sext i32 %N to i64
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: opt %loadPolly -analyze -polly-scops < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen < %s | FileCheck %s --check-prefix=IR
|
||||
; RUN: opt %loadPolly -S -polly-codegen --polly-overflow-tracking=always < %s | FileCheck %s --check-prefix=IRA
|
||||
; RUN: opt %loadPolly -analyze -polly-scops -polly-invariant-load-hoisting=true < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true < %s | FileCheck %s --check-prefix=IR
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true --polly-overflow-tracking=always < %s | FileCheck %s --check-prefix=IRA
|
||||
;
|
||||
; As (p + q) can overflow we have to check that we load from
|
||||
; I[p + q] only if it does not.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -S -polly-codegen < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true < %s | FileCheck %s
|
||||
;
|
||||
; Extracted from h246 in SPEC 2006.
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK-NEXT: %polly.access.C = getelementptr i32, i32* %C, i64 0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S \
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S \
|
||||
; RUN: -polly-allow-differing-element-types < %s | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; int f(int *A, int *B) {
|
||||
; // Possible aliasing between A and B but if not then *B would be
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
;
|
||||
; void fence(void);
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; This crashed at some point as the invariant load is in a non-affine
|
||||
; subregion. Just check it does not anymore.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: polly.start
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -analyze < %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -analyze < %s
|
||||
;
|
||||
; Check that this does not crash as the invariant load is not executed (thus
|
||||
; not preloaded) but still referenced by one of the parameters.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
|
||||
; CHECK: polly.start
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s --check-prefix=SCOP
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s --check-prefix=SCOP
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; SCOP: Assumed Context:
|
||||
; SCOP-NEXT: [p_0, tmp4] -> { : }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-codegen -polly-ignore-aliasing -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-codegen -polly-invariant-load-hoisting=true -polly-ignore-aliasing -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK: %polly.access.A = getelementptr i32**, i32*** %A, i64 42
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s
|
||||
;
|
||||
; CHECK-LABEL: polly.preload.begin:
|
||||
; CHECK: %polly.access.B = getelementptr i32, i32* %B, i64 0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
||||
;
|
||||
; Verify the preloaded %tmp0 is stored and communicated in the same alloca.
|
||||
; In this case, we do not reload %ncol.load from the scalar stack slot, but
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen < %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true < %s
|
||||
;
|
||||
; Check we do not crash even though we pre-load values with different types
|
||||
; from the same base pointer.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-codegen < %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true < %s
|
||||
;
|
||||
; Check we do not crash even though we pre-load values with different types
|
||||
; from the same base pointer.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -S -polly-codegen %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true %s | FileCheck %s
|
||||
;
|
||||
; This crashed at some point as the pointer returned by the call
|
||||
; to @__errno_location is invariant and defined in the SCoP but not
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -S -polly-codegen %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -S -polly-codegen -polly-invariant-load-hoisting=true %s | FileCheck %s
|
||||
;
|
||||
; Check we generate valid code.
|
||||
;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -analyze < %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -analyze < %s
|
||||
|
||||
; CHECK: Statements {
|
||||
; CHECK-NEXT: Stmt_top_split
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
;
|
||||
; struct {
|
||||
; int a;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
;
|
||||
; struct {
|
||||
; int a;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
;
|
||||
; int U;
|
||||
; void f(int *A) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
;
|
||||
; int U;
|
||||
; int f(int *A) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -polly-ignore-aliasing -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -polly-ignore-aliasing -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -polly-ignore-aliasing -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -polly-ignore-aliasing -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Check that we do not consolidate the invariant loads to smp[order - 1] and
|
||||
; smp[order - 2] in the blocks %0 and %16. While they have the same pointer
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-function-scops -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-function-scops -polly-invariant-load-hoisting=true -polly-process-unprofitable -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -tbaa -polly-scops -polly-ignore-aliasing \
|
||||
; RUN: opt %loadPolly -tbaa -polly-scops -polly-invariant-load-hoisting=true -polly-ignore-aliasing \
|
||||
; RUN: -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Note: The order of the invariant accesses is important because A is the
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-process-unprofitable -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses:
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
|
||||
; This test case verifies that the statement domain of the invariant access
|
||||
; is the universe. In earlier versions of Polly, we accidentally computed an
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -analyze < %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -analyze < %s
|
||||
;
|
||||
; Stress test for the code generation of invariant accesses.
|
||||
;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=CODEGEN
|
||||
;
|
||||
; void f(int *I0, int *I1, int *V) {
|
||||
; for (int i = 0; i < 1000; i++) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -analyze < %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -analyze < %s
|
||||
;
|
||||
; CHECK: Execution Context: [p_0_loaded_from_currpc] -> { : }
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses: {
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -analyze -polly-scops < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -analyze -polly-scops -polly-invariant-load-hoisting=true < %s | FileCheck %s
|
||||
;
|
||||
; Negative test. If we assume UB[*V] to be invariant we get a cyclic
|
||||
; dependence in the invariant loads that needs to be resolved by
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses: {
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Verify that we only have one parameter and one invariant load for all
|
||||
; three loads that occure in the region but actually access the same
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Verify that we only have one parameter and one invariant load for all
|
||||
; three loads that occure in the region but actually access the same
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Verify we do hoist the invariant access to I with a execution context
|
||||
; as the address computation might wrap in the original but not in our
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
;
|
||||
; CHECK: Invariant Accesses: {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: Invariant Accesses: {
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Verify we hoist I[0] without execution context even though it
|
||||
; is executed in a statement with an invalid domain.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Verify we do not hoist I[c] without execution context because it
|
||||
; is executed in a statement with an invalid domain and it depends
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Check that we model the execution context correctly.
|
||||
;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s --check-prefix=IR
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s --check-prefix=IR
|
||||
;
|
||||
; CHECK: Invariant Accesses: {
|
||||
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-scops -polly-invariant-load-hoisting=true -analyze < %s | FileCheck %s
|
||||
;
|
||||
; Check that we do not try to preload *I and assume p != 42.
|
||||
;
|
||||
|
|
Loading…
Reference in New Issue