[Webkit-unassigned] [Bug 145366] FTL is not working on Windows.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 19 10:41:33 PDT 2015


https://bugs.webkit.org/show_bug.cgi?id=145366

--- Comment #63 from Mark Lam <mark.lam at apple.com> ---
Comment on attachment 263482
  --> https://bugs.webkit.org/attachment.cgi?id=263482
Patch

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

> Source/JavaScriptCore/CMakeLists.txt:952
> +            llvm/LLVMAPI.cpp

Since this file is common to WIN32 and other ports, let's keep it in the common list above.

> Source/JavaScriptCore/CMakeLists.txt:958
> +            llvm/LLVMAPI.cpp

Ditto.

> Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:722
> +#if CPU(X86_64)
> +    void loadDouble128(ImplicitAddress address, FPRegisterID src)
> +    {
> +        ASSERT(isSSE2Present());
> +        m_assembler.movups_mr(src, address.offset, address.base);
> +    }
> +#endif

Why is this added?  I don't see it used anywhere in this patch.

> Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:747
> +#if CPU(X86_64)
> +    void storeDouble128(FPRegisterID src, ImplicitAddress address)
> +    {
> +        ASSERT(isSSE2Present());
> +        m_assembler.movups_rm(src, address.offset, address.base);
> +    }
> +#endif

Why is this added?  I don't see it used anywhere in this patch.

> Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:197
> +    Call callJIT()
> +    {
> +        DataLabelPtr label = moveWithPatch(TrustedImmPtr(0), scratchRegister);
> +        Call result = Call(m_assembler.call(scratchRegister), Call::Linkable);
> +
> +        ASSERT_UNUSED(label, differenceBetween(label, result) == REPTACH_OFFSET_CALL_R11);
> +        return result;
> +    }

Why is this added?  I don't see it used anywhere in this patch.

> Source/JavaScriptCore/assembler/X86Assembler.h:1848
> +    void movups_rm(XMMRegisterID src, int offset, RegisterID base)
> +    {
> +        m_formatter.twoByteOp(OP2_MOVSD_WsdVsd, (RegisterID)src, base, offset);
> +    }
> +
> +    void movups_mr(XMMRegisterID src, int offset, RegisterID base)
> +    {
> +        m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, (RegisterID)src, base, offset);
> +    }

Are these really needed since their only caller in this patch does not appear to be called by anyone.

> Source/JavaScriptCore/ftl/FTLCapabilities.cpp:213
> +    case ArithPow:
> +#if OS(WINDOWS)
> +        // LLVM does not support powi on Windows.
> +        if (node->child2().useKind() == Int32Use)
> +            return CannotCompile;
> +#endif
> +        break;

Is this still necessary?  In compileArithPow() below, you seem to have implemented support for (m_node->child2().useKind() == Int32Use) already (line 1843).  Or am I misreading it?

> Source/JavaScriptCore/ftl/FTLCompile.cpp:680
> +            auto iter = recordMap.find(call.stackmapID());
> +            if (iter != recordMap.end()) {
> +                for (unsigned i = 0; i < iter->value.size(); ++i) {
> +                    StackMaps::Record& record = iter->value[i];
> +                    RegisterSet usedRegisters = usedRegistersFor(record);
> +
> +                    dataLog("Used registers = ", usedRegisters, "\n");
> +                }
> +            }

I think this code will clash with https://bugs.webkit.org/show_bug.cgi?id=149970 (which is fixing a bug in this area).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20151019/8a2a2126/attachment-0001.html>


More information about the webkit-unassigned mailing list