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

Filip Pizlo fpizlo at apple.com
Sun Sep 16 17:59:12 PDT 2018



> On Sep 16, 2018, at 4:03 PM, Darin Adler <darin at apple.com> wrote:
> 
> I noticed that the “Offline Assembler” build step was taking between 5 and 30 seconds every time I build. Really stands out in incremental builds. I realized that this step does not do any dependency analysis. Every time, it builds a hash of the input to see if it needs to recompute the assembly.

Yup, that’s quite intentional. 

> 
> That’s probably not the best pattern; normally we like to use file modification dates to avoid doing any work when files haven’t changed.

I don’t totally remember the details, but it’s not that simple. I vaguely recall a previous attempt to fix this that had to be reverted because it resulted in too many broken builds.

Which offline assembler build step are you referring to?  There is more than one. I think it’s the step that generates the LLInt using the offset extractor binary as input.

Note that one problem is that this step is slower than it could be. We sometimes regress it a lot and then make it faster again. Maybe we regressed it recently. 

> 
> Is there someone who can help me fix this so we get faster incremental builds?

Sounds like Michael volunteered.

I would favor a sure-to-be-sound fix of just making that phase run faster, possibly by reducing the number of options that the llint uses. That might get you the outcome you want (faster builds) without the risk of bad builds. 

-Filip

> 
> — Darin
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev


More information about the webkit-dev mailing list