[PATCH] D34619: [ARM] Enable partial and runtime unrolling

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 29 10:51:15 PDT 2017


samparker added inline comments.


================
Comment at: test/CodeGen/ARM/loop-unrolling.ll:152
+; CHECK-LABEL: nested_runtime_variant
+define arm_aapcs_vfpcc void @nested_runtime_variant(i32* nocapture %C, i16* nocapture readonly %A, i16* nocapture readonly %B, i32 %N) local_unnamed_addr #0 {
+entry:
----------------
efriedma wrote:
> Why do we want to avoid unrolling here?  At first glance, this looks like it should be profitable to unroll (more scheduler freedom, avoid branches).
Enabling runtime unrolling can generate more spill code, and for small runtime counts the unrolled version may not even be executed that frequently, so I found that unrolling inner loops whose variable trip count is computed in the parent loop can cause some very significant regressions. 


https://reviews.llvm.org/D34619





More information about the llvm-commits mailing list