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).

Reply via email to