Christopher,

Let me add a little to Phil’s comments.

As Phil says, you shouldn’t expect much if any performance gain going from the 
C LOOP to one of the assembler back ends if you also don’t plan on enabling 
JITs.

The architectures / OS combinations that work with the LLInt is nearly the same 
as what is supported by the baseline JIT.  Basically X86 (32 & 64), ARM 
(traditional, thumb2 and 64) and to a lessor degree MIPS and SH4.  These work 
as appropriate on Mac OS X, Windows, Linux, iOS and a couple other OSes.  If 
you have a processor and/or OS, or combination of the two that is not 
supported, it will likely require work in the offline assembler and / or LLInt 
code for it to work.  The effort is probably won’t payoff unless you plan on 
eventually supporting one or more of the JITs.

What processor(s) and OS(es) are you targeting?

- Michael

On Sep 5, 2014, at 3:47 PM, Filip Pizlo <fpi...@apple.com> wrote:

> 
> 
> On Sep 5, 2014, at 3:23 PM, "Vienneau, Christopher" <cvienn...@ea.com> wrote:
> 
>> Hello,
>>  
>> I’m looking for some information about the Java script interpreter ASM 
>> backend, aka OfflineAsm.  
>>  
>> First a bit of background information; the code I have been using is about a 
>> year old, on several platforms we don’t run with JIT and won’t be able to 
>> enable it.  This means that we’ve been using the LLINT_C_LOOP path in these 
>> cases.  It was considered that the ASM backend may be able to improve 
>> performance in this case, currently I’m taking a look at how things are done 
>> in a more recent snapshot of the trunk to be sure this development effort 
>> will be going in the right direction on what is done there.  As a side note 
>> I see that LLINT_C_LOOP has been replaced with #if !ENABLE(JIT) which I 
>> guess is pretty much how it has always behaved.
>>  
>> So my questions are:
>> 1)      How is the ASM backend intended to be used?
> 
> As a bottom tier for a mixed mode execution VM. We compile to assembly to be 
> able to get an ABI that is compatible with our JITs and to be able to do OSR. 
> 
>> Is there a doc that covers this?
> 
> No. 
> 
>> 2)      Can I essentially move from the “C LOOP” to neither “C LOOP” nor 
>> “JIT”? or is the ASM backend dependent on JIT itself?  
> 
> You should be able to use the asm backend without the JIT. We do this if we 
> compiled with the JIT but we failed to allocate writable+executable memory at 
> run time. With some hacks you could probably compile webkit to always do 
> this. 
> 
>> It appears this would be handled by the defines in 
>> Source\JavaScriptCore\llint\LLIntOfflineAsmConfig.h
>> 3)      If JIT is expected to use the ASM backend is there a way this can be 
>> worked around?
> 
> The JIT doesn't use offlineasm.
> 
>> 4)      Should I actually expect a performance increase compared to the “C 
>> LOOP”?
> 
> Not really, unless your C compiler sucks. 
> 
>> 5)      Are there any other suggestions on how to improve performance of 
>> Java script code in a non-JIT port?
> 
> Not really but contributions are welcome. 
> 
>>  
>> Thanks for any feedback
>>  
>> Chris Vienneau
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to