[webkit-dev] SH4, MIPS, and legacy-ARM assemblers in JavaScriptCore

Filip Pizlo fpizlo at apple.com
Fri Jun 22 13:07:23 PDT 2012


On Jun 22, 2012, at 12:43 PM, Zoltan Herczeg <zherczeg at webkit.org> wrote:

> True, most of the changes are trivial. The problem is that the changes are
> usually appear without prior notice. A patch which depends on new macro
> assembler instructions, will obviously break the build, and we are not
> necessary there to fix it immediately. I think most improvements require
> time to finish, so these new instructions are known several days before
> the patch is submitted to the bugzilla. If we would know about these new
> instructions before the patch appears, we could prepare the macro
> assembler to handle them. Would it be possible to share us these new
> requirements before such patches appear?

I don't want adding instructions to SH4, MIPS, and legacy ARM to be a blocker for JSC work.

-F


> 
> Regards,
> Zoltan
> 
>> That would be the ifdef hell we currently deal with.
>> 
>> One option (that would keep everything building till appropriate people
>> have fixed whatever needs to be fixed) would simply be to disable the JIT
>> for effected platforms everytime something changes that is too difficult
>> for us to blindly fix.  Then people with appropriate hardware and
>> toolchains could make the (probably trivial) changes required to bring
>> them up again.
>> 
>> --Oliver
>> 
>> On Jun 22, 2012, at 11:20 AM, Maciej Stachowiak wrote:
>> 
>>> 
>>> Is there a way to reduce these costs other than deleting the
>>> slower-maintained JITs? For example, could we temporarily freeze the JIT
>>> (perhaps the whole JSC engine somehow) at old versions somehow for
>>> architectures that may take time to catch up?
>>> 
>>> Regards,
>>> Maciej
>>> 
>>> On Jun 22, 2012, at 10:52 AM, Oliver Hunt <oliver at apple.com> wrote:
>>> 
>>>> The problem is that as we make changes we end up breaking the SH4,
>>>> MIPS, ARMvOld builds, which we are ostensibly not allowed to do, and so
>>>> have to spend significant amounts of time trying to ensure that the
>>>> builds don't break/start failing horribly, and then having committed
>>>> the patch[es] we have to spend multiple build bot cycles discovering
>>>> all the cases that we missed.
>>>> 
>>>> This consumes a lot of time that would be better spent working on the
>>>> higher level portions of the JIT, that benefit all platforms.
>>>> 
>>>> --Oliver
>>>> 
>>>> On Jun 21, 2012, at 11:44 PM, Zoltan Herczeg wrote:
>>>> 
>>>>> Hi Filip,
>>>>> 
>>>>> we (Gabor Loki and me) are the maintainers of the traditional ARM
>>>>> port,
>>>>> and we are willing to fix all issues. Just let us know what we need to
>>>>> do.
>>>>> You can assign the necessary bug reports to us and we are available in
>>>>> the
>>>>> #squirrelfish (or #webkit) channel as well.
>>>>> 
>>>>> Regards,
>>>>> Zoltan
>>>>> 
>>>>>> Hi all,
>>>>>> 
>>>>>> We are actively trying to improve the WebKit JavaScript engine
>>>>>> (JavaScriptCore), with new debugging, profiling, memory efficiency,
>>>>>> and
>>>>>> performance features.  Because JavaScriptCore is a JIT-based engine,
>>>>>> this
>>>>>> inevitably means doing JIT work, which in turn includes adding new
>>>>>> instructions to the JIT assemblers and changing the API between the
>>>>>> assemblers and the JIT.
>>>>>> 
>>>>>> Currently, the maintenance situation in the assembler layer is not
>>>>>> great.
>>>>>> We have three well-supported assemblers, X86-32, X86-64, and ARMv7.
>>>>>> Then
>>>>>> we have three assemblers that appear to be on life support: legacy
>>>>>> (non-THUMB2, pre-v7) ARM, SH4, and MIPS.  It is increasingly painful
>>>>>> to
>>>>>> maintain these three barely-supported assemblers.  None of these
>>>>>> assemblers has been updated to support the new JIT or interpreter
>>>>>> infrastructure, and there appears to be no ongoing effort to do so.
>>>>>> That
>>>>>> means that for progress to be made on X86 and ARMv7, we need to
>>>>>> increasingly scatter #if ENABLE(...) noise throughout the system to
>>>>>> keep
>>>>>> those other assemblers building.  Neither the active JavaScriptCore
>>>>>> contributors, nor those running the bots for those hardware
>>>>>> platforms,
>>>>>> appear to have much interest in maintaining those assemblers, other
>>>>>> than
>>>>>> the occasional build fix.
>>>>>> 
>>>>>> This is not a good situation to be in.
>>>>>> 
>>>>>> So, I am curious: is anyone shipping with the legacy ARM assembler,
>>>>>> the
>>>>>> MIPS assembler, or the SH4 assembler?
>>>>>> 
>>>>>> As a secondary question, if you are shipping the legacy ARM
>>>>>> assembler, are
>>>>>> you doing so because you have legacy ARM hardware or because you have
>>>>>> not
>>>>>> had the chance to switch to the new ARM assembler in your codebase?
>>>>>> 
>>>>>> -Filip
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> webkit-dev mailing list
>>>>>> webkit-dev at lists.webkit.org
>>>>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> webkit-dev mailing list
>>>>> webkit-dev at lists.webkit.org
>>>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>>> 
>>>> _______________________________________________
>>>> webkit-dev mailing list
>>>> webkit-dev at lists.webkit.org
>>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>> 
>> 
>> 
> 
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev



More information about the webkit-dev mailing list