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