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.
Created attachment 267642 [details] proposed patch.
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.
Created attachment 267643 [details] x86_64 benchmark result. Perf is neutral as expected. All the "definitely"s are not reproducible on re-runs.
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.
(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))
Thanks for the review. Landed in r194294: <http://trac.webkit.org/r194294>.
This patch appears to have regressed SunSpider's string-base64 by 12%.