-
Notifications
You must be signed in to change notification settings - Fork 13.4k
PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. #60262
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
73bda63
to
33808b0
Compare
@bors: r+ 👍 |
📌 Commit 33808b0 has been approved by |
…ss, r=alexcrichton PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. From the tests comment section: ``` # This test makes sure that PGO profiling data leads to cold functions being # marked as `cold` and hot functions with `inlinehint`. # The test program contains an `if` were actual execution only ever takes the # `else` branch. Accordingly, we expect the function that is never called to # be marked as cold. ``` r? @alexcrichton
Failed in #60291 (comment), @bors r- |
It looks like the If I just call @Mark-Simulacrum, can you provide any insight here? Maybe we should not try to add the LLVM |
Adding something like |
…sed by the compiler during optimizations.
33808b0
to
4dc3b99
Compare
The intent of the PATH= was that otherwise we end up with stage0/bin in the path which causes these binaries to fail to run due to finding the libLLVM-*.so in that directory. In hindsight, I'm not sure how we were able to find llvm-objdump in the commit that added this (0467943). Maybe there's some defaults involved? |
@Mark-Simulacrum, that test is only executed on a single Linux x86_64 because of the I'll look into an alternative solution for accessing LLVM tools from |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
b43f1be
to
c95f5e3
Compare
I've changed things to not add LLVM's bin directory to the PATH and instead call tools directly from @bors r=alexcrichton |
📌 Commit c95f5e3 has been approved by |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
OK, is suspect this error is because I removed LLD from the PATH. The |
Adding locally built LLD to the PATH of |
📌 Commit 7acead5 has been approved by |
⌛ Testing commit 7acead5 with merge 2265bc718e0aec7ba144f617823f9f3db9571113... |
💔 Test failed - checks-travis |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Seems like macOS doesn't have the |
Try again with |
📌 Commit 7c4cc01 has been approved by |
@bors p=1 |
…richton PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. From the tests comment section: ``` # This test makes sure that PGO profiling data leads to cold functions being # marked as `cold` and hot functions with `inlinehint`. # The test program contains an `if` were actual execution only ever takes the # `else` branch. Accordingly, we expect the function that is never called to # be marked as cold. ``` r? @alexcrichton
☀️ Test successful - checks-travis, status-appveyor |
Nice, it landed! @Mark-Simulacrum, do you know if there is any machinery left for doing the Also, could you take a look if the solution implemented here is OK with you? |
It's possible there are still some bits around (a grep for REAL_LD_LIBRARY_PATH would be a good start, I think it shouldn't be needed). I am however still at least somewhat confident that this change will not work if beta llvm doesn't sufficiently match the llvm on master (and same for beta/stable). I don't think we need to do anything about that right this minute: this PR is fine, indeed this looks better than what we had before. |
From the tests comment section:
r? @alexcrichton