Ignore:
Timestamp:
Sep 2, 2011, 3:09:34 PM (14 years ago)
Author:
[email protected]
Message:

Incorporate newer, faster dtoa library
https://bugs.webkit.org/show_bug.cgi?id=66346

Patch by Mark Hahnenberg <[email protected]> on 2011-09-02
Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Added new dtoa library at http://code.google.com/p/double-conversion/.
Replaced old call to dtoa. The new library is much faster than the old one.
We still use the old dtoa for some stuff in WebCore as well as the old strtod,
but we can phase these out eventually as well.

(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):

  • runtime/UString.cpp:

(JSC::UString::number):

  • wtf/CMakeLists.txt:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading):

  • wtf/dtoa.cpp:

(WTF::dtoa):

  • wtf/dtoa.h:
  • wtf/dtoa/COPYING: Added.
  • wtf/dtoa/LICENSE: Added.
  • wtf/dtoa/README: Added.
  • wtf/dtoa/bignum-dtoa.cc: Added.
  • wtf/dtoa/bignum-dtoa.h: Added.
  • wtf/dtoa/bignum.cc: Added.
  • wtf/dtoa/bignum.h: Added.

(WTF::double_conversion::Bignum::Times10):
(WTF::double_conversion::Bignum::Equal):
(WTF::double_conversion::Bignum::LessEqual):
(WTF::double_conversion::Bignum::Less):
(WTF::double_conversion::Bignum::PlusEqual):
(WTF::double_conversion::Bignum::PlusLessEqual):
(WTF::double_conversion::Bignum::PlusLess):
(WTF::double_conversion::Bignum::EnsureCapacity):
(WTF::double_conversion::Bignum::BigitLength):

  • wtf/dtoa/cached-powers.cc: Added.
  • wtf/dtoa/cached-powers.h: Added.
  • wtf/dtoa/diy-fp.cc: Added.
  • wtf/dtoa/diy-fp.h: Added.

(WTF::double_conversion::DiyFp::DiyFp):
(WTF::double_conversion::DiyFp::Subtract):
(WTF::double_conversion::DiyFp::Minus):
(WTF::double_conversion::DiyFp::Times):
(WTF::double_conversion::DiyFp::Normalize):
(WTF::double_conversion::DiyFp::f):
(WTF::double_conversion::DiyFp::e):
(WTF::double_conversion::DiyFp::set_f):
(WTF::double_conversion::DiyFp::set_e):

  • wtf/dtoa/double-conversion.cc: Added.
  • wtf/dtoa/double-conversion.h: Added.

(WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
(WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):

  • wtf/dtoa/double.h: Added.

(WTF::double_conversion::double_to_uint64):
(WTF::double_conversion::uint64_to_double):
(WTF::double_conversion::Double::Double):
(WTF::double_conversion::Double::AsDiyFp):
(WTF::double_conversion::Double::AsNormalizedDiyFp):
(WTF::double_conversion::Double::AsUint64):
(WTF::double_conversion::Double::NextDouble):
(WTF::double_conversion::Double::Exponent):
(WTF::double_conversion::Double::Significand):
(WTF::double_conversion::Double::IsDenormal):
(WTF::double_conversion::Double::IsSpecial):
(WTF::double_conversion::Double::IsNan):
(WTF::double_conversion::Double::IsInfinite):
(WTF::double_conversion::Double::Sign):
(WTF::double_conversion::Double::UpperBoundary):
(WTF::double_conversion::Double::NormalizedBoundaries):
(WTF::double_conversion::Double::value):
(WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
(WTF::double_conversion::Double::Infinity):
(WTF::double_conversion::Double::NaN):
(WTF::double_conversion::Double::DiyFpToUint64):

  • wtf/dtoa/fast-dtoa.cc: Added.
  • wtf/dtoa/fast-dtoa.h: Added.
  • wtf/dtoa/fixed-dtoa.cc: Added.
  • wtf/dtoa/fixed-dtoa.h: Added.
  • wtf/dtoa/strtod.cc: Added.
  • wtf/dtoa/strtod.h: Added.
  • wtf/dtoa/utils.h: Added.

(WTF::double_conversion::Max):
(WTF::double_conversion::Min):
(WTF::double_conversion::StrLength):
(WTF::double_conversion::Vector::Vector):
(WTF::double_conversion::Vector::SubVector):
(WTF::double_conversion::Vector::length):
(WTF::double_conversion::Vector::is_empty):
(WTF::double_conversion::Vector::start):
(WTF::double_conversion::Vector::operator[]):
(WTF::double_conversion::Vector::first):
(WTF::double_conversion::Vector::last):
(WTF::double_conversion::StringBuilder::StringBuilder):
(WTF::double_conversion::StringBuilder::~StringBuilder):
(WTF::double_conversion::StringBuilder::size):
(WTF::double_conversion::StringBuilder::position):
(WTF::double_conversion::StringBuilder::Reset):
(WTF::double_conversion::StringBuilder::AddCharacter):
(WTF::double_conversion::StringBuilder::AddString):
(WTF::double_conversion::StringBuilder::AddSubstring):
(WTF::double_conversion::StringBuilder::AddPadding):
(WTF::double_conversion::StringBuilder::Finalize):
(WTF::double_conversion::StringBuilder::is_finalized):
(WTF::double_conversion::BitCast):

  • wtf/wtf.pri:

Source/WebCore:

No new tests.

Added new dtoa library at http://code.google.com/p/double-conversion/.
Replaced old call to dtoa. The new library is much faster than the old one.
We still use the old dtoa for some stuff in WebCore as well as the old strtod,
but we can phase these out eventually as well.

  • ForwardingHeaders/wtf/dtoa/double-conversion.h: Added.
  • WebCore.vcproj/copyForwardingHeaders.cmd:
  • css/CSSPrimitiveValue.cpp:

(WebCore::formatNumber):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::serializeForNumberType):

  • inspector/InspectorValues.cpp:

(WebCore::InspectorBasicValue::writeJSON):

  • platform/graphics/Color.cpp:

(WebCore::Color::serialized):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r94449 r94452  
     12011-09-02  Mark Hahnenberg  <[email protected]>
     2
     3        Incorporate newer, faster dtoa library
     4        https://bugs.webkit.org/show_bug.cgi?id=66346
     5
     6        Reviewed by Oliver Hunt.
     7
     8        Added new dtoa library at http://code.google.com/p/double-conversion/.
     9        Replaced old call to dtoa.  The new library is much faster than the old one.
     10        We still use the old dtoa for some stuff in WebCore as well as the old strtod,
     11        but we can phase these out eventually as well.
     12
     13        * GNUmakefile.list.am:
     14        * JavaScriptCore.exp:
     15        * JavaScriptCore.gypi:
     16        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
     17        * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd:
     18        * JavaScriptCore.vcproj/WTF/WTF.vcproj:
     19        * JavaScriptCore.xcodeproj/project.pbxproj:
     20        * runtime/InitializeThreading.cpp:
     21        * runtime/NumberPrototype.cpp:
     22        (JSC::numberProtoFuncToExponential):
     23        (JSC::numberProtoFuncToFixed):
     24        (JSC::numberProtoFuncToPrecision):
     25        * runtime/UString.cpp:
     26        (JSC::UString::number):
     27        * wtf/CMakeLists.txt:
     28        * wtf/ThreadingPthreads.cpp:
     29        (WTF::initializeThreading):
     30        * wtf/ThreadingWin.cpp:
     31        (WTF::initializeThreading):
     32        * wtf/dtoa.cpp:
     33        (WTF::dtoa):
     34        * wtf/dtoa.h:
     35        * wtf/dtoa/COPYING: Added.
     36        * wtf/dtoa/LICENSE: Added.
     37        * wtf/dtoa/README: Added.
     38        * wtf/dtoa/bignum-dtoa.cc: Added.
     39        * wtf/dtoa/bignum-dtoa.h: Added.
     40        * wtf/dtoa/bignum.cc: Added.
     41        * wtf/dtoa/bignum.h: Added.
     42        (WTF::double_conversion::Bignum::Times10):
     43        (WTF::double_conversion::Bignum::Equal):
     44        (WTF::double_conversion::Bignum::LessEqual):
     45        (WTF::double_conversion::Bignum::Less):
     46        (WTF::double_conversion::Bignum::PlusEqual):
     47        (WTF::double_conversion::Bignum::PlusLessEqual):
     48        (WTF::double_conversion::Bignum::PlusLess):
     49        (WTF::double_conversion::Bignum::EnsureCapacity):
     50        (WTF::double_conversion::Bignum::BigitLength):
     51        * wtf/dtoa/cached-powers.cc: Added.
     52        * wtf/dtoa/cached-powers.h: Added.
     53        * wtf/dtoa/diy-fp.cc: Added.
     54        * wtf/dtoa/diy-fp.h: Added.
     55        (WTF::double_conversion::DiyFp::DiyFp):
     56        (WTF::double_conversion::DiyFp::Subtract):
     57        (WTF::double_conversion::DiyFp::Minus):
     58        (WTF::double_conversion::DiyFp::Times):
     59        (WTF::double_conversion::DiyFp::Normalize):
     60        (WTF::double_conversion::DiyFp::f):
     61        (WTF::double_conversion::DiyFp::e):
     62        (WTF::double_conversion::DiyFp::set_f):
     63        (WTF::double_conversion::DiyFp::set_e):
     64        * wtf/dtoa/double-conversion.cc: Added.
     65        * wtf/dtoa/double-conversion.h: Added.
     66        (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
     67        (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
     68        * wtf/dtoa/double.h: Added.
     69        (WTF::double_conversion::double_to_uint64):
     70        (WTF::double_conversion::uint64_to_double):
     71        (WTF::double_conversion::Double::Double):
     72        (WTF::double_conversion::Double::AsDiyFp):
     73        (WTF::double_conversion::Double::AsNormalizedDiyFp):
     74        (WTF::double_conversion::Double::AsUint64):
     75        (WTF::double_conversion::Double::NextDouble):
     76        (WTF::double_conversion::Double::Exponent):
     77        (WTF::double_conversion::Double::Significand):
     78        (WTF::double_conversion::Double::IsDenormal):
     79        (WTF::double_conversion::Double::IsSpecial):
     80        (WTF::double_conversion::Double::IsNan):
     81        (WTF::double_conversion::Double::IsInfinite):
     82        (WTF::double_conversion::Double::Sign):
     83        (WTF::double_conversion::Double::UpperBoundary):
     84        (WTF::double_conversion::Double::NormalizedBoundaries):
     85        (WTF::double_conversion::Double::value):
     86        (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
     87        (WTF::double_conversion::Double::Infinity):
     88        (WTF::double_conversion::Double::NaN):
     89        (WTF::double_conversion::Double::DiyFpToUint64):
     90        * wtf/dtoa/fast-dtoa.cc: Added.
     91        * wtf/dtoa/fast-dtoa.h: Added.
     92        * wtf/dtoa/fixed-dtoa.cc: Added.
     93        * wtf/dtoa/fixed-dtoa.h: Added.
     94        * wtf/dtoa/strtod.cc: Added.
     95        * wtf/dtoa/strtod.h: Added.
     96        * wtf/dtoa/utils.h: Added.
     97        (WTF::double_conversion::Max):
     98        (WTF::double_conversion::Min):
     99        (WTF::double_conversion::StrLength):
     100        (WTF::double_conversion::Vector::Vector):
     101        (WTF::double_conversion::Vector::SubVector):
     102        (WTF::double_conversion::Vector::length):
     103        (WTF::double_conversion::Vector::is_empty):
     104        (WTF::double_conversion::Vector::start):
     105        (WTF::double_conversion::Vector::operator[]):
     106        (WTF::double_conversion::Vector::first):
     107        (WTF::double_conversion::Vector::last):
     108        (WTF::double_conversion::StringBuilder::StringBuilder):
     109        (WTF::double_conversion::StringBuilder::~StringBuilder):
     110        (WTF::double_conversion::StringBuilder::size):
     111        (WTF::double_conversion::StringBuilder::position):
     112        (WTF::double_conversion::StringBuilder::Reset):
     113        (WTF::double_conversion::StringBuilder::AddCharacter):
     114        (WTF::double_conversion::StringBuilder::AddString):
     115        (WTF::double_conversion::StringBuilder::AddSubstring):
     116        (WTF::double_conversion::StringBuilder::AddPadding):
     117        (WTF::double_conversion::StringBuilder::Finalize):
     118        (WTF::double_conversion::StringBuilder::is_finalized):
     119        (WTF::double_conversion::BitCast):
     120        * wtf/wtf.pri:
     121
    11222011-09-02  Filip Pizlo  <[email protected]>
    2123
Note: See TracChangeset for help on using the changeset viewer.