[Webkit-unassigned] [Bug 15950] Add evaluateToInt32 and evaluateToUInt32 methods to ExpressionNode subclasses
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Nov 12 15:05:09 PST 2007
http://bugs.webkit.org/show_bug.cgi?id=15950
------- Comment #3 from eric at webkit.org 2007-11-12 15:05 PDT -------
Huzzah! It's now 0.3% faster overall after ggaren's suggestion of optimizing
ImmediateNumberNode
Sadly although it improves some tests dramatically, it worsens others.
It's not clear to me how to pick up the slack on the slower tests yet. The
slower tests seem to have less to gain from type inferencing, thus they don't
call the faster evaluateTo* calls, and instead to up the evaluate() recursion
tree. I believe part of the slowdown from any of these evaluateTo* tests is
caused by unnecessary flipping back and forth between the type specific
recursive call trees (if you can really term it that). The worse cases of each
of those is when ExpressionNode::evaluateTo* default implementations are
called, but I believe I have removed all of the important instances of those
(at least none are appearing in the sample). Those are slow due to turning one
virtual call into two (thus doubling the stack impact), again, I think all such
instances are gone, but I'm about to add some ASSERTS to check.
TEST COMPARISON FROM TO
DETAILS
=============================================================================
** TOTAL **: 0.3% faster 4421.6ms +/- 0.1% 4406.2ms +/- 0.1%
significant
=============================================================================
3d: - 502.8ms +/- 0.3% 503.0ms +/- 0.2%
cube: ?? 166.0ms +/- 0.5% 167.0ms +/- 0.5%
not conclusive: might be 0.6% *slower*
morph: 0.7% faster 163.2ms +/- 0.3% 162.0ms +/- 0.9%
significant
raytrace: ?? 173.6ms +/- 0.4% 174.0ms +/- 0.0%
not conclusive: might be 0.2% *slower*
access: 1.3% *slower* 708.6ms +/- 0.1% 717.6ms +/- 0.3%
significant
binary-trees: 0.7% *slower* 108.2ms +/- 0.5% 109.0ms +/- 0.8%
significant
fannkuch: 3.7% *slower* 336.2ms +/- 0.2% 348.8ms +/- 0.2%
significant
nbody: 2.0% faster 185.6ms +/- 0.4% 181.8ms +/- 0.3%
significant
nsieve: 0.8% faster 78.6ms +/- 0.9% 78.0ms +/- 0.0%
significant
bitops: 3.4% faster 644.4ms +/- 0.2% 622.6ms +/- 0.3%
significant
3bit-bits-in-byte: 5.5% faster 122.6ms +/- 1.4% 115.8ms +/- 0.9%
significant
bits-in-byte: 1.7% faster 160.2ms +/- 0.3% 157.4ms +/- 0.4%
significant
bitwise-and: 0.7% faster 214.0ms +/- 0.0% 212.6ms +/- 0.3%
significant
nsieve-bits: 7.3% faster 147.6ms +/- 0.5% 136.8ms +/- 0.8%
significant
controlflow: ?? 155.6ms +/- 0.4% 156.4ms +/- 0.4%
not conclusive: might be 0.5% *slower*
recursive: ?? 155.6ms +/- 0.4% 156.4ms +/- 0.4%
not conclusive: might be 0.5% *slower*
crypto: 5.1% faster 364.2ms +/- 0.3% 345.6ms +/- 0.6%
significant
aes: - 97.8ms +/- 0.6% 97.8ms +/- 0.6%
md5: 7.0% faster 134.0ms +/- 1.1% 124.6ms +/- 1.1%
significant
sha1: 6.9% faster 132.4ms +/- 0.8% 123.2ms +/- 0.8%
significant
date: 0.7% *slower* 362.2ms +/- 0.4% 364.6ms +/- 0.3%
significant
format-tofte: ?? 160.8ms +/- 0.6% 161.8ms +/- 0.3%
not conclusive: might be 0.6% *slower*
format-xparb: 0.7% *slower* 201.4ms +/- 0.6% 202.8ms +/- 0.7%
significant
math: 1.8% *slower* 514.4ms +/- 0.1% 523.8ms +/- 0.3%
significant
cordic: 4.8% *slower* 214.8ms +/- 0.5% 225.2ms +/- 0.5%
significant
partial-sums: 1.1% faster 176.6ms +/- 0.4% 174.6ms +/- 0.4%
significant
spectral-norm: 0.8% *slower* 123.0ms +/- 0.0% 124.0ms +/- 0.7%
significant
regexp: ?? 297.4ms +/- 0.5% 298.6ms +/- 0.8%
not conclusive: might be 0.4% *slower*
dna: ?? 297.4ms +/- 0.5% 298.6ms +/- 0.8%
not conclusive: might be 0.4% *slower*
string: ?? 872.0ms +/- 0.3% 874.0ms +/- 0.1%
not conclusive: might be 0.2% *slower*
base64: 1.3% *slower* 121.4ms +/- 0.6% 123.0ms +/- 0.0%
significant
fasta: 1.5% *slower* 208.6ms +/- 0.3% 211.8ms +/- 0.5%
significant
tagcloud: ?? 198.0ms +/- 0.9% 199.4ms +/- 0.7%
not conclusive: might be 0.7% *slower*
unpack-code: 1.8% faster 204.4ms +/- 0.3% 200.8ms +/- 0.3%
significant
validate-input: - 139.6ms +/- 0.8% 139.0ms +/- 1.3%
--
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list