[PATCH] D81353: [PowerPC] Don't convert Loop to CTR Loop for fp128 BinaryOperator

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 7 19:44:11 PDT 2020


efriedma added a comment.

Not a comment on this patch specifically, but in general, I'd recommend changing the PowerPC implementation of hardware loops to switch to an approach that allows making the final decision on whether to emit a hardware loop after isel.  ARM does this.

Basically, if that target sets HWLoopInfo.CounterInReg to true in isHardwareLoopProfitable, the HardwareLoops pass emits slightly different intrinsics; the alternate intrinsics are more straightforward to lower to a regular compare/branch.  Then, if the target decides after isel that a hardware loop is illegal or unprofitable, it can easily fall back.  That way, we can avoid this endless stream of bugs: if isHardwareLoopProfitable misses some obscure construct that requires clobbering CTR, it doesn't matter.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81353





More information about the llvm-commits mailing list