[webkit-reviews] review granted: [Bug 123271] Fix broken C Loop LLINT build : [Attachment 215068] patch 2: with comments
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Oct 24 08:57:48 PDT 2013
Michael Saboff <msaboff at apple.com> has granted Mark Lam <mark.lam at apple.com>'s
request for review:
Bug 123271: Fix broken C Loop LLINT build
https://bugs.webkit.org/show_bug.cgi?id=123271
Attachment 215068: patch 2: with comments
https://bugs.webkit.org/attachment.cgi?id=215068&action=review
------- Additional Comments from Michael Saboff <msaboff at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=215068&action=review
r=me with typo fix.
> Source/JavaScriptCore/ChangeLog:23
> + - The payByVal() macro reifies a slow path which is never taken in
one case.
I think you mean *putByVal()*.
> Source/JavaScriptCore/ChangeLog:40
> + * bytecode/CodeBlock.cpp:
> + (JSC::CodeBlock::printGetByIdCacheStatus): Added an UNUSED_PARAM().
> + (JSC::CodeBlock::dumpBytecode): Added #if ENABLE(JIT) to JIT only
code.
> + * bytecode/GetByIdStatus.cpp:
> + (JSC::GetByIdStatus::computeFor): Added an UNUSED_PARAM().
> + * bytecode/PutByIdStatus.cpp:
> + (JSC::PutByIdStatus::computeFor): Added an UNUSED_PARAM().
> + * bytecode/StructureStubInfo.h:
> + - Added a stub StubInfoMap for non-JIT builds. StubInfoMap is still
used
> + in function prototypes even when !ENABLE(JIT). Rather that adding
#if's
> + in many places, we just provide a stub/placeholder implementation
that
> + is unused but keeps the compiler happy.
> + * jit/JITOperations.h: Added #if ENABLE(JIT).
> + * llint/LowLevelInterpreter32_64.asm:
> + * llint/LowLevelInterpreter64.asm:
> + - The payByVal() macro reifies a slow path which is never taken in
one case.
> + This translates into a label that is never used in the C Loop
LLINT. The
> + C++ compiler doesn't like unused labels. So, we fix this by adding
a
> + cloopUnusedLabel offline asm instruction that synthesizes the
following:
> +
> + if (false) goto unusedLabel;
> +
> + This keeps the C++ compiler happy without changing code behavior.
> + * offlineasm/cloop.rb: Implementing cloopUnusedLabel.
> + * offlineasm/instructions.rb: Declaring cloopUnusedLabel.
> + * runtime/Executable.cpp:
> + (JSC::setupJIT): Added UNUSED_PARAM()s.
> + (JSC::ScriptExecutable::prepareForExecutionImpl):
> + - run-javascriptcore-tests have phases that forces the LLINT to be
off
> + which in turn asserts that the JIT is enabled. With the C Loop
LLINT,
> + this combination is illegal. So, we override the setup code here
to
> + always use the LLINT if !ENABLE(JIT) regardless of what options
are
> + passed in.
It didn't need to be this verbose.
More information about the webkit-reviews
mailing list