Skip to content
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

Support new LLVM pass manager #67954

Merged
merged 3 commits into from
Feb 13, 2020
Merged

Support new LLVM pass manager #67954

merged 3 commits into from
Feb 13, 2020

Conversation

nikic
Copy link
Contributor

@nikic nikic commented Jan 6, 2020

Add support for the new LLVM pass manager behind a -Z new-llvm-pass-manager=on option. Both the pre-link optimization and LTO pipelines use the new pass manager. There's some bits that are not supported yet:

  • -C passes. NewPM requires an entirely different way of specifying custom pass pipelines. We should probably expose that functionality, but it doesn't directly map to what -C passes does.
  • NewPM has no support for custom inline parameters right now. We'd have to add upstream support for that first.
  • NewPM does not support PGO at O0 in LLVM 9 (which is why those tests fail with NewPM enabled). This is supported in LLVM 10.
  • NewPM does not support MergeFunctions in LLVM 9. I've landed this upstream just before the cut, so we'll be able to re-enable that with LLVM 10.

Closes #64289.

r? @ghost

@nikic
Copy link
Contributor Author

nikic commented Jan 6, 2020

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion

@bors
Copy link
Contributor

bors commented Jan 6, 2020

⌛ Trying commit d2959c3 with merge 9900a6a...

bors added a commit that referenced this pull request Jan 6, 2020
[WIP] Support new LLVM pass manager

This is a prototype to add support for the new LLVM pass manager. For now this is only for the optimization phase.

Closes #64289.

r? @ghost
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-06T23:10:18.9476059Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-06T23:10:18.9556224Z ##[command]git config gc.auto 0
2020-01-06T23:10:18.9634533Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-06T23:10:18.9702380Z ##[command]git config --get-all http.proxy
2020-01-06T23:10:18.9845332Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/67954/merge:refs/remotes/pull/67954/merge
---
2020-01-06T23:18:30.9925540Z    Compiling rustc_index v0.0.0 (/checkout/src/librustc_index)
2020-01-06T23:18:37.0116064Z error: failed to run custom build command for `rustc_llvm v0.0.0 (/checkout/src/librustc_llvm)`
2020-01-06T23:18:37.0120650Z 
2020-01-06T23:18:37.0121043Z Caused by:
2020-01-06T23:18:37.0129349Z   process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/release/build/rustc_llvm-180f5513e9eeadc0/build-script-build` (exit code: 1)
2020-01-06T23:18:37.0130088Z --- stdout
2020-01-06T23:18:37.0132322Z cargo:rerun-if-env-changed=REAL_LIBRARY_PATH_VAR
2020-01-06T23:18:37.0132880Z cargo:rerun-if-env-changed=REAL_LIBRARY_PATH
2020-01-06T23:18:37.0133145Z cargo:rerun-if-changed=/usr/lib/llvm-7/bin/llvm-config
2020-01-06T23:18:37.0133400Z cargo:rerun-if-env-changed=LLVM_CONFIG
2020-01-06T23:18:37.0133635Z cargo:rustc-cfg=llvm_component="aarch64"
2020-01-06T23:18:37.0133867Z cargo:rustc-cfg=llvm_component="amdgpu"
2020-01-06T23:18:37.0134112Z cargo:rustc-cfg=llvm_component="arm"
2020-01-06T23:18:37.0134348Z cargo:rustc-cfg=llvm_component="asmparser"
2020-01-06T23:18:37.0134580Z cargo:rustc-cfg=llvm_component="bitreader"
2020-01-06T23:18:37.0134827Z cargo:rustc-cfg=llvm_component="bitwriter"
2020-01-06T23:18:37.0135062Z cargo:rustc-cfg=llvm_component="hexagon"
2020-01-06T23:18:37.0135304Z cargo:rustc-cfg=llvm_component="instrumentation"
2020-01-06T23:18:37.0135532Z cargo:rustc-cfg=llvm_component="ipo"
2020-01-06T23:18:37.0135792Z cargo:rustc-cfg=llvm_component="linker"
2020-01-06T23:18:37.0136022Z cargo:rustc-cfg=llvm_component="lto"
2020-01-06T23:18:37.0136251Z cargo:rustc-cfg=llvm_component="mips"
2020-01-06T23:18:37.0136514Z cargo:rustc-cfg=llvm_component="msp430"
2020-01-06T23:18:37.0136745Z cargo:rustc-cfg=llvm_component="nvptx"
2020-01-06T23:18:37.0136977Z cargo:rustc-cfg=llvm_component="powerpc"
2020-01-06T23:18:37.0137221Z cargo:rustc-cfg=llvm_component="sparc"
2020-01-06T23:18:37.0137458Z cargo:rustc-cfg=llvm_component="systemz"
2020-01-06T23:18:37.0137694Z cargo:rustc-cfg=llvm_component="webassembly"
2020-01-06T23:18:37.0137938Z cargo:rustc-cfg=llvm_component="x86"
2020-01-06T23:18:37.0138171Z cargo:rerun-if-changed-env=LLVM_RUSTLLVM
2020-01-06T23:18:37.0138416Z cargo:rerun-if-changed=../rustllvm/ArchiveWrapper.cpp
2020-01-06T23:18:37.0138658Z cargo:rerun-if-changed=../rustllvm/.editorconfig
2020-01-06T23:18:37.0138918Z cargo:rerun-if-changed=../rustllvm/PassWrapper.cpp
2020-01-06T23:18:37.0139518Z cargo:rerun-if-changed=../rustllvm/Linker.cpp
2020-01-06T23:18:37.0139793Z cargo:rerun-if-changed=../rustllvm/rustllvm.h
2020-01-06T23:18:37.0140074Z cargo:rerun-if-changed=../rustllvm/README
2020-01-06T23:18:37.0140356Z cargo:rerun-if-changed=../rustllvm/RustWrapper.cpp
2020-01-06T23:18:37.0140616Z TARGET = Some("x86_64-unknown-linux-gnu")
2020-01-06T23:18:37.0140684Z OPT_LEVEL = Some("2")
2020-01-06T23:18:37.0140941Z HOST = Some("x86_64-unknown-linux-gnu")
2020-01-06T23:18:37.0141206Z CXX_x86_64-unknown-linux-gnu = Some("sccache c++")
2020-01-06T23:18:37.0141529Z CXXFLAGS_x86_64-unknown-linux-gnu = Some("-ffunction-sections -fdata-sections -fPIC -m64")
2020-01-06T23:18:37.0141588Z CRATE_CC_NO_DEFAULTS = None
2020-01-06T23:18:37.0141639Z DEBUG = Some("false")
2020-01-06T23:18:37.0141706Z CARGO_CFG_TARGET_FEATURE = Some("fxsr,mmx,sse,sse2")
2020-01-06T23:18:37.0143527Z running: "sccache" "sccache" "c++" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I/usr/lib/llvm-7/include" "-std=c++0x" "-fuse-ld=gold" "-Wl,--no-keep-files-mapped" "-Wl,--no-map-whole-files" "-fPIC" "-fvisibility-inlines-hidden" "-Werror=date-time" "-std=c++11" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wno-missing-field-initializers" "-pedantic" "-Wno-long-long" "-Wno-maybe-uninitialized" "-Wdelete-non-virtual-dtor" "-Wno-comment" "-ffunction-sections" "-fdata-sections" "-O2" "-DNDEBUG" "-fno-exceptions" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_AARCH64" "-DLLVM_COMPONENT_AMDGPU" "-DLLVM_COMPONENT_ARM" "-DLLVM_COMPONENT_ASMPARSER" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_HEXAGON" "-DLLVM_COMPONENT_INSTRUMENTATION" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LINKER" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_MIPS" "-DLLVM_COMPONENT_MSP430" "-DLLVM_COMPONENT_NVPTX" "-DLLVM_COMPONENT_POWERPC" "-DLLVM_COMPONENT_SPARC" "-DLLVM_COMPONENT_SYSTEMZ" "-DLLVM_COMPONENT_WEBASSEMBLY" "-DLLVM_COMPONENT_X86" "-DNDEBUG" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-30250cab0b252f3a/out/../rustllvm/PassWrapper.o" "-c" "../rustllvm/PassWrapper.cpp"
2020-01-06T23:18:37.0143863Z cargo:warning=../rustllvm/PassWrapper.cpp:16:10: fatal error: llvm/Passes/StandardInstrumentations.h: No such file or directory
2020-01-06T23:18:37.0143925Z cargo:warning= #include "llvm/Passes/StandardInstrumentations.h"
2020-01-06T23:18:37.0143981Z cargo:warning=          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-06T23:18:37.0144047Z cargo:warning=compilation terminated.
2020-01-06T23:18:37.0144125Z 
2020-01-06T23:18:37.0144400Z --- stderr
2020-01-06T23:18:37.0144450Z 
2020-01-06T23:18:37.0144478Z 
2020-01-06T23:18:37.0144478Z 
2020-01-06T23:18:37.0146271Z error occurred: Command "sccache" "sccache" "c++" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I/usr/lib/llvm-7/include" "-std=c++0x" "-fuse-ld=gold" "-Wl,--no-keep-files-mapped" "-Wl,--no-map-whole-files" "-fPIC" "-fvisibility-inlines-hidden" "-Werror=date-time" "-std=c++11" "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wwrite-strings" "-Wcast-qual" "-Wno-missing-field-initializers" "-pedantic" "-Wno-long-long" "-Wno-maybe-uninitialized" "-Wdelete-non-virtual-dtor" "-Wno-comment" "-ffunction-sections" "-fdata-sections" "-O2" "-DNDEBUG" "-fno-exceptions" "-D_GNU_SOURCE" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-DLLVM_COMPONENT_AARCH64" "-DLLVM_COMPONENT_AMDGPU" "-DLLVM_COMPONENT_ARM" "-DLLVM_COMPONENT_ASMPARSER" "-DLLVM_COMPONENT_BITREADER" "-DLLVM_COMPONENT_BITWRITER" "-DLLVM_COMPONENT_HEXAGON" "-DLLVM_COMPONENT_INSTRUMENTATION" "-DLLVM_COMPONENT_IPO" "-DLLVM_COMPONENT_LINKER" "-DLLVM_COMPONENT_LTO" "-DLLVM_COMPONENT_MIPS" "-DLLVM_COMPONENT_MSP430" "-DLLVM_COMPONENT_NVPTX" "-DLLVM_COMPONENT_POWERPC" "-DLLVM_COMPONENT_SPARC" "-DLLVM_COMPONENT_SYSTEMZ" "-DLLVM_COMPONENT_WEBASSEMBLY" "-DLLVM_COMPONENT_X86" "-DNDEBUG" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-30250cab0b252f3a/out/../rustllvm/PassWrapper.o" "-c" "../rustllvm/PassWrapper.cpp" with args "c++" did not execute successfully (status code exit code: 1).
2020-01-06T23:18:37.0146560Z 
2020-01-06T23:18:37.0150756Z 
2020-01-06T23:18:37.0151468Z warning: build failed, waiting for other jobs to finish...
2020-01-06T23:18:40.4162744Z error: build failed
---
2020-01-06T23:18:40.4266862Z   local time: Mon Jan  6 23:18:40 UTC 2020
2020-01-06T23:18:40.7118571Z   network time: Mon, 06 Jan 2020 23:18:40 GMT
2020-01-06T23:18:40.7123865Z == end clock drift check ==
2020-01-06T23:18:42.1951435Z 
2020-01-06T23:18:42.2022433Z ##[error]Bash exited with code '1'.
2020-01-06T23:18:42.2048854Z ##[section]Starting: Checkout
2020-01-06T23:18:42.2050471Z ==============================================================================
2020-01-06T23:18:42.2050922Z Task         : Get sources
2020-01-06T23:18:42.2050985Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Jan 7, 2020

☀️ Try build successful - checks-azure
Build commit: 9900a6a (9900a6a921a3e2e2e2f16169e84789f0baa87eb9)

@rust-timer
Copy link
Collaborator

Queued 9900a6a with parent ef92009, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit 9900a6a, comparison URL.

@nikic
Copy link
Contributor Author

nikic commented Jan 7, 2020

Perf results look good overall. Looks like NewPM is generally a bit faster, but slower on small crates.

@mati865
Copy link
Contributor

mati865 commented Jan 7, 2020

Does it affect the performance of the resulting binaries?

@nikic
Copy link
Contributor Author

nikic commented Jan 8, 2020

@mati865 It probably does sometimes, but the fact that no codegen tests fail and check build performance is unaffected at least indicates that nothing terrible is happening.

@nikic
Copy link
Contributor Author

nikic commented Jan 10, 2020

Patch for MergeFunctions: https://reviews.llvm.org/D72537

@nikic
Copy link
Contributor Author

nikic commented Jan 15, 2020

@bors try @rust-timer queue

Now with LTO pipeline on the new pass manager as well.

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion

@bors
Copy link
Contributor

bors commented Jan 15, 2020

⌛ Trying commit 2cafa87a982887c67ff346845514e6c28555248f with merge 4c105660027e925c615e41c665d1dee89622991f...

@nikic
Copy link
Contributor Author

nikic commented Jan 15, 2020

r? @rkruppe or @nagisa maybe?

I'm leaving this as [WIP] due to the last commit, but apart from that this should be ready.

@rust-highfive

This comment has been minimized.

@nikic nikic force-pushed the new-pm branch 2 times, most recently from 3d46efb to 1394df7 Compare January 15, 2020 19:33
@rust-highfive

This comment has been minimized.

@nikic
Copy link
Contributor Author

nikic commented Jan 15, 2020

@bors try

@bors
Copy link
Contributor

bors commented Jan 15, 2020

⌛ Trying commit 1394df792ec00fbd7dc04085ff575cd1be241786 with merge b017687288761a44826d21619dc32a8858d504f4...

@bors
Copy link
Contributor

bors commented Jan 15, 2020

☀️ Try build successful - checks-azure
Build commit: b017687288761a44826d21619dc32a8858d504f4 (b017687288761a44826d21619dc32a8858d504f4)

@rust-timer
Copy link
Collaborator

Queued b017687288761a44826d21619dc32a8858d504f4 with parent faf45c5, future comparison URL.

@andjo403
Copy link
Contributor

andjo403 commented Feb 8, 2020

I can not reproduce the fault from the CI run on my local machine.

./x.py test src/test/ui/issues/issue-38226.rs is successful for me.
can it be the test that is flaky?

@nikic
Copy link
Contributor Author

nikic commented Feb 8, 2020

@andjo403 Looks like an anon globals assertion failure to me, so likely not spurious.

Possibly this is due to the existing check for the name-anon-globals pass being too weak: If no-prepopulate-passes is used, we check whether the bitcode will be needed, but we don't check whether we're preparing for thin LTO. But for that matter ... why are we running LTO if no-prepopulate-passes is enabled? From what I can see, the LTO code doesn't check that option at all, so it's going to be running a standard LTO optimization pipeline despite that option.

@nikic
Copy link
Contributor Author

nikic commented Feb 8, 2020

I've now dropped the changes related to name-anon-globals entirely. That should address both the CI failure and @nagisa's concerns.

@andjo403
Copy link
Contributor

this needs a rebase due to #68932 changed the number of parameters to extra_verbose_generic_activity function.
the only place that I found a problem was in src/librustc_codegen_llvm/back/lto.rs where the call was moved so can be removed from the new code

@nikic
Copy link
Contributor Author

nikic commented Feb 11, 2020

@andjo403 Done!

@nagisa
Copy link
Member

nagisa commented Feb 12, 2020

@bors r+

@bors
Copy link
Contributor

bors commented Feb 12, 2020

📌 Commit 3595c4d5cde4f06dd230b426167f4aaac2edd2ac has been approved by nagisa

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 12, 2020
@nagisa
Copy link
Member

nagisa commented Feb 12, 2020

@nikic fwiw you could’ve retried bors yourself.

@bors
Copy link
Contributor

bors commented Feb 12, 2020

☔ The latest upstream changes (presumably #69088) made this pull request unmergeable. Please resolve the merge conflicts.

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 12, 2020
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-tools of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-02-12T13:54:12.5619219Z ========================== Starting Command Output ===========================
2020-02-12T13:54:12.5620753Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/ea8d32f1-cd29-4d37-98e0-fd9f62485e6b.sh
2020-02-12T13:54:12.5620789Z 
2020-02-12T13:54:12.5623645Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-12T13:54:12.5630978Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/67954/merge to s
2020-02-12T13:54:12.5633359Z Task         : Get sources
2020-02-12T13:54:12.5633390Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-12T13:54:12.5633435Z Version      : 1.0.0
2020-02-12T13:54:12.5633465Z Author       : Microsoft
---
2020-02-12T13:54:13.4296283Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-12T13:54:13.4387398Z ##[command]git config gc.auto 0
2020-02-12T13:54:13.4463538Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-12T13:54:13.4517709Z ##[command]git config --get-all http.proxy
2020-02-12T13:54:13.4679669Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/67954/merge:refs/remotes/pull/67954/merge
---
2020-02-12T13:56:52.4368187Z extracting /checkout/obj/build/cache/2020-01-31/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz
2020-02-12T13:56:52.5050065Z error: failed to resolve patches for `https://github.com/rust-lang/cargo`
2020-02-12T13:56:52.5050733Z 
2020-02-12T13:56:52.5051020Z Caused by:
2020-02-12T13:56:52.5051862Z   patch for `cargo` in `https://github.com/rust-lang/cargo` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
2020-02-12T13:56:52.5065540Z Build completed unsuccessfully in 0:00:10
2020-02-12T13:56:52.5120192Z Makefile:67: recipe for target 'prepare' failed
2020-02-12T13:56:52.5120308Z make: *** [prepare] Error 1
2020-02-12T13:56:53.5143574Z Command failed. Attempt 2/5:
2020-02-12T13:56:53.5143574Z Command failed. Attempt 2/5:
2020-02-12T13:56:53.6337154Z error: failed to resolve patches for `https://github.com/rust-lang/cargo`
2020-02-12T13:56:53.6338707Z 
2020-02-12T13:56:53.6338954Z Caused by:
2020-02-12T13:56:53.6339880Z   patch for `cargo` in `https://github.com/rust-lang/cargo` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
2020-02-12T13:56:53.6349792Z Build completed unsuccessfully in 0:00:00
2020-02-12T13:56:53.6397732Z Makefile:67: recipe for target 'prepare' failed
2020-02-12T13:56:53.6397868Z make: *** [prepare] Error 1
2020-02-12T13:56:55.6411392Z Command failed. Attempt 3/5:
2020-02-12T13:56:55.6411392Z Command failed. Attempt 3/5:
2020-02-12T13:56:55.7604546Z error: failed to resolve patches for `https://github.com/rust-lang/cargo`
2020-02-12T13:56:55.7604640Z 
2020-02-12T13:56:55.7604691Z Caused by:
2020-02-12T13:56:55.7605130Z   patch for `cargo` in `https://github.com/rust-lang/cargo` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
2020-02-12T13:56:55.7605838Z Build completed unsuccessfully in 0:00:00
2020-02-12T13:56:55.7628678Z Makefile:67: recipe for target 'prepare' failed
2020-02-12T13:56:55.7628765Z make: *** [prepare] Error 1
2020-02-12T13:56:58.7644641Z Command failed. Attempt 4/5:
2020-02-12T13:56:58.7644641Z Command failed. Attempt 4/5:
2020-02-12T13:56:58.8730465Z error: failed to resolve patches for `https://github.com/rust-lang/cargo`
2020-02-12T13:56:58.8731284Z 
2020-02-12T13:56:58.8731459Z Caused by:
2020-02-12T13:56:58.8732150Z   patch for `cargo` in `https://github.com/rust-lang/cargo` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
2020-02-12T13:56:58.8739881Z Build completed unsuccessfully in 0:00:00
2020-02-12T13:56:58.8786320Z Makefile:67: recipe for target 'prepare' failed
2020-02-12T13:56:58.8786483Z make: *** [prepare] Error 1
2020-02-12T13:57:02.8800948Z Command failed. Attempt 5/5:
2020-02-12T13:57:02.8800948Z Command failed. Attempt 5/5:
2020-02-12T13:57:03.0042463Z error: failed to resolve patches for `https://github.com/rust-lang/cargo`
2020-02-12T13:57:03.0042680Z 
2020-02-12T13:57:03.0042745Z Caused by:
2020-02-12T13:57:03.0043291Z   patch for `cargo` in `https://github.com/rust-lang/cargo` did not resolve to any crates. If this is unexpected, you may wish to consult: https://github.com/rust-lang/cargo/issues/4678
2020-02-12T13:57:03.0049626Z Build completed unsuccessfully in 0:00:00
2020-02-12T13:57:03.0097266Z Makefile:67: recipe for target 'prepare' failed
2020-02-12T13:57:03.0097775Z The command has failed after 5 attempts.
2020-02-12T13:57:03.0098333Z make: *** [prepare] Error 1
2020-02-12T13:57:03.0098333Z make: *** [prepare] Error 1
2020-02-12T13:57:03.0100929Z == clock drift check ==
2020-02-12T13:57:03.0110209Z   local time: Wed Feb 12 13:57:03 UTC 2020
2020-02-12T13:57:03.2871405Z   network time: Wed, 12 Feb 2020 13:57:03 GMT
2020-02-12T13:57:03.2875056Z == end clock drift check ==
2020-02-12T13:57:10.8577799Z 
2020-02-12T13:57:10.8678319Z ##[error]Bash exited with code '1'.
2020-02-12T13:57:10.8693282Z ##[section]Finishing: Run build
2020-02-12T13:57:10.8712050Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/67954/merge to s
2020-02-12T13:57:10.8714051Z Task         : Get sources
2020-02-12T13:57:10.8714146Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-12T13:57:10.8714194Z Version      : 1.0.0
2020-02-12T13:57:10.8714240Z Author       : Microsoft
2020-02-12T13:57:10.8714240Z Author       : Microsoft
2020-02-12T13:57:10.8714334Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-12T13:57:10.8714399Z ==============================================================================
2020-02-12T13:57:11.3320669Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-12T13:57:11.3369821Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/67954/merge to s
2020-02-12T13:57:11.3486239Z Cleaning up task key
2020-02-12T13:57:11.3487336Z Start cleaning up orphan processes.
2020-02-12T13:57:11.3659485Z Terminate orphan process: pid (3631) (python)
2020-02-12T13:57:11.3860289Z ##[section]Finishing: Finalize Job

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 @TimNN. (Feature Requests)

To avoid creating memsets with outdated signature. For some reason
SROA chokes on this when using NewPM.
The new pass manager can be enabled using
-Z new-llvm-pass-manager=on.
@nikic
Copy link
Contributor Author

nikic commented Feb 12, 2020

@bors r=nagisa

@bors
Copy link
Contributor

bors commented Feb 12, 2020

📌 Commit c6b0803 has been approved by nagisa

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Feb 12, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Feb 12, 2020
Support new LLVM pass manager

Add support for the new LLVM pass manager behind a `-Z new-llvm-pass-manager=on` option. Both the pre-link optimization and LTO pipelines use the new pass manager. There's some bits that are not supported yet:

 * `-C passes`. NewPM requires an entirely different way of specifying custom pass pipelines. We should probably expose that functionality, but it doesn't directly map to what `-C passes` does.
 * NewPM has no support for custom inline parameters right now. We'd have to add upstream support for that first.
 * NewPM does not support PGO at O0 in LLVM 9 (which is why those tests fail with NewPM enabled). This is supported in LLVM 10.
 * NewPM does not support MergeFunctions in LLVM 9. I've landed this upstream just before the cut, so we'll be able to re-enable that with LLVM 10.

Closes rust-lang#64289.

r? @ghost
bors added a commit that referenced this pull request Feb 12, 2020
Rollup of 7 pull requests

Successful merges:

 - #67954 (Support new LLVM pass manager)
 - #68981 ( Account for type params on method without parentheses)
 - #69002 (miri: improve and simplify overflow detection)
 - #69038 (Add initial debug fmt for Backtrace)
 - #69040 (Cleanup SGX entry code)
 - #69086 (Update compiler-builtins to 0.1.25)
 - #69095 (Minified theme check)

Failed merges:

r? @ghost
@bors bors merged commit c6b0803 into rust-lang:master Feb 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support running with new pass manager
10 participants