[webkit-reviews] review granted: [Bug 204536] Use LLInt profiling to rule out generating an IC for get_by_val : [Attachment 384216] patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Nov 22 17:49:40 PST 2019

Yusuke Suzuki <ysuzuki at apple.com> has granted Saam Barati <sbarati at apple.com>'s
request for review:
Bug 204536: Use LLInt profiling to rule out generating an IC for get_by_val

Attachment 384216: patch


--- Comment #2 from Yusuke Suzuki <ysuzuki at apple.com> ---
Comment on attachment 384216
  --> https://bugs.webkit.org/attachment.cgi?id=384216

View in context: https://bugs.webkit.org/attachment.cgi?id=384216&action=review


> Source/JavaScriptCore/bytecode/BytecodeList.rb:537
> +	   seenIdentifiers: uint64_t, # Top 8 bits are the seen identifier
count. Lower 56 bits are a bloom filter of seen UniquedStringImpl*.

I recommend introducing a class like GetByValHistory etc. not to use uint64_t

> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:97
> +    if (m_fastGetByVals.contains(currentInstruction)) {

You can count # of slowcase jumps by using `iter` (see
JIT::linkAllSlowCasesForBytecodeIndex code, which iterates all slowcase jumps),
and we can omit this code generation when slowcase count is 0, instead of
tracking it by m_fastGetByVals.

More information about the webkit-reviews mailing list