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@apple.com> wrote:
I don’t know.
Sent from my iPhone
On Sep 17, 2018, at 7:49 AM, Filip Pizlo <fpizlo@apple.com> wrote:
On Sep 16, 2018, at 8:48 PM, Darin Adler <darin@apple.com> wrote:
On Sep 16, 2018, at 5:59 PM, Filip Pizlo <fpizlo@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