[PATCH] D97947: [AArch64] Force runtime unrolling for in-order scheduling models

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 19 08:08:02 PDT 2021


fhahn added a comment.

In D97947#2698654 <https://reviews.llvm.org/D97947#2698654>, @NickGuy wrote:

>> Can you remind me about the impact of this? I.e., if -mcpu is omitted, we default to generic which is classified, or is using, an in-order schedmodel description on Android?
>
> Yep, that's right. Though I don't think it was specific to Android, but AArch64 in general.

So does this mean the new behavior will be the default if no CPU is specified? I'm not sure if we are ready for that yet, unless we are confident that the current heuristics work well for out-of-order cores too. (Last time I benchmarked this for out-of-order cores there were a few notable regressions, but it's been a few months since then)



================
Comment at: llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:1110
+
+  // Scan the loop: don't unroll loops with calls as this could prevent
+  // inlining.
----------------
This comment seems out of date?


================
Comment at: llvm/test/Transforms/PhaseOrdering/AArch64/hoisting-required-for-vectorization.ll:107
   %cmp = icmp ult i32 %1, 20000
-  br i1 %cmp, label %for.body, label %for.cond.cleanup
+  br i1 %cmp, label %for.body, label %for.cond.cleanup, !llvm.loop !0
 
----------------
why do we need to disable unrolling here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97947/new/

https://reviews.llvm.org/D97947



More information about the llvm-commits mailing list