[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