I have been working on TVM schedules for ARM. One thing that I notice is that LLVM has its own unrolling heuristics, that can completely mess up the analysis that one does for unrolling in TVM.
For example, a developer can choose to unroll a particular axis with the goal of better reuse utilization in vector registers. But, LLVM can unroll one more axis that can completely mess up the vector register locality, causing lots of memory spills. Since, it is TVM responsibility to find whether or not to unroll, would it make sense to disable LLVM unrolling? Disabling LLVM unrolling is pretty easy - https://llvm.org/doxygen/classllvm_1_1PassManagerBuilder.html#a6c669ca5ca0a6b7e47a9fe9ae9aaa32d @tqchen @kevinthesun @haichen @yzhliu @FrozenGene --- [Visit Topic](https://discuss.tvm.ai/t/disabling-llvm-unrolling/6039/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/c5068e0c9163c979c5b4c46def54906a27cafa4ed199d6f7b7011085ccf861d1).