diff options
author | Nikolai Bozhenov <nikolai.bozhenov@intel.com> | 2017-04-02 13:14:30 +0000 |
---|---|---|
committer | Nikolai Bozhenov <nikolai.bozhenov@intel.com> | 2017-04-02 13:14:30 +0000 |
commit | fca527af5c5454efdde8cdf2c54d21074ac76c90 (patch) | |
tree | f1f65b1617f4aba73c93c177d711bf0820c282fe /llvm/lib/Transforms/IPO/MergeFunctions.cpp | |
parent | dddce31eb4961578564e0cd2671286b967e06b78 (diff) | |
download | bcm5719-llvm-fca527af5c5454efdde8cdf2c54d21074ac76c90.tar.gz bcm5719-llvm-fca527af5c5454efdde8cdf2c54d21074ac76c90.zip |
[BypassSlowDivision] Do not bypass division of hash-like values
Disable bypassing if one of the operands looks like a hash value. Slow
division often occurs in hashtable implementations and fast division is
never taken there because a hash value is extremely unlikely to have
enough upper bits set to zero.
A value is considered to be hash-like if it is produced by
1) XOR operation
2) Multiplication by a constant wider than the shorter type
3) PHI node with all incoming values being hash-like
Differential Revision: https://reviews.llvm.org/D28200
llvm-svn: 299329
Diffstat (limited to 'llvm/lib/Transforms/IPO/MergeFunctions.cpp')
0 files changed, 0 insertions, 0 deletions