[PATCH] D48193: [LoopVectorizer] Use an interleave count of 1 when using a vector library call

Diego Caballero via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 14 13:42:41 PDT 2018


dcaballe added a comment.

Hi Robert,

thanks for bringing this up! This approach is blindly setting the interleave factor to 1 when there are vector math function calls. I have the following questions/comments:

1. Maybe I'm missing something but, wouldn't the same problem happen when the function calls are scalar or for any arbitrary function call (not necessarily math functions)? Why should we do this for vector math function calls only?
2. I'm concerned about this change introducing performance regressions. For example, imaging a loop body where the total gain of interleaving overcomes the penalty of the register spilling caused by the function call. Wouldn't it be better to properly model this particular register spilling penalty in the context of function calls instead of blindly disabling interleaving for those cases?

Thanks,
Diego


Repository:
  rL LLVM

https://reviews.llvm.org/D48193





More information about the llvm-commits mailing list