-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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