[polly] r247147 - Disable support for pointer expressions

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 9 07:19:04 PDT 2015


Author: jdoerfert
Date: Wed Sep  9 09:19:04 2015
New Revision: 247147

URL: http://llvm.org/viewvc/llvm-project?rev=247147&view=rev
Log:
Disable support for pointer expressions

  The support for pointer expressions is broken as it can only handle
  some patterns in the IslExprBuilder. We should to treat pointers in
  expressions the same as integers at some point and revert this patch.

Modified:
    polly/trunk/lib/Analysis/ScopDetection.cpp
    polly/trunk/lib/Support/SCEVValidator.cpp
    polly/trunk/test/Isl/CodeGen/20120316-InvalidCast.ll
    polly/trunk/test/Isl/CodeGen/pointer-type-expressions-2.ll
    polly/trunk/test/Isl/CodeGen/pointer-type-expressions.ll
    polly/trunk/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll
    polly/trunk/test/ScopInfo/pointer-type-expressions.ll

Modified: polly/trunk/lib/Analysis/ScopDetection.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopDetection.cpp?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopDetection.cpp (original)
+++ polly/trunk/lib/Analysis/ScopDetection.cpp Wed Sep  9 09:19:04 2015
@@ -344,6 +344,12 @@ bool ScopDetection::isValidCFG(BasicBloc
         isa<UndefValue>(ICmp->getOperand(1)))
       return invalid<ReportUndefOperand>(Context, /*Assert=*/true, &BB, ICmp);
 
+    // TODO: FIXME: IslExprBuilder is not capable of producing valid code
+    //              for arbitrary pointer expressions at the moment. Until
+    //              this is fixed we disallow pointer expressions completely.
+    if (ICmp->getOperand(0)->getType()->isPointerTy())
+      return false;
+
     Loop *L = LI->getLoopFor(ICmp->getParent());
     const SCEV *LHS = SE->getSCEVAtScope(ICmp->getOperand(0), L);
     const SCEV *RHS = SE->getSCEVAtScope(ICmp->getOperand(1), L);

Modified: polly/trunk/lib/Support/SCEVValidator.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVValidator.cpp?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/lib/Support/SCEVValidator.cpp (original)
+++ polly/trunk/lib/Support/SCEVValidator.cpp Wed Sep  9 09:19:04 2015
@@ -366,8 +366,16 @@ public:
   ValidatorResult visitUnknown(const SCEVUnknown *Expr) {
     Value *V = Expr->getValue();
 
-    if (!(Expr->getType()->isIntegerTy() || Expr->getType()->isPointerTy())) {
-      DEBUG(dbgs() << "INVALID: UnknownExpr is not an integer or pointer type");
+    // TODO: FIXME: IslExprBuilder is not capable of producing valid code
+    //              for arbitrary pointer expressions at the moment. Until
+    //              this is fixed we disallow pointer expressions completely.
+    if (Expr->getType()->isPointerTy()) {
+      DEBUG(dbgs() << "INVALID: UnknownExpr is a pointer type [FIXME]");
+      return ValidatorResult(SCEVType::INVALID);
+    }
+
+    if (!Expr->getType()->isIntegerTy()) {
+      DEBUG(dbgs() << "INVALID: UnknownExpr is not an integer");
       return ValidatorResult(SCEVType::INVALID);
     }
 

Modified: polly/trunk/test/Isl/CodeGen/20120316-InvalidCast.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/20120316-InvalidCast.ll?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/20120316-InvalidCast.ll (original)
+++ polly/trunk/test/Isl/CodeGen/20120316-InvalidCast.ll Wed Sep  9 09:19:04 2015
@@ -1,5 +1,10 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -S -polly-codegen -polly-no-early-exit < %s | FileCheck %s
 
+; TODO: FIXME: IslExprBuilder is not capable of producing valid code
+;              for arbitrary pointer expressions at the moment. Until
+;              this is fixed we disallow pointer expressions completely.
+; XFAIL: *
+
 ; CHECK: polly.start
 
 target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-a0:0-n32"

Modified: polly/trunk/test/Isl/CodeGen/pointer-type-expressions-2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/pointer-type-expressions-2.ll?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/pointer-type-expressions-2.ll (original)
+++ polly/trunk/test/Isl/CodeGen/pointer-type-expressions-2.ll Wed Sep  9 09:19:04 2015
@@ -2,6 +2,11 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-no-early-exit -polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 
+; TODO: FIXME: IslExprBuilder is not capable of producing valid code
+;              for arbitrary pointer expressions at the moment. Until
+;              this is fixed we disallow pointer expressions completely.
+; XFAIL: *
+
 define void @foo(i8* %start, i8* %end) {
 entry:
   %A = alloca i32

Modified: polly/trunk/test/Isl/CodeGen/pointer-type-expressions.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/pointer-type-expressions.ll?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/pointer-type-expressions.ll (original)
+++ polly/trunk/test/Isl/CodeGen/pointer-type-expressions.ll Wed Sep  9 09:19:04 2015
@@ -1,6 +1,11 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-no-early-exit -polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN
 
+; TODO: FIXME: IslExprBuilder is not capable of producing valid code
+;              for arbitrary pointer expressions at the moment. Until
+;              this is fixed we disallow pointer expressions completely.
+; XFAIL: *
+
 ; void f(int a[], int N, float *P) {
 ;   int i;
 ;   for (i = 0; i < N; ++i)

Modified: polly/trunk/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll (original)
+++ polly/trunk/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll Wed Sep  9 09:19:04 2015
@@ -1,6 +1,11 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-no-early-exit -polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN
 ;
+; TODO: FIXME: IslExprBuilder is not capable of producing valid code
+;              for arbitrary pointer expressions at the moment. Until
+;              this is fixed we disallow pointer expressions completely.
+; XFAIL: *
+
 ;    void f(int a[], int N, float *P, float *Q) {
 ;      int i;
 ;      for (i = 0; i < N; ++i)

Modified: polly/trunk/test/ScopInfo/pointer-type-expressions.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/pointer-type-expressions.ll?rev=247147&r1=247146&r2=247147&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/pointer-type-expressions.ll (original)
+++ polly/trunk/test/ScopInfo/pointer-type-expressions.ll Wed Sep  9 09:19:04 2015
@@ -1,5 +1,10 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze < %s | FileCheck %s
 
+; TODO: FIXME: IslExprBuilder is not capable of producing valid code
+;              for arbitrary pointer expressions at the moment. Until
+;              this is fixed we disallow pointer expressions completely.
+; XFAIL: *
+
 ; void f(int a[], int N, float *P) {
 ;   int i;
 ;   for (i = 0; i < N; ++i)




More information about the llvm-commits mailing list