Bug 152433

Summary: Replace SpecialFastCase profiles with ResultProfiles.
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, rniwa
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 151793    
Attachments:
Description Flags
proposed patch.
saam: review+
x86_64 benchmark result. none

Mark Lam
Reported 2015-12-18 10:37:09 PST
This is in preparation for upcoming work to enhance the DFG predictions to deal with untyped operands. Would like to land this patch separately first to confirm that it is perf neutral.
Attachments
proposed patch. (30.96 KB, patch)
2015-12-18 10:58 PST, Mark Lam
saam: review+
x86_64 benchmark result. (66.72 KB, text/plain)
2015-12-18 10:59 PST, Mark Lam
no flags
Mark Lam
Comment 1 2015-12-18 10:58:25 PST
Created attachment 267642 [details] proposed patch.
WebKit Commit Bot
Comment 2 2015-12-18 10:59:51 PST
Attachment 267642 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:120: returnValue__ is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4] ERROR: Source/JavaScriptCore/jit/JITMulGenerator.h:51: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITDivGenerator.h:51: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 15 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 3 2015-12-18 10:59:54 PST
Created attachment 267643 [details] x86_64 benchmark result. Perf is neutral as expected. All the "definitely"s are not reproducible on re-runs.
Saam Barati
Comment 4 2015-12-18 13:51:19 PST
Comment on attachment 267642 [details] proposed patch. View in context: https://bugs.webkit.org/attachment.cgi?id=267642&action=review r=me > Source/JavaScriptCore/bytecode/CodeBlock.cpp:4202 > + if (!value.d && value.i64 < 0) maybe you can add a comment about why this works for people who are less familiar with the IEEE754 spec. Or better yet, you can add a function that does this calculation for us.
Mark Lam
Comment 5 2015-12-18 13:58:19 PST
(In reply to comment #4) > Comment on attachment 267642 [details] > proposed patch. > > View in context: > https://bugs.webkit.org/attachment.cgi?id=267642&action=review > > r=me > > > Source/JavaScriptCore/bytecode/CodeBlock.cpp:4202 > > + if (!value.d && value.i64 < 0) > > maybe you can add a comment about why this works for people who are less > familiar with the IEEE754 spec. > Or better yet, you can add a function that does this calculation for us. I just learned about std::signbit(). I'll re-implement this instead as: if (!doubleVal && std::signbit(doubleVal))
Mark Lam
Comment 6 2015-12-18 14:04:36 PST
Thanks for the review. Landed in r194294: <http://trac.webkit.org/r194294>.
Ryosuke Niwa
Comment 7 2016-03-21 15:29:47 PDT
This patch appears to have regressed SunSpider's string-base64 by 12%.
Note You need to log in before you can comment on or make changes to this bug.