[PATCH] D20030: [AArch64] Add option to disable speculation of triangle whose tail is the only latch block
Renato Golin via llvm-commits
llvm-commits at lists.llvm.org
Tue May 24 11:10:57 PDT 2016
rengolin added a comment.
In http://reviews.llvm.org/D20030#437974, @bmakam wrote:
> The performance depends on the cost of the cbz here. On Kryo we see 3% gain with this patch whereas on A57 we see 10% regression. This branch seems to be mostly not taken and so when we place the cbz out of the critical path as show below (...)
> the performance on A57 improves by 4%. I am not sure but it seems like the cost of cbz on A57 is higher than on Kryo.
This is interesting... I wasn't expecting that much of a difference, but sub-arch issues can cause massive changes.
Now, about the CBZ, it may be it, or it may be a class of instructions that are faster on Kryo, or it could be a red herring.
Regardless, I don't think we should limit this optimization with a FeatureFastCBZ flag, because that would be extrapolating without data. I really think that enabling this on all A64 will bring more problems than solve, but limiting on a flag or for Kryo only would be weird.
Since this doesn't seem to have a big impact, even for Kryo, I'm reluctant...
I'd welcome Tim's and James' point of view on this.
More information about the llvm-commits