This is an archive of the discontinued LLVM Phabricator instance.

[openmp][amdgpu] Remove dependencies clause [llvm,clang,lld] from project
ClosedPublic

Authored by ronlieb on Sep 8 2021, 7:30 PM.

Details

Summary

There are other projects that can affect build of opnemp, libcxx for example.
Desire to have each commit trigger a buildbot.

Diff Detail

Event Timeline

ronlieb created this revision.Sep 8 2021, 7:30 PM
ronlieb requested review of this revision.Sep 8 2021, 7:30 PM

I don't understand how does this configuration depend on libcxx, or any other project for that matter?

JonChesterfield added a comment.EditedSep 9 2021, 1:30 AM

Shared cmake iiuc. Does dropping the depend list mean build on any change to anything? In favour if so

JonChesterfield accepted this revision.Sep 9 2021, 2:08 AM

Desire to have each commit trigger a buildbot.

This revision is now accepted and ready to land.Sep 9 2021, 2:08 AM

i think the original intent was to limit what triggered the buildbot to just llvm, lld, clang, and openmp projects.
Yesterday we observed that changes specific to libcxx did not trigger a buildbot , rather it just rolled into a subsequent commit that did trigger a buildbot which failed.
Our desire is to fire a bot per commit for clarity. The current way we are structuring the depends creates a bit of confusion as to what patch may have caused a failure.

FYI: The patch that broke us, and Kruse's bot as well, is
407e07aa67ab [runtimes] Set more paths when building runtimes standalone
which was later reverted by Leonard Chan.

FYI: The revert also did not trigger a buildbot.

Bit of history:
The clause depends_on_projects was suggested in review of the original patch to implement a builder for amdgpu.
we added that, and tried to model ours closely to MKruse's "openmp-offload-cuda-project" and "openmp-offload-cuda-runtime".
Note: Neither of the cuda builders for openmp specify depends_on_projects

Meinersbur added a comment.EditedSep 9 2021, 12:30 PM

I think originally, depends_on_projects existed before LLVM was a monorepository so these were the projects to be checked out. Since moving to the monorepository, depends_on_projects is used for the LLVM_ENABLE_PROJECTS argument, as well as a repository filter.

The getOpenMPCMakeBuildFactory by default uses llvm, clang and openmp as a minimum. Thus removing depends_on_projects only has an effect that lld is not considered anymore. The original patch D106928 uses LLVM_ENABLE_PROJECTS in extraCmakeArgs, which is in conflict the same parameter getOpenMPCMakeBuildFactory set as well. Therefore, I suggested to use depends_on_projects instead. Because it seems they want to use LLVM's own lld and therefore need to enable it. Somehow D107716 removed openmp as a dependent project, which would have cause such that OpenMP changes does not trigger a rebuild.

The CUDA OpenMP buildbots use a pre-installed lld instead (LLVM_ENABLE_LLD), no need to add lld as a dependent project.

rG407e07aa67ab56c92cdec1fdbf6b121afbceddaf changed the runtimes top-level directory that does not belong to any subproject, which is why it did not trigger a rebuild. If you goal is to trigger a build on any commit, this patch doesn't do that. Also consider that if it actually did that, it would also trigger a rebuild on any commit to the repository, such as flang, mlir, lldb, ...