[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