[webkit-dev] Offline Assembler build step always computes hashes even when nothing changes

Filip Pizlo fpizlo at apple.com
Mon Sep 17 12:31:56 PDT 2018


> On Sep 17, 2018, at 10:36 AM, Keith Miller <keith_miller at apple.com> wrote:
> 
> IIRC, it spends a bunch of time in the offline assembler ruby scripts. AFAIK, those scripts only depend on the LowLevelInterpreter*.asm files.

We’re talking about the offset extractor binary, which depends on most of JSC’s and WTF’s headers, and the asm.rb build, which depends on:

- all of the offlineasm ruby scripts
- all of the *.asm files
- everything that the offset extractor binary depended on (so most of JSC’s and WTF’s headers).

> So we should only need to run it if those files have changed. Or, for the assembly generation half, if there is also a new object offsets binary (from LLIntOffsetsExtractor.cpp).

We’re talking about the compiling of the offset extractor binary and the assembly generation half.

-Filip

> 
> Cheers,
> Keith
> 
>> On Sep 17, 2018, at 10:21 AM, Filip Pizlo <fpizlo at apple.com <mailto:fpizlo at apple.com>> wrote:
>> 
>> Sorry, I should have asked: does it even rebuild when you change nothing?
>> 
>> That llint step really does depend on most headers in WTF and JSC, so if you change any of them then I would expect a rebuild of that file. It may be that the right solution is to make that step faster and to make it possible to run it in parallel to other steps. 
>> 
>> -Filip
>> 
>> On Sep 17, 2018, at 10:01 AM, Darin Adler <darin at apple.com <mailto:darin at apple.com>> wrote:
>> 
>>> I don’t know. 
>>> 
>>> Sent from my iPhone
>>> 
>>> On Sep 17, 2018, at 7:49 AM, Filip Pizlo <fpizlo at apple.com <mailto:fpizlo at apple.com>> wrote:
>>> 
>>>> 
>>>> 
>>>> On Sep 16, 2018, at 8:48 PM, Darin Adler <darin at apple.com <mailto:darin at apple.com>> wrote:
>>>> 
>>>>>> On Sep 16, 2018, at 5:59 PM, Filip Pizlo <fpizlo at apple.com <mailto:fpizlo at apple.com>> wrote:
>>>>>> 
>>>>>> Which offline assembler build step are you referring to?
>>>>> 
>>>>> The one that is the “Offline Assembler” target in Xcode, which runs this command:
>>>>> 
>>>>> ruby JavaScriptCore/offlineasm/asm.rb JavaScriptCore/llint/LowLevelInterpreter.asm "${BUILT_PRODUCTS_DIR}/JSCLLIntOffsetsExtractor” LLIntAssembly.h
>>>>> 
>>>>> For a “nothing rebuild” of all of WebKit and all of Safari for iOS on my iMac, it takes about 10 seconds out of a 30 second total “build" time.
>>>>> 
>>>>> Looking more carefully at the build log now, it seems that recompiling LLIntOffsetExtractor.cpp is also taking multiple seconds. Not executing generate_offset_extractor.rb, but compiling the output.
>>>> 
>>>> Does every build that you do rebuild LLIntOffsetExtractor.cpp?  Including a clean build?
>>>> 
>>>> -Filip
>>>> 
>>>>> 
>>>>> — Darin
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20180917/26872d58/attachment.html>


More information about the webkit-dev mailing list