[PATCH] D17289: [X86] Fix False Data Dependency in popcnt
Steven Noonan via llvm-commits
llvm-commits at lists.llvm.org
Sun May 1 10:05:56 PDT 2016
tycho added a comment.
Sorry to gravedig, but this hasn't been updated in months. Has this been worked on at all recently?
Also, the false dependency microarchitecture bug continues to persist through Skylake, and there's no known fix on the horizon. Why not just xor the destination register unconditionally before **any** popcnt instruction, though? It shouldn't be a microarch-specific pass. From what I've seen, it's incredibly common for code to be built targeting a much older subtarget, but run on modern ones. That is, this pass would be skipped with -march=corei7, but -march=corei7 code can/will be run on newer hardware with the bug. From what I've seen on Nehalem and Westmere, there's no additional penalty for clearing the destination register before popcnt. So just do it always.
Repository:
rL LLVM
http://reviews.llvm.org/D17289
More information about the llvm-commits
mailing list