[polly] r247278 - Disable support for modulo expressions

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 10 05:56:47 PDT 2015


Author: jdoerfert
Date: Thu Sep 10 07:56:46 2015
New Revision: 247278

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

  The support for modulo expressions is not comlete and makes the new
  domain generation harder. As the currently broken domain generation
  needs to be replaced, we will first swap in the new, fixed domain
  generation and make it compatible with the modulo expressions later.


Modified:
    polly/trunk/lib/Support/SCEVValidator.cpp
    polly/trunk/test/Isl/CodeGen/if-conditions-in-vector-code.ll
    polly/trunk/test/Isl/CodeGen/inner_scev_sdiv_in_rtc.ll
    polly/trunk/test/Isl/CodeGen/srem-in-other-bb.ll
    polly/trunk/test/ScopInfo/NonAffine/non_affine_but_srem.ll
    polly/trunk/test/ScopInfo/multidim_srem.ll
    polly/trunk/test/ScopInfo/reduction_alternating_base.ll

Modified: polly/trunk/lib/Support/SCEVValidator.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVValidator.cpp?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/lib/Support/SCEVValidator.cpp (original)
+++ polly/trunk/lib/Support/SCEVValidator.cpp Thu Sep 10 07:56:46 2015
@@ -350,17 +350,23 @@ public:
   }
 
   ValidatorResult visitSRemInstruction(Instruction *SRem, const SCEV *S) {
-    assert(SRem->getOpcode() == Instruction::SRem &&
-           "Assumed SRem instruction!");
+    // TODO: FIXME: SRem instructions in the domain description are currently
+    //              not compatible with the domain generation. Once this is
+    //              fixed we need to enable this handling again.
+    return ValidatorResult(SCEVType::INVALID);
+#if 0
+        assert(SRem->getOpcode() == Instruction::SRem &&
+               "Assumed SRem instruction!");
 
-    auto *Divisor = SRem->getOperand(1);
-    auto *CI = dyn_cast<ConstantInt>(Divisor);
-    if (!CI)
-      return visitGenericInst(SRem, S);
+        auto *Divisor = SRem->getOperand(1);
+        auto *CI = dyn_cast<ConstantInt>(Divisor);
+        if (!CI)
+          return visitGenericInst(SRem, S);
 
-    auto *Dividend = SRem->getOperand(0);
-    auto *DividendSCEV = SE.getSCEV(Dividend);
-    return visit(DividendSCEV);
+        auto *Dividend = SRem->getOperand(0);
+        auto *DividendSCEV = SE.getSCEV(Dividend);
+        return visit(DividendSCEV);
+#endif
   }
 
   ValidatorResult visitUnknown(const SCEVUnknown *Expr) {

Modified: polly/trunk/test/Isl/CodeGen/if-conditions-in-vector-code.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/if-conditions-in-vector-code.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/if-conditions-in-vector-code.ll (original)
+++ polly/trunk/test/Isl/CodeGen/if-conditions-in-vector-code.ll Thu Sep 10 07:56:46 2015
@@ -4,6 +4,12 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-codegen -polly-vectorizer=polly -S < %s | \
 ; RUN:     FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again. Until then we approximate the
+;       whole loop body.
+; XFAIL: *
+
 ;    void foo(float *A) {
 ;      for (long i = 0; i < 16; i++) {
 ;        if (i % 2)

Modified: polly/trunk/test/Isl/CodeGen/inner_scev_sdiv_in_rtc.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/inner_scev_sdiv_in_rtc.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/inner_scev_sdiv_in_rtc.ll (original)
+++ polly/trunk/test/Isl/CodeGen/inner_scev_sdiv_in_rtc.ll Thu Sep 10 07:56:46 2015
@@ -1,6 +1,11 @@
 ; RUN: opt %loadPolly -polly-codegen -polly-no-early-exit \
 ; RUN:     -polly-detect-unprofitable -S < %s | FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again.
+; XFAIL: *
+;
 ; This will just check that we generate valid code here.
 ;
 ; CHECK: polly.start:

Modified: polly/trunk/test/Isl/CodeGen/srem-in-other-bb.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/CodeGen/srem-in-other-bb.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/Isl/CodeGen/srem-in-other-bb.ll (original)
+++ polly/trunk/test/Isl/CodeGen/srem-in-other-bb.ll Thu Sep 10 07:56:46 2015
@@ -1,6 +1,11 @@
 ; RUN: opt %loadPolly -polly-codegen -S -polly-no-early-exit \
 ; RUN:     -polly-detect-unprofitable < %s | FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again.
+; XFAIL: *
+;
 ;    void pos(float *A, long n) {
 ;      for (long i = 0; i < 100; i++)
 ;        A[n % 42] += 1;

Modified: polly/trunk/test/ScopInfo/NonAffine/non_affine_but_srem.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/NonAffine/non_affine_but_srem.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/NonAffine/non_affine_but_srem.ll (original)
+++ polly/trunk/test/ScopInfo/NonAffine/non_affine_but_srem.ll Thu Sep 10 07:56:46 2015
@@ -1,6 +1,11 @@
 ; RUN: opt %loadPolly -polly-scops -polly-detect-unprofitable \
 ; RUN:                -analyze < %s | FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again.
+; XFAIL: *
+;
 ;    void pos(float *A, long n) {
 ;      for (long i = 0; i < 100; i++)
 ;        A[n % 42] += 1;

Modified: polly/trunk/test/ScopInfo/multidim_srem.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/multidim_srem.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/multidim_srem.ll (original)
+++ polly/trunk/test/ScopInfo/multidim_srem.ll Thu Sep 10 07:56:46 2015
@@ -1,5 +1,10 @@
 ; RUN: opt %loadPolly -analyze -polly-scops -S < %s | FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again.
+; XFAIL: *
+;
 ;    void foo(long n, float A[][n][n]) {
 ;      for (long i = 0; i < 200; i++)
 ;        for (long j = 0; j < n; j++)

Modified: polly/trunk/test/ScopInfo/reduction_alternating_base.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_alternating_base.ll?rev=247278&r1=247277&r2=247278&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_alternating_base.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_alternating_base.ll Thu Sep 10 07:56:46 2015
@@ -1,5 +1,9 @@
 ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze < %s | FileCheck %s
 ;
+; TODO: The new domain generation cannot handle modulo domain constraints,
+;       hence modulo handling has been disabled completely. Once this is
+;       resolved this test should work again.
+; XFAIL: *
 ;
 ;    void f(int *A) {
 ;      for (int i = 0; i < 1024; i++)




More information about the llvm-commits mailing list