You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/05/23 14:49:02 UTC

[GitHub] [arrow-datafusion] waynexia commented on pull request #2587: Evaluate JIT'd expression over arrays

waynexia commented on PR #2587:
URL: https://github.com/apache/arrow-datafusion/pull/2587#issuecomment-1134774026

   I got this from compiled function:
   ```
   function u0:0(i64, i64, i64, i64) system_v {
   block0(v0: i64, v1: i64, v2: i64, v3: i64):
       v11 -> v0
       v14 -> v1
       v17 -> v2
       v6 -> v3
       v4 = iconst.i64 0
       jump block1(v4)
   
   block1(v5: i64):
       v7 = icmp slt v5, v6
       v8 = bint.i64 v7
       brz v8, block3
       jump block2
   
   block2:
       v9 = iconst.i64 8
       v10 = imul.i64 v5, v9
       v12 = iadd.i64 v11, v10
       v13 = load.i64 v12
       v15 = iadd.i64 v14, v10
       v16 = load.i64 v15
       v18 = iadd.i64 v17, v10
       v19 = iadd v13, v16
       store v19, v18
       v20 = iconst.i64 1
       v21 = iadd.i64 v5, v20
       jump block1(v21)
   
   block3:
       return
   }
   ```
   
   It just looks like a bare translation of what we build. So I suspect the vectorization is not done here (after translation). Further, I find this [`I64X8` type](https://docs.rs/cranelift-codegen/latest/cranelift_codegen/ir/types/constant.I64X8.html) from the document (we are currently using [`I64`](https://docs.rs/cranelift-codegen/latest/cranelift_codegen/ir/types/constant.I64.html)). Perhaps this means that we need to manually vectorize our computation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org