summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/SampleProfile.cpp
diff options
context:
space:
mode:
authorTim Shen <timshen91@gmail.com>2017-01-23 22:39:35 +0000
committerTim Shen <timshen91@gmail.com>2017-01-23 22:39:35 +0000
commitfd1e5aa8dffa8b26e59fb340668b264b9ac80382 (patch)
tree61c9f22bd15cd3ebb3f84e6d1889cbc21a09af5d /llvm/lib/Transforms/IPO/SampleProfile.cpp
parent09cca093a390725df66af1a45ef0eb4aa695b5e5 (diff)
downloadbcm5719-llvm-fd1e5aa8dffa8b26e59fb340668b264b9ac80382.tar.gz
bcm5719-llvm-fd1e5aa8dffa8b26e59fb340668b264b9ac80382.zip
[APFloat] Switch from (PPCDoubleDoubleImpl, IEEEdouble) layout to (IEEEdouble, IEEEdouble)
Summary: This patch changes the layout of DoubleAPFloat, and adjust all operations to do either: 1) (IEEEdouble, IEEEdouble) -> (uint64_t, uint64_t) -> PPCDoubleDoubleImpl, then run the old algorithm. 2) Do the right thing directly. 1) includes multiply, divide, remainder, mod, fusedMultiplyAdd, roundToIntegral, convertFromString, next, convertToInteger, convertFromAPInt, convertFromSignExtendedInteger, convertFromZeroExtendedInteger, convertToHexString, toString, getExactInverse. 2) includes makeZero, makeLargest, makeSmallest, makeSmallestNormalized, compare, bitwiseIsEqual, bitcastToAPInt, isDenormal, isSmallest, isLargest, isInteger, ilogb, scalbn, frexp, hash_value, Profile. I could split this into two patches, e.g. use 1) for all operatoins first, then incrementally change some of them to 2). I didn't do that, because 1) involves code that converts data between PPCDoubleDoubleImpl and (IEEEdouble, IEEEdouble) back and forth, and may pessimize the compiler. Instead, I find easy functions and use approach 2) for them directly. Next step is to implement move multiply and divide from 1) to 2). I don't have plans for other functions in 1). Differential Revision: https://reviews.llvm.org/D27872 llvm-svn: 292839
Diffstat (limited to 'llvm/lib/Transforms/IPO/SampleProfile.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud