[PATCH] D89456: [SCEV] Introduce SCEVPtrToIntExpr (PR46786)

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 18 21:50:20 PDT 2020


mkazantsev requested changes to this revision.
mkazantsev added a comment.
This revision now requires changes to proceed.

Seems that this patch leads to worse code generation in Polly in many cases. And I don't see a single case where it does something useful. I think we should have fixes for all of them if we want to merge it.



================
Comment at: polly/test/Isl/CodeGen/partial_write_impossible_restriction.ll:8
+
+; How to update this test?
+; XFAIL: *
----------------
TODO/FIXME?


================
Comment at: polly/test/Isl/CodeGen/phi_after_error_block_outside_of_scop.ll:7
 ; CHECK:        polly.cond:
-; CHECK-NEXT:   ptrtoint float* %tmp8 to i64
-; CHECK-NEXT:   icmp sle i64
-; CHECK-NEXT:   ptrtoint float* %tmp8 to i64
-; CHECK-NEXT:   icmp sge i64
-; CHECK-NEXT:   or i1
-; CHECK-NEXT:   label %polly.then, label %polly.else
+; CHECK-NEXT:     %0 = ptrtoint float* %tmp8 to i64
+; CHECK-NEXT:     %1 = add nsw i64 %0, 1
----------------
Regression.


================
Comment at: polly/test/Isl/CodeGen/pointer-type-expressions.ll:36
 
-; CHECK:      if (P <= -1 || P >= 1)
-; CHECK-NEXT:   for (int c0 = 0; c0 < N; c0 += 1)
-; CHECK-NEXT:     Stmt_store(c0);
-
-; CODEGEN-LABEL: polly.cond:
-; CODEGEN-NEXT:   %[[R1:[0-9]*]] = ptrtoint float* %P to i64
-; CODEGEN-NEXT:   %[[R2:[0-9]*]] = icmp sle i64 %[[R1]], -1
-; CODEGEN-NEXT:   %[[R3:[0-9]*]] = ptrtoint float* %P to i64
-; CODEGEN-NEXT:   %[[R4:[0-9]*]] = icmp sge i64 %[[R3]], 1
-; CODEGEN-NEXT:   %[[R5:[0-9]*]] = or i1 %[[R2]], %[[R4]]
-; CODEGEN-NEXT:   br i1 %[[R5]]
+; CHECK:      if (1 && 0 == ((p_1 >= P + 1 && N >= 1152921504606846977) || (P >= p_1 + 1 && N >= 1152921504606846977)))
+; CHECK-EMPTY:
----------------
Regression.


================
Comment at: polly/test/ScopInfo/int2ptr_ptr2int.ll:33
 ; IR:      polly.loop_preheader:
+; IR-NEXT:   %0 = add i64 %val, 1
 ; IR-NEXT:   %scevgep = getelementptr i64, i64* %ptr, i32 1
----------------
Regression.


================
Comment at: polly/test/ScopInfo/multidim_2d_with_modref_call_2.ll:56
 ; CHECK-NEXT:                [tmp14, p_1] -> { Stmt_bb17[i0] -> MemRef_arg4[o0] };
-; CHECK-NEXT:            MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]
+; CHECK-NEXT:            ReadAccess :=       [Reduction Type: NONE] [Scalar: 0]
+; CHECK-NEXT:                [tmp14, p_1] -> { Stmt_bb17[i0] -> MemRef3[o0] };
----------------
Regression.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89456/new/

https://reviews.llvm.org/D89456



More information about the llvm-commits mailing list