<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 14, 2021 at 6:36 PM Stephen Neuendorffer via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">This flow is being used successfully by both npcomp and circt, which are llvm incubator projects.  You should be able to leverage/build off of the github actions flows that they define.  see <a href="https://github.com/llvm/circt" target="_blank">https://github.com/llvm/circt</a> and <a href="https://github.com/llvm/mlir-npcomp" target="_blank">https://github.com/llvm/mlir-npcomp</a></div></blockquote><div><br></div><div>Is it the same flow?</div><div>As far as I can tell you're not getting a build directory in order to do an incremental rebuild with modified sources, but instead getting the build artifacts in order to build a downstream project entirely.</div><div><br></div><div>The only way I can see incremental compilation to work would be to get the entire source tree from the cache alongside with the build tree, and then run `git fetch && git checkout <rev>`. This would mark only the source file changed by git during the checkout.</div><div>Otherwise a fresh `git clone` will have the source files modified data as the time of the checkout, so more recent than the cached build dir.</div><div><br></div><div>-- </div><div>Mehdi</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Steve</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 14, 2021 at 12:59 PM Francesco Bertolaccini via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On 14/04/2021 21:18, David Blaikie wrote:<br>
> Sounds like something's going wrong for sure. How are you measuring<br>
> the time? (how much time is it taking) and what are you testing by<br>
> "partial recompilation"? Touching an ADT .h file is likely to<br>
> recompile nearly everything so might not be much better than a clean<br>
> build - but touching a .cpp file (especially a .cpp file for a single<br>
> tool, rather than a library) might be quite quick. So try timing a<br>
> full clean build (ninja -t clean, ninja clang) and then incrementally<br>
> touching just a .cpp file (eg: clang/tools/driver/driver.cpp  ) and<br>
> see how they compare<br>
<br>
I currently do not have sufficient resources to compile LLVM on my<br>
personal machine, so I am (ab?)using GitHub Actions. My workflow is<br>
setup such that the build artifacts are cached and restored on every<br>
worflow run. The time is measured automatically by GitHub itself, and is<br>
around ~2h for each run, whether from scratch or starting from the cache.<br>
<br>
I don't generally edit .h files directly, unless they are generated by<br>
modifying TableGen files.<br>
<br>
The fact that someone else has successfully been able to do incremental<br>
builds _does_ make it seem like it's a configuration issue on my part.<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>