[webkit-reviews] review denied: [Bug 195928] Compress CodeOrigin into a single word in the common case : [Attachment 365215] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Mar 19 15:18:34 PDT 2019
Saam Barati <sbarati at apple.com> has denied Robin Morisset
<rmorisset at apple.com>'s request for review:
Bug 195928: Compress CodeOrigin into a single word in the common case
https://bugs.webkit.org/show_bug.cgi?id=195928
Attachment 365215: Patch
https://bugs.webkit.org/attachment.cgi?id=365215&action=review
--- Comment #16 from Saam Barati <sbarati at apple.com> ---
Comment on attachment 365215
--> https://bugs.webkit.org/attachment.cgi?id=365215
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=365215&action=review
> Source/JavaScriptCore/ChangeLog:8
> + The trick is that pointers only take 45 bits on x86_64 in practice,
and even less on ARM64.
Don't you mean 48?
> Source/JavaScriptCore/bytecode/CodeOrigin.h:78
> + if (UNLIKELY(this->m_compositeValue & 1))
Can we make the value "1" here some constant?
Or perhaps have a getter saying if we're out of line?
> Source/JavaScriptCore/bytecode/CodeOrigin.h:79
> + delete bitwise_cast<OutOfLineCodeOrigin*>(m_compositeValue &
s_maskCompositeValueForPointer);
can we have a getter called outOfLineCodeOrigin or something?
Then this could be:
if (isOutOfLine()) delete outOfLineCodeOrigin()
> Source/JavaScriptCore/bytecode/CodeOrigin.h:124
> + return !(m_compositeValue & 2);
can we give "2" a name?
> Source/JavaScriptCore/bytecode/CodeOrigin.h:201
> + static const uintptr_t s_maskCompositeValueForPointer =
0x0000fffffffffff8;
This seems wrong. It doesn't line up with s_freeBitsAtTop
> Source/JavaScriptCore/bytecode/CodeOrigin.h:237
> + return reinterpret_cast<uintptr_t>(inlineCallFrame) | 2;
style nit: bitwise_cast instead of reinterpret_cast here and elsewhere
> Source/JavaScriptCore/bytecode/CodeOrigin.h:245
> + ASSERT(!(encodedBytecodeIndex &
reinterpret_cast<uintptr_t>(inlineCallFrame)));
can we also assert this in a stronger way with some mask for the max bytecode
index bits?
> Source/JavaScriptCore/bytecode/CodeOrigin.h:250
> +#if CPU(X86_64) || CPU(ARM64)
You really want:
... || (CPU(ARM64) && ADDRESS(64))
Not just arm64
> Source/JavaScriptCore/bytecode/CodeOrigin.h:272
> +#if CPU(X86_64) || CPU(ARM64)
instead of using this everywhere, can we just define some bit that stands for
this type of memory model?
More information about the webkit-reviews
mailing list