Changeset 206392 in webkit for trunk/Source/JavaScriptCore/ChangeLog
- Timestamp:
- Sep 26, 2016, 2:11:31 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r206386 r206392 1 2016-09-26 Benjamin Poulain <[email protected]> 2 3 [JSC] Shrink the Math inline caches some more 4 https://bugs.webkit.org/show_bug.cgi?id=162485 5 6 Reviewed by Saam Barati. 7 8 This patch applies some lessons learnt from op_negate 9 to shrink the generated asm of the previous 3 inline 10 caches. 11 12 In order of importance: 13 -We do not need to pass the pointer to ArithProfile 14 on the slow path. We can just get the profile out 15 of the Math IC. 16 This saves us from materializing a 64bits value 17 in a register before the call on the slow path. 18 -We can remove a bunch of mov by setting up the registers 19 in the way the slow path needs them. 20 The slow path makes a function calls with the input 21 as second and third arguments, and return the result in 22 the "return register". By using those as target when 23 loading/storing from the stack, we remove 3 mov per slow path. 24 -When performing integer add, we can set the result directly in 25 the output register if that does not trashes one of the input 26 register. This removes one mov per integer add. 27 28 The inline cache average sizes on Sunspider change as follow: 29 -Adds: 147.573099->131.555556 (~10%) 30 -Muls: 186.882353->170.991597 (~8%) 31 -Subs: 139.127907->121.523256 (~12%) 32 33 * jit/JIT.h: 34 * jit/JITAddGenerator.cpp: 35 (JSC::JITAddGenerator::generateInline): 36 (JSC::JITAddGenerator::generateFastPath): 37 * jit/JITArithmetic.cpp: 38 (JSC::JIT::emitMathICFast): 39 (JSC::JIT::emitMathICSlow): 40 * jit/JITInlines.h: 41 (JSC::JIT::callOperation): Deleted. 42 * jit/JITOperations.cpp: 43 * jit/JITOperations.h: 44 1 45 2016-09-26 Mark Lam <[email protected]> 2 46
Note:
See TracChangeset
for help on using the changeset viewer.