[Polly][PATCH 4/8] Allow the IslExprBuilder to compare pointers

Johannes Doerfert doerfert at cs.uni-saarland.de
Mon Aug 11 00:38:52 PDT 2014


On 08/11, Tobias Grosser wrote:
> Please merge this into the patch that actually tests and uses it.
> 
> Some comments inline:
> 
> On 10/08/2014 09:50, Johannes Doerfert wrote:
> [..]
> >    switch (isl_ast_expr_get_op_type(Expr)) {
> >    default:
> >@@ -280,16 +286,20 @@ Value *IslExprBuilder::createOpICmp(__isl_take isl_ast_expr *Expr) {
> >      Res = Builder.CreateICmpEQ(LHS, RHS);
> >      break;
> >    case isl_ast_op_le:
> >-    Res = Builder.CreateICmpSLE(LHS, RHS);
> >+    Res = IsPtrType ? Builder.CreateICmpULE(LHS, RHS)
> >+                    : Builder.CreateICmpSLE(LHS, RHS);
> >      break;
> >    case isl_ast_op_lt:
> >-    Res = Builder.CreateICmpSLT(LHS, RHS);
> >+    Res = IsPtrType ? Builder.CreateICmpULT(LHS, RHS)
> >+                    : Builder.CreateICmpSLT(LHS, RHS);
> >      break;
> >    case isl_ast_op_ge:
> >-    Res = Builder.CreateICmpSGE(LHS, RHS);
> >+    Res = IsPtrType ? Builder.CreateICmpUGE(LHS, RHS)
> >+                    : Builder.CreateICmpSGE(LHS, RHS);
> >      break;
> >    case isl_ast_op_gt:
> >-    Res = Builder.CreateICmpSGT(LHS, RHS);
> >+    Res = IsPtrType ? Builder.CreateICmpUGT(LHS, RHS)
> >+                    : Builder.CreateICmpSGT(LHS, RHS);
> 
> Did you consider CreateICmp(Predicate, LHS, RHS), plus a table that
> maps the enum values to the corresponding predicates? This code seems
> to start to have a lot of duplication.
I did not really, but we could use a two dimensional table if you prefer that.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140811/a8c6f784/attachment.sig>


More information about the llvm-commits mailing list