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

Move LLVM bitcode destination #70458

Closed

Conversation

nnethercote
Copy link
Contributor

@nnethercote nnethercote commented Mar 27, 2020

From .bc.z file in the rlib to a section in the .o file in the rlib.

This is the main part of #66961. (The other part is changing Cargo to use the new -Cembed-bitcode=no flag when appropriate.)

r? @alexcrichton

@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-03-27T06:50:35.3716382Z ========================== Starting Command Output ===========================
2020-03-27T06:50:35.3718784Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/155fca45-d1a7-4bcc-9f01-d8b7c2eed593.sh
2020-03-27T06:50:35.3719076Z 
2020-03-27T06:50:35.3722939Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-27T06:50:35.3783253Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T06:50:35.3786214Z Task         : Get sources
2020-03-27T06:50:35.3786502Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-27T06:50:35.3786796Z Version      : 1.0.0
2020-03-27T06:50:35.3786983Z Author       : Microsoft
---
2020-03-27T06:50:36.3749234Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-27T06:50:36.3754346Z ##[command]git config gc.auto 0
2020-03-27T06:50:36.3757852Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-27T06:50:36.3761165Z ##[command]git config --get-all http.proxy
2020-03-27T06:50:36.3766883Z ##[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/70458/merge:refs/remotes/pull/70458/merge
---
2020-03-27T06:57:35.7390130Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-27T06:57:37.2143845Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-27T06:57:37.4425001Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-27T06:57:46.6337555Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-27T06:57:47.6802025Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-27T06:57:48.9859186Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-27T06:57:57.0096611Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
2020-03-27T06:58:26.6852419Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-27T06:58:58.6602312Z    Compiling rustc_infer v0.0.0 (/checkout/src/librustc_infer)
2020-03-27T07:00:40.2469613Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
2020-03-27T07:19:00.1225249Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-27T07:19:02.0685487Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-27T07:19:03.0935861Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-27T07:19:14.0000932Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-27T07:19:16.1113065Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-27T07:19:17.5890135Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-27T07:19:28.0029936Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
2020-03-27T07:20:05.7967448Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-27T07:20:48.5747886Z    Compiling rustc_infer v0.0.0 (/checkout/src/librustc_infer)
2020-03-27T07:22:54.0450851Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
2020-03-27T07:44:13.2274224Z .................................................................................................... 1700/9849
2020-03-27T07:44:17.1390292Z .................................................................................................... 1800/9849
2020-03-27T07:44:26.8549543Z .........................................................................................i.......... 1900/9849
2020-03-27T07:44:32.4174208Z ......F............................................................................................. 2000/9849
2020-03-27T07:44:38.5169959Z ...............................................................................iiiii................ 2100/9849
2020-03-27T07:44:58.6249936Z .................................................................................................... 2300/9849
2020-03-27T07:45:00.7192561Z .................................................................................................... 2400/9849
2020-03-27T07:45:03.0507230Z .................................................................................................... 2500/9849
2020-03-27T07:45:09.3471731Z ..................................................................................................F. 2600/9849
2020-03-27T07:45:09.3471731Z ..................................................................................................F. 2600/9849
2020-03-27T07:45:14.7860896Z FFFFF...F.FF.F.....F................................................................................ 2700/9849
2020-03-27T07:45:28.1513536Z ................................................i................................................... 2900/9849
2020-03-27T07:45:33.9346919Z .................................................................................................... 3000/9849
2020-03-27T07:45:41.0578043Z .................................................................................................... 3100/9849
2020-03-27T07:45:45.7034778Z i................................................................................................... 3200/9849
---
2020-03-27T07:47:40.6852957Z .....................................................i...............i.............................. 5000/9849
2020-03-27T07:47:48.0145578Z .................................................................................................... 5100/9849
2020-03-27T07:47:55.0647733Z ..................................................................................................i. 5200/9849
2020-03-27T07:47:59.8910541Z .................................................................................................... 5300/9849
2020-03-27T07:48:10.0021272Z ...................................................................................ii.ii........i... 5400/9849
2020-03-27T07:48:13.5614834Z i................................................................................................... 5500/9849
2020-03-27T07:48:22.3329407Z ............................i......................................................................F 5700/9849
2020-03-27T07:48:22.3329407Z ............................i......................................................................F 5700/9849
2020-03-27T07:48:29.5903571Z F.F..........................................ii....................................i................ 5800/9849
2020-03-27T07:48:41.5362513Z .................................................................................................... 6000/9849
2020-03-27T07:48:41.5362513Z .................................................................................................... 6000/9849
2020-03-27T07:48:50.3798431Z .............................................................................ii...i..ii...........i. 6100/9849
2020-03-27T07:49:10.2304112Z .................................................................................................... 6300/9849
2020-03-27T07:49:15.6177402Z .................................................................................................... 6400/9849
2020-03-27T07:49:19.0061232Z .................................................................................................... 6500/9849
2020-03-27T07:49:19.0061232Z .................................................................................................... 6500/9849
2020-03-27T07:49:30.6298418Z .......i..ii........................................................................................ 6600/9849
2020-03-27T07:49:47.1695480Z ..........................................F.F....................................................... 6800/9849
2020-03-27T07:49:49.1770305Z .......i............................................................................................ 6900/9849
2020-03-27T07:49:51.1848517Z .................................................................................................... 7000/9849
2020-03-27T07:49:53.3943209Z ...........................................i........................................................ 7100/9849
---
2020-03-27T07:51:25.3682281Z .................................................................................................... 7700/9849
2020-03-27T07:51:30.3888345Z .................................................................................................... 7800/9849
2020-03-27T07:51:35.2921912Z .................................................................................................... 7900/9849
2020-03-27T07:51:42.3215273Z .................................................................................................... 8000/9849
2020-03-27T07:51:49.6442310Z i................................................................................................... 8100/9849
2020-03-27T07:51:57.4779277Z .................................................iiiiiiiiii.i....................................... 8200/9849
2020-03-27T07:52:10.2962963Z i................................................................................................... 8400/9849
2020-03-27T07:52:15.3813049Z .................................................................................................... 8500/9849
2020-03-27T07:52:28.1850843Z .................................................................................................... 8600/9849
2020-03-27T07:52:37.4585590Z .................................................................................................... 8700/9849
---
2020-03-27T07:54:28.4071959Z ---- [ui] ui/abi/stack-probes-lto.rs stdout ----
2020-03-27T07:54:28.4072355Z 
2020-03-27T07:54:28.4073004Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4073462Z status: exit code: 1
2020-03-27T07:54:28.4075495Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/abi/stack-probes-lto.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/abi/stack-probes-lto/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/abi/stack-probes-lto/auxiliary"
2020-03-27T07:54:28.4077366Z ------------------------------------------
2020-03-27T07:54:28.4077725Z 
2020-03-27T07:54:28.4078306Z ------------------------------------------
2020-03-27T07:54:28.4078721Z stderr:
2020-03-27T07:54:28.4078721Z stderr:
2020-03-27T07:54:28.4079274Z ------------------------------------------
2020-03-27T07:54:28.4080048Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fbada4b1f38, 2611768)
2020-03-27T07:54:28.4080972Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fbb02b6514a, 20224)
2020-03-27T07:54:28.4081879Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fbb02ac42b0, 12728)
2020-03-27T07:54:28.4082885Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fbacc013280, 1936)
2020-03-27T07:54:28.4083825Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fbb02b4189e, 85408)
2020-03-27T07:54:28.4084765Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fbb02b512f2, 1896)
2020-03-27T07:54:28.4085335Z extract_bitcode alloc.o (0x7fbb02b51a96, 4184)
2020-03-27T07:54:28.4086027Z findBitcodeInObject failed
2020-03-27T07:54:28.4086501Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4087717Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4088350Z error: aborting due to previous error
2020-03-27T07:54:28.4088992Z 
2020-03-27T07:54:28.4089193Z 
2020-03-27T07:54:28.4089767Z ------------------------------------------
2020-03-27T07:54:28.4089767Z ------------------------------------------
2020-03-27T07:54:28.4090043Z 
2020-03-27T07:54:28.4090253Z 
2020-03-27T07:54:28.4090732Z ---- [ui] ui/debuginfo-lto.rs stdout ----
2020-03-27T07:54:28.4091006Z 
2020-03-27T07:54:28.4091707Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4092096Z status: exit code: 1
2020-03-27T07:54:28.4093932Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/debuginfo-lto.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/debuginfo-lto/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto" "-g" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/debuginfo-lto/auxiliary"
2020-03-27T07:54:28.4095650Z ------------------------------------------
2020-03-27T07:54:28.4096111Z 
2020-03-27T07:54:28.4096621Z ------------------------------------------
2020-03-27T07:54:28.4096965Z stderr:
2020-03-27T07:54:28.4096965Z stderr:
2020-03-27T07:54:28.4097464Z ------------------------------------------
2020-03-27T07:54:28.4098192Z extract_bitcode debuginfo-lto-aux.debuginfo_lto_aux.3a1fbbbh-cgu.0.rcgu.o (0x7f51e7080238, 12024)
2020-03-27T07:54:28.4099326Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f51be9c8f38, 2611768)
2020-03-27T07:54:28.4100787Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f51e707914a, 20224)
2020-03-27T07:54:28.4101586Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f51e6fd82b0, 12728)
2020-03-27T07:54:28.4102368Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f51b0009b30, 1936)
2020-03-27T07:54:28.4103500Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f51e705589e, 85408)
2020-03-27T07:54:28.4104329Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f51e70652f2, 1896)
2020-03-27T07:54:28.4104686Z extract_bitcode alloc.o (0x7f51e7065a96, 4184)
2020-03-27T07:54:28.4104925Z findBitcodeInObject failed
2020-03-27T07:54:28.4105176Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4105495Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4106074Z error: aborting due to previous error
2020-03-27T07:54:28.4106240Z 
2020-03-27T07:54:28.4106337Z 
2020-03-27T07:54:28.4106725Z ------------------------------------------
2020-03-27T07:54:28.4106725Z ------------------------------------------
2020-03-27T07:54:28.4106898Z 
2020-03-27T07:54:28.4106995Z 
2020-03-27T07:54:28.4107488Z ---- [ui] ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs#fat stdout ----
2020-03-27T07:54:28.4107746Z 
2020-03-27T07:54:28.4108205Z error in revision `fat`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4108503Z status: exit code: 1
2020-03-27T07:54:28.4110848Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "fat" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.fat/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.fat/auxiliary"
2020-03-27T07:54:28.4112665Z ------------------------------------------
2020-03-27T07:54:28.4112841Z 
2020-03-27T07:54:28.4113198Z ------------------------------------------
2020-03-27T07:54:28.4113416Z stderr:
2020-03-27T07:54:28.4113416Z stderr:
2020-03-27T07:54:28.4113783Z ------------------------------------------
2020-03-27T07:54:28.4114350Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f6d745bef38, 2611768)
2020-03-27T07:54:28.4115055Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f6d9cc7214a, 20224)
2020-03-27T07:54:28.4115758Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f6d9cbd12b0, 12728)
2020-03-27T07:54:28.4116525Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f6d68010050, 1936)
2020-03-27T07:54:28.4117283Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f6d9cc4e89e, 85408)
2020-03-27T07:54:28.4117995Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f6d9cc5e2f2, 1896)
2020-03-27T07:54:28.4118391Z extract_bitcode alloc.o (0x7f6d9cc5ea96, 4184)
2020-03-27T07:54:28.4118633Z findBitcodeInObject failed
2020-03-27T07:54:28.4118903Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4119244Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4119659Z error: aborting due to previous error
2020-03-27T07:54:28.4119823Z 
2020-03-27T07:54:28.4119921Z 
2020-03-27T07:54:28.4120292Z ------------------------------------------
2020-03-27T07:54:28.4120292Z ------------------------------------------
2020-03-27T07:54:28.4120463Z 
2020-03-27T07:54:28.4120561Z 
2020-03-27T07:54:28.4121049Z ---- [ui] ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs#thin stdout ----
2020-03-27T07:54:28.4121323Z 
2020-03-27T07:54:28.4121773Z error in revision `thin`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4122076Z status: exit code: 1
2020-03-27T07:54:28.4124250Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "thin" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.thin/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto=thin" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.thin/auxiliary"
2020-03-27T07:54:28.4125971Z ------------------------------------------
2020-03-27T07:54:28.4126145Z 
2020-03-27T07:54:28.4126505Z ------------------------------------------
2020-03-27T07:54:28.4126727Z stderr:
2020-03-27T07:54:28.4126727Z stderr:
2020-03-27T07:54:28.4127094Z ------------------------------------------
2020-03-27T07:54:28.4127660Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fd02e73af38, 2611768)
2020-03-27T07:54:28.4128366Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fd056dee14a, 20224)
2020-03-27T07:54:28.4130155Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fd056d4d2b0, 12728)
2020-03-27T07:54:28.4130938Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fd02000f080, 1936)
2020-03-27T07:54:28.4131706Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fd056dca89e, 85408)
2020-03-27T07:54:28.4132417Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fd056dda2f2, 1896)
2020-03-27T07:54:28.4132815Z extract_bitcode alloc.o (0x7fd056ddaa96, 4184)
2020-03-27T07:54:28.4133228Z findBitcodeInObject failed
2020-03-27T07:54:28.4133503Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4133862Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4134265Z error: aborting due to previous error
2020-03-27T07:54:28.4134428Z 
2020-03-27T07:54:28.4134542Z 
2020-03-27T07:54:28.4134910Z ------------------------------------------
2020-03-27T07:54:28.4134910Z ------------------------------------------
2020-03-27T07:54:28.4135082Z 
2020-03-27T07:54:28.4135179Z 
2020-03-27T07:54:28.4135643Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#fat0 stdout ----
2020-03-27T07:54:28.4135899Z 
2020-03-27T07:54:28.4136347Z error in revision `fat0`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4136646Z status: exit code: 1
2020-03-27T07:54:28.4138770Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "fat0" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat0/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=0" "-C" "lto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat0/auxiliary"
2020-03-27T07:54:28.4140464Z ------------------------------------------
2020-03-27T07:54:28.4140640Z 
2020-03-27T07:54:28.4140995Z ------------------------------------------
2020-03-27T07:54:28.4141211Z stderr:
2020-03-27T07:54:28.4141211Z stderr:
2020-03-27T07:54:28.4141578Z ------------------------------------------
2020-03-27T07:54:28.4142143Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f374d411f38, 2611768)
2020-03-27T07:54:28.4142853Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f3775ac514a, 20224)
2020-03-27T07:54:28.4143563Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f3775a242b0, 12728)
2020-03-27T07:54:28.4144345Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f374000ad50, 1936)
2020-03-27T07:54:28.4145793Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f3775aa189e, 85408)
2020-03-27T07:54:28.4146457Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f3775ab12f2, 1896)
2020-03-27T07:54:28.4146827Z extract_bitcode alloc.o (0x7f3775ab1a96, 4184)
2020-03-27T07:54:28.4147049Z findBitcodeInObject failed
2020-03-27T07:54:28.4147297Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4147629Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4148006Z error: aborting due to previous error
2020-03-27T07:54:28.4148162Z 
2020-03-27T07:54:28.4148267Z 
2020-03-27T07:54:28.4148599Z ------------------------------------------
2020-03-27T07:54:28.4148599Z ------------------------------------------
2020-03-27T07:54:28.4148759Z 
2020-03-27T07:54:28.4148850Z 
2020-03-27T07:54:28.4149294Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#fat1 stdout ----
2020-03-27T07:54:28.4149519Z 
2020-03-27T07:54:28.4150147Z error in revision `fat1`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4150440Z status: exit code: 1
2020-03-27T07:54:28.4152630Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "fat1" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat1/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=1" "-C" "lto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat1/auxiliary"
2020-03-27T07:54:28.4154422Z ------------------------------------------
2020-03-27T07:54:28.4154585Z 
2020-03-27T07:54:28.4154929Z ------------------------------------------
2020-03-27T07:54:28.4155116Z stderr:
2020-03-27T07:54:28.4155116Z stderr:
2020-03-27T07:54:28.4155454Z ------------------------------------------
2020-03-27T07:54:28.4155978Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fa3d28c4f38, 2611768)
2020-03-27T07:54:28.4156632Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fa3faf7814a, 20224)
2020-03-27T07:54:28.4157283Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fa3faed72b0, 12728)
2020-03-27T07:54:28.4158014Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fa3c8010fa0, 1936)
2020-03-27T07:54:28.4158703Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fa3faf5489e, 85408)
2020-03-27T07:54:28.4159374Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fa3faf642f2, 1896)
2020-03-27T07:54:28.4159727Z extract_bitcode alloc.o (0x7fa3faf64a96, 4184)
2020-03-27T07:54:28.4159951Z findBitcodeInObject failed
2020-03-27T07:54:28.4160201Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4160536Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4160903Z error: aborting due to previous error
2020-03-27T07:54:28.4161068Z 
2020-03-27T07:54:28.4161159Z 
2020-03-27T07:54:28.4161488Z ------------------------------------------
2020-03-27T07:54:28.4161488Z ------------------------------------------
2020-03-27T07:54:28.4161648Z 
2020-03-27T07:54:28.4161738Z 
2020-03-27T07:54:28.4162182Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#fat2 stdout ----
2020-03-27T07:54:28.4162413Z 
2020-03-27T07:54:28.4163014Z error in revision `fat2`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4163326Z status: exit code: 1
2020-03-27T07:54:28.4165426Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "fat2" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat2/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=2" "-C" "lto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat2/auxiliary"
2020-03-27T07:54:28.4167122Z ------------------------------------------
2020-03-27T07:54:28.4167297Z 
2020-03-27T07:54:28.4167678Z ------------------------------------------
2020-03-27T07:54:28.4167881Z stderr:
2020-03-27T07:54:28.4167881Z stderr:
2020-03-27T07:54:28.4168246Z ------------------------------------------
2020-03-27T07:54:28.4176522Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7ff96864ef38, 2611768)
2020-03-27T07:54:28.4177289Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7ff990d0214a, 20224)
2020-03-27T07:54:28.4177999Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7ff990c612b0, 12728)
2020-03-27T07:54:28.4179626Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7ff95c010f60, 1936)
2020-03-27T07:54:28.4180388Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7ff990cde89e, 85408)
2020-03-27T07:54:28.4181114Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7ff990cee2f2, 1896)
2020-03-27T07:54:28.4181966Z extract_bitcode alloc.o (0x7ff990ceea96, 4184)
2020-03-27T07:54:28.4182277Z findBitcodeInObject failed
2020-03-27T07:54:28.4182564Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4182906Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4183314Z error: aborting due to previous error
2020-03-27T07:54:28.4183494Z 
2020-03-27T07:54:28.4183592Z 
2020-03-27T07:54:28.4183985Z ------------------------------------------
2020-03-27T07:54:28.4183985Z ------------------------------------------
2020-03-27T07:54:28.4184159Z 
2020-03-27T07:54:28.4184258Z 
2020-03-27T07:54:28.4184742Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#fat3 stdout ----
2020-03-27T07:54:28.4184984Z 
2020-03-27T07:54:28.4185432Z error in revision `fat3`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4185745Z status: exit code: 1
2020-03-27T07:54:28.4187891Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "fat3" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat3/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=3" "-C" "lto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.fat3/auxiliary"
2020-03-27T07:54:28.4189591Z ------------------------------------------
2020-03-27T07:54:28.4189766Z 
2020-03-27T07:54:28.4190139Z ------------------------------------------
2020-03-27T07:54:28.4190340Z stderr:
2020-03-27T07:54:28.4190340Z stderr:
2020-03-27T07:54:28.4190704Z ------------------------------------------
2020-03-27T07:54:28.4192178Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f8f4e7d3f38, 2611768)
2020-03-27T07:54:28.4192909Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f8f76e8714a, 20224)
2020-03-27T07:54:28.4193622Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f8f76de62b0, 12728)
2020-03-27T07:54:28.4194417Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f8f40010a40, 1936)
2020-03-27T07:54:28.4195162Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f8f76e6389e, 85408)
2020-03-27T07:54:28.4195891Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f8f76e732f2, 1896)
2020-03-27T07:54:28.4196273Z extract_bitcode alloc.o (0x7f8f76e73a96, 4184)
2020-03-27T07:54:28.4196514Z findBitcodeInObject failed
2020-03-27T07:54:28.4196798Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4197141Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4197565Z error: aborting due to previous error
2020-03-27T07:54:28.4197731Z 
2020-03-27T07:54:28.4197829Z 
2020-03-27T07:54:28.4198187Z ------------------------------------------
2020-03-27T07:54:28.4198187Z ------------------------------------------
2020-03-27T07:54:28.4198359Z 
2020-03-27T07:54:28.4198475Z 
2020-03-27T07:54:28.4198941Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#thin0 stdout ----
2020-03-27T07:54:28.4199186Z 
2020-03-27T07:54:28.4199638Z error in revision `thin0`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4199955Z status: exit code: 1
2020-03-27T07:54:28.4202876Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "thin0" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin0/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=0" "-C" "lto=thin" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin0/auxiliary"
2020-03-27T07:54:28.4205140Z ------------------------------------------
2020-03-27T07:54:28.4205339Z 
2020-03-27T07:54:28.4205701Z ------------------------------------------
2020-03-27T07:54:28.4205903Z stderr:
2020-03-27T07:54:28.4205903Z stderr:
2020-03-27T07:54:28.4206268Z ------------------------------------------
2020-03-27T07:54:28.4206855Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f6e44924f38, 2611768)
2020-03-27T07:54:28.4207548Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f6e6cfd814a, 20224)
2020-03-27T07:54:28.4208265Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f6e6cf372b0, 12728)
2020-03-27T07:54:28.4209300Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f6e3800b430, 1936)
2020-03-27T07:54:28.4211535Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f6e6cfb489e, 85408)
2020-03-27T07:54:28.4212305Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f6e6cfc42f2, 1896)
2020-03-27T07:54:28.4212692Z extract_bitcode alloc.o (0x7f6e6cfc4a96, 4184)
2020-03-27T07:54:28.4212935Z findBitcodeInObject failed
2020-03-27T07:54:28.4213223Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4213567Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4213989Z error: aborting due to previous error
2020-03-27T07:54:28.4214152Z 
2020-03-27T07:54:28.4214249Z 
2020-03-27T07:54:28.4214609Z ------------------------------------------
2020-03-27T07:54:28.4214609Z ------------------------------------------
2020-03-27T07:54:28.4214796Z 
2020-03-27T07:54:28.4214894Z 
2020-03-27T07:54:28.4215372Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#thin1 stdout ----
2020-03-27T07:54:28.4215835Z 
2020-03-27T07:54:28.4217055Z error in revision `thin1`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4217372Z status: exit code: 1
2020-03-27T07:54:28.4220070Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "thin1" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin1/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=1" "-C" "lto=thin" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin1/auxiliary"
2020-03-27T07:54:28.4221820Z ------------------------------------------
2020-03-27T07:54:28.4222016Z 
2020-03-27T07:54:28.4222380Z ------------------------------------------
2020-03-27T07:54:28.4222583Z stderr:
2020-03-27T07:54:28.4222583Z stderr:
2020-03-27T07:54:28.4222959Z ------------------------------------------
2020-03-27T07:54:28.4223526Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f7aa6d49f38, 2611768)
2020-03-27T07:54:28.4224218Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f7acf3fd14a, 20224)
2020-03-27T07:54:28.4224934Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f7acf35c2b0, 12728)
2020-03-27T07:54:28.4225701Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f7a98010ee0, 1936)
2020-03-27T07:54:28.4226457Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f7acf3d989e, 85408)
2020-03-27T07:54:28.4227169Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f7acf3e92f2, 1896)
2020-03-27T07:54:28.4227758Z extract_bitcode alloc.o (0x7f7acf3e9a96, 4184)
2020-03-27T07:54:28.4228017Z findBitcodeInObject failed
2020-03-27T07:54:28.4228285Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4228629Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4229049Z error: aborting due to previous error
2020-03-27T07:54:28.4229213Z 
2020-03-27T07:54:28.4229310Z 
2020-03-27T07:54:28.4229677Z ------------------------------------------
2020-03-27T07:54:28.4229677Z ------------------------------------------
2020-03-27T07:54:28.4229864Z 
2020-03-27T07:54:28.4229961Z 
2020-03-27T07:54:28.4230425Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#thin2 stdout ----
2020-03-27T07:54:28.4230665Z 
2020-03-27T07:54:28.4231130Z error in revision `thin2`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4231432Z status: exit code: 1
2020-03-27T07:54:28.4233551Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "thin2" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin2/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=2" "-C" "lto=thin" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin2/auxiliary"
2020-03-27T07:54:28.4235275Z ------------------------------------------
2020-03-27T07:54:28.4235450Z 
2020-03-27T07:54:28.4235805Z ------------------------------------------
2020-03-27T07:54:28.4236008Z stderr:
2020-03-27T07:54:28.4236008Z stderr:
2020-03-27T07:54:28.4236385Z ------------------------------------------
2020-03-27T07:54:28.4236952Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fd48513df38, 2611768)
2020-03-27T07:54:28.4237646Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fd4ad7f114a, 20224)
2020-03-27T07:54:28.4238361Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fd4ad7502b0, 12728)
2020-03-27T07:54:28.4239127Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fd470010910, 1936)
2020-03-27T07:54:28.4239881Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fd4ad7cd89e, 85408)
2020-03-27T07:54:28.4240592Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fd4ad7dd2f2, 1896)
2020-03-27T07:54:28.4240973Z extract_bitcode alloc.o (0x7fd4ad7dda96, 4184)
2020-03-27T07:54:28.4241228Z findBitcodeInObject failed
2020-03-27T07:54:28.4241499Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4241840Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4242262Z error: aborting due to previous error
2020-03-27T07:54:28.4242425Z 
2020-03-27T07:54:28.4242523Z 
2020-03-27T07:54:28.4247555Z ------------------------------------------
2020-03-27T07:54:28.4247555Z ------------------------------------------
2020-03-27T07:54:28.4247750Z 
2020-03-27T07:54:28.4247850Z 
2020-03-27T07:54:28.4248336Z ---- [ui] ui/extern/issue-64655-extern-rust-must-allow-unwind.rs#thin3 stdout ----
2020-03-27T07:54:28.4248915Z 
2020-03-27T07:54:28.4249415Z error in revision `thin3`: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4249717Z status: exit code: 1
2020-03-27T07:54:28.4251987Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "thin3" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin3/a" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "opt-level=3" "-C" "lto=thin" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/extern/issue-64655-extern-rust-must-allow-unwind.thin3/auxiliary"
2020-03-27T07:54:28.4255489Z ------------------------------------------
2020-03-27T07:54:28.4255666Z 
2020-03-27T07:54:28.4256028Z ------------------------------------------
2020-03-27T07:54:28.4256247Z stderr:
2020-03-27T07:54:28.4256247Z stderr:
2020-03-27T07:54:28.4256613Z ------------------------------------------
2020-03-27T07:54:28.4257180Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f2688fc7f38, 2611768)
2020-03-27T07:54:28.4257886Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f26b167b14a, 20224)
2020-03-27T07:54:28.4258591Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f26b15da2b0, 12728)
2020-03-27T07:54:28.4259656Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f2674005480, 1936)
2020-03-27T07:54:28.4260423Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f26b165789e, 85408)
2020-03-27T07:54:28.4261134Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f26b16672f2, 1896)
2020-03-27T07:54:28.4261531Z extract_bitcode alloc.o (0x7f26b1667a96, 4184)
2020-03-27T07:54:28.4261773Z findBitcodeInObject failed
2020-03-27T07:54:28.4262043Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4262399Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4262801Z error: aborting due to previous error
2020-03-27T07:54:28.4262964Z 
2020-03-27T07:54:28.4263062Z 
2020-03-27T07:54:28.4263434Z ------------------------------------------
2020-03-27T07:54:28.4263434Z ------------------------------------------
2020-03-27T07:54:28.4263607Z 
2020-03-27T07:54:28.4263705Z 
2020-03-27T07:54:28.4264049Z ---- [ui] ui/fat-lto.rs stdout ----
2020-03-27T07:54:28.4264228Z 
2020-03-27T07:54:28.4264621Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4264877Z status: exit code: 1
2020-03-27T07:54:28.4266556Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/fat-lto.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/fat-lto/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Clto=fat" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/fat-lto/auxiliary"
2020-03-27T07:54:28.4268392Z ------------------------------------------
2020-03-27T07:54:28.4268566Z 
2020-03-27T07:54:28.4268924Z ------------------------------------------
2020-03-27T07:54:28.4269125Z stderr:
2020-03-27T07:54:28.4269125Z stderr:
2020-03-27T07:54:28.4269512Z ------------------------------------------
2020-03-27T07:54:28.4270086Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f79ddc19f38, 2611768)
2020-03-27T07:54:28.4270856Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f7a062c414a, 20224)
2020-03-27T07:54:28.4271521Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f7a062232b0, 12728)
2020-03-27T07:54:28.4272232Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f79d00080c0, 1936)
2020-03-27T07:54:28.4272935Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f7a062a089e, 85408)
2020-03-27T07:54:28.4273761Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f7a062b02f2, 1896)
2020-03-27T07:54:28.4274143Z extract_bitcode alloc.o (0x7f7a062b0a96, 4184)
2020-03-27T07:54:28.4274399Z findBitcodeInObject failed
2020-03-27T07:54:28.4274777Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4275163Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4275579Z error: aborting due to previous error
2020-03-27T07:54:28.4275742Z 
2020-03-27T07:54:28.4275840Z 
2020-03-27T07:54:28.4276222Z ------------------------------------------
2020-03-27T07:54:28.4276222Z ------------------------------------------
2020-03-27T07:54:28.4276394Z 
2020-03-27T07:54:28.4276490Z 
2020-03-27T07:54:28.4276859Z ---- [ui] ui/issues/issue-44056.rs stdout ----
2020-03-27T07:54:28.4277143Z 
2020-03-27T07:54:28.4277692Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4277948Z status: exit code: 1
2020-03-27T07:54:28.4286859Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-44056.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-44056" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-A" "unused" "-Ctarget-feature=+avx" "-Clto" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-44056/auxiliary"
2020-03-27T07:54:28.4289065Z ------------------------------------------
2020-03-27T07:54:28.4290480Z 
2020-03-27T07:54:28.4290945Z ------------------------------------------
2020-03-27T07:54:28.4291149Z stderr:
2020-03-27T07:54:28.4291149Z stderr:
2020-03-27T07:54:28.4291537Z ------------------------------------------
2020-03-27T07:54:28.4292109Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fa661ecff38, 2611768)
2020-03-27T07:54:28.4292800Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fa68a58014a, 20224)
2020-03-27T07:54:28.4294191Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fa68a4df2b0, 12728)
2020-03-27T07:54:28.4294983Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fa654007af0, 1936)
2020-03-27T07:54:28.4295752Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fa68a55c89e, 85408)
2020-03-27T07:54:28.4296460Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fa68a56c2f2, 1896)
2020-03-27T07:54:28.4296847Z extract_bitcode alloc.o (0x7fa68a56ca96, 4184)
2020-03-27T07:54:28.4297268Z findBitcodeInObject failed
2020-03-27T07:54:28.4297538Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4297879Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4298295Z error: aborting due to previous error
2020-03-27T07:54:28.4298539Z 
2020-03-27T07:54:28.4298638Z 
2020-03-27T07:54:28.4299029Z ------------------------------------------
2020-03-27T07:54:28.4299029Z ------------------------------------------
2020-03-27T07:54:28.4299203Z 
2020-03-27T07:54:28.4299301Z 
2020-03-27T07:54:28.4299686Z ---- [ui] ui/lto-many-codegen-units.rs stdout ----
2020-03-27T07:54:28.4299876Z 
2020-03-27T07:54:28.4300282Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4300539Z status: exit code: 1
2020-03-27T07:54:28.4303454Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lto-many-codegen-units.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-many-codegen-units/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto" "-C" "codegen-units=8" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-many-codegen-units/auxiliary"
2020-03-27T07:54:28.4304983Z ------------------------------------------
2020-03-27T07:54:28.4305157Z 
2020-03-27T07:54:28.4305516Z ------------------------------------------
2020-03-27T07:54:28.4305932Z stderr:
2020-03-27T07:54:28.4305932Z stderr:
2020-03-27T07:54:28.4306328Z ------------------------------------------
2020-03-27T07:54:28.4306898Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f4314f74f38, 2611768)
2020-03-27T07:54:28.4307590Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f433d62514a, 20224)
2020-03-27T07:54:28.4308312Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f433d5842b0, 12728)
2020-03-27T07:54:28.4309083Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f43000079a0, 1936)
2020-03-27T07:54:28.4309840Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f433d60189e, 85408)
2020-03-27T07:54:28.4310551Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f433d6112f2, 1896)
2020-03-27T07:54:28.4310933Z extract_bitcode alloc.o (0x7f433d611a96, 4184)
2020-03-27T07:54:28.4311194Z findBitcodeInObject failed
2020-03-27T07:54:28.4311467Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4311808Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4312223Z error: aborting due to previous error
2020-03-27T07:54:28.4312387Z 
2020-03-27T07:54:28.4312484Z 
2020-03-27T07:54:28.4312854Z ------------------------------------------
2020-03-27T07:54:28.4312854Z ------------------------------------------
2020-03-27T07:54:28.4313026Z 
2020-03-27T07:54:28.4313123Z 
2020-03-27T07:54:28.4313498Z ---- [ui] ui/lto-duplicate-symbols.rs stdout ----
2020-03-27T07:54:28.4313743Z diff of stderr:
2020-03-27T07:54:28.4313869Z 
2020-03-27T07:54:28.4314309Z - warning: Linking globals named 'foo': symbol multiply defined!
2020-03-27T07:54:28.4314687Z - 
2020-03-27T07:54:28.4315178Z - error: failed to load bc of "lto_duplicate_symbols2.3a1fbbbh-cgu.0": 
2020-03-27T07:54:28.4316091Z + extract_bitcode lto-duplicate-symbols2.lto_duplicate_symbols2.3a1fbbbh-cgu.0.rcgu.o (0x7fa494002c5e, 2504)
2020-03-27T07:54:28.4316829Z + extract_bitcode lto-duplicate-symbols1.lto_duplicate_symbols1.3a1fbbbh-cgu.0.rcgu.o (0x7fa494002c5e, 2504)
2020-03-27T07:54:28.4317527Z + extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fa49f2c9f38, 2611768)
2020-03-27T07:54:28.4318219Z + extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fa4c797a14a, 20224)
2020-03-27T07:54:28.4318928Z + extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fa4c78d92b0, 12728)
2020-03-27T07:54:28.4319721Z + extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fa494002ee0, 1936)
2020-03-27T07:54:28.4320467Z + extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fa4c795689e, 85408)
2020-03-27T07:54:28.4321199Z + extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fa4c79662f2, 1896)
2020-03-27T07:54:28.4321588Z + extract_bitcode alloc.o (0x7fa4c7966a96, 4184)
2020-03-27T07:54:28.4321844Z + findBitcodeInObject failed
2020-03-27T07:54:28.4322271Z + llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4322624Z + error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4323074Z 5 error: aborting due to previous error
2020-03-27T07:54:28.4323262Z 6 
2020-03-27T07:54:28.4323363Z 
2020-03-27T07:54:28.4323461Z 
2020-03-27T07:54:28.4323461Z 
2020-03-27T07:54:28.4323680Z The actual stderr differed from the expected stderr.
2020-03-27T07:54:28.4324368Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols/lto-duplicate-symbols.stderr
2020-03-27T07:54:28.4324999Z To update references, rerun the tests and pass the `--bless` flag
2020-03-27T07:54:28.4325588Z To only update this specific test, also pass `--test-args lto-duplicate-symbols.rs`
2020-03-27T07:54:28.4326024Z error: 1 errors occurred comparing output.
2020-03-27T07:54:28.4326330Z status: exit code: 1
2020-03-27T07:54:28.4326330Z status: exit code: 1
2020-03-27T07:54:28.4328365Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lto-duplicate-symbols.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-A" "unused" "-C" "lto" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols/auxiliary"
2020-03-27T07:54:28.4330026Z ------------------------------------------
2020-03-27T07:54:28.4330202Z 
2020-03-27T07:54:28.4330559Z ------------------------------------------
2020-03-27T07:54:28.4330905Z stderr:
2020-03-27T07:54:28.4330905Z stderr:
2020-03-27T07:54:28.4331284Z ------------------------------------------
2020-03-27T07:54:28.4331897Z extract_bitcode lto-duplicate-symbols2.lto_duplicate_symbols2.3a1fbbbh-cgu.0.rcgu.o (0x7fa494002c5e, 2504)
2020-03-27T07:54:28.4332635Z extract_bitcode lto-duplicate-symbols1.lto_duplicate_symbols1.3a1fbbbh-cgu.0.rcgu.o (0x7fa494002c5e, 2504)
2020-03-27T07:54:28.4333311Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7fa49f2c9f38, 2611768)
2020-03-27T07:54:28.4334010Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7fa4c797a14a, 20224)
2020-03-27T07:54:28.4334840Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7fa4c78d92b0, 12728)
2020-03-27T07:54:28.4335609Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7fa494002ee0, 1936)
2020-03-27T07:54:28.4336458Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7fa4c795689e, 85408)
2020-03-27T07:54:28.4337300Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7fa4c79662f2, 1896)
2020-03-27T07:54:28.4337691Z extract_bitcode alloc.o (0x7fa4c7966a96, 4184)
2020-03-27T07:54:28.4338063Z findBitcodeInObject failed
2020-03-27T07:54:28.4338431Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4338751Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4339138Z error: aborting due to previous error
2020-03-27T07:54:28.4339291Z 
2020-03-27T07:54:28.4339381Z 
2020-03-27T07:54:28.4339737Z ------------------------------------------
2020-03-27T07:54:28.4339737Z ------------------------------------------
2020-03-27T07:54:28.4339896Z 
2020-03-27T07:54:28.4339987Z 
2020-03-27T07:54:28.4340554Z ---- [ui] ui/lto-still-runs-thread-dtors.rs stdout ----
2020-03-27T07:54:28.4340749Z 
2020-03-27T07:54:28.4341152Z error: test compilation failed although it shouldn't!
2020-03-27T07:54:28.4341409Z status: exit code: 1
2020-03-27T07:54:28.4343351Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lto-still-runs-thread-dtors.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-still-runs-thread-dtors/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-C" "lto" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-still-runs-thread-dtors/auxiliary"
2020-03-27T07:54:28.4344885Z ------------------------------------------
2020-03-27T07:54:28.4345184Z 
2020-03-27T07:54:28.4345554Z ------------------------------------------
2020-03-27T07:54:28.4345756Z stderr:
2020-03-27T07:54:28.4345756Z stderr:
2020-03-27T07:54:28.4346136Z ------------------------------------------
2020-03-27T07:54:28.4346699Z extract_bitcode std-0bc6d41fddd2f7ce.std.84bs9ali-cgu.0.rcgu.o (0x7f190dd0ef38, 2611768)
2020-03-27T07:54:28.4347386Z extract_bitcode panic_unwind-31ab1f37cc7fbcf0.panic_unwind.1bwjg4nk-cgu.0.rcgu.o (0x7f19363c214a, 20224)
2020-03-27T07:54:28.4348296Z extract_bitcode hashbrown-1c500a2819dcae4a.hashbrown.akdfvttc-cgu.0.rcgu.o (0x7f19363212b0, 12728)
2020-03-27T07:54:28.4349120Z extract_bitcode rustc_std_workspace_alloc-cc7c8bb5cd024239.rustc_std_workspace_alloc.7m72glyb-cgu.0.rcgu.o (0x7f190000a4c0, 1936)
2020-03-27T07:54:28.4349879Z extract_bitcode backtrace-706fb6c46eadc49e.backtrace.pf6hyhs1-cgu.0.rcgu.o (0x7f193639e89e, 85408)
2020-03-27T07:54:28.4350591Z extract_bitcode backtrace_sys-d91e36c724ec230c.backtrace_sys.6f5mhp24-cgu.0.rcgu.o (0x7f19363ae2f2, 1896)
2020-03-27T07:54:28.4350970Z extract_bitcode alloc.o (0x7f19363aea96, 4184)
2020-03-27T07:54:28.4351226Z findBitcodeInObject failed
2020-03-27T07:54:28.4351495Z llvm lastError Some("Bitcode section not found in object file")
2020-03-27T07:54:28.4351838Z error: failed to extract bitcode from the object file for LTO module
2020-03-27T07:54:28.4352253Z error: aborting due to previous error
2020-03-27T07:54:28.4352418Z 
---
2020-03-27T07:54:28.4433584Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-03-27T07:54:28.4434000Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-03-27T07:54:28.4434234Z 
2020-03-27T07:54:28.4434346Z 
2020-03-27T07:54:28.4438049Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-03-27T07:54:28.4440754Z 
2020-03-27T07:54:28.4440845Z 
2020-03-27T07:54:28.4441308Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
2020-03-27T07:54:28.4441674Z Build completed unsuccessfully in 1:00:13
2020-03-27T07:54:28.4441674Z Build completed unsuccessfully in 1:00:13
2020-03-27T07:54:28.4441905Z == clock drift check ==
2020-03-27T07:54:28.4442133Z   local time: Fri Mar 27 07:54:28 UTC 2020
2020-03-27T07:54:28.6998145Z   network time: Fri, 27 Mar 2020 07:54:28 GMT
2020-03-27T07:54:28.7006522Z == end clock drift check ==
2020-03-27T07:54:29.1313716Z 
2020-03-27T07:54:29.1377372Z ##[error]Bash exited with code '1'.
2020-03-27T07:54:29.1393159Z ##[section]Finishing: Run build
2020-03-27T07:54:29.1442735Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T07:54:29.1448270Z Task         : Get sources
2020-03-27T07:54:29.1448667Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-27T07:54:29.1449043Z Version      : 1.0.0
2020-03-27T07:54:29.1449297Z Author       : Microsoft
2020-03-27T07:54:29.1449297Z Author       : Microsoft
2020-03-27T07:54:29.1449695Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-27T07:54:29.1450188Z ==============================================================================
2020-03-27T07:54:29.4597902Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-27T07:54:29.4652269Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T07:54:29.4737657Z Cleaning up task key
2020-03-27T07:54:29.4738905Z Start cleaning up orphan processes.
2020-03-27T07:54:29.4906923Z Terminate orphan process: pid (3440) (python)
2020-03-27T07:54:29.5051353Z ##[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 @rust-lang/infra. (Feature Requests)

@Zoxc
Copy link
Contributor

Zoxc commented Mar 27, 2020

What's the motivation behind this? Wouldn't this cause more work for linkers?

@nnethercote
Copy link
Contributor Author

nnethercote commented Mar 27, 2020

By default will slow things down slightly, because it's storing uncompressed bitcode instead of bitcode. But the plan is to change Cargo to use the -Cembed-bitcode=no flag whenever possible (i.e. when not performing LTO) so that bitcode is only included when necessary, which leads to significant speed and disk space wins. See #66961 for details.

src/librustc_codegen_llvm/back/lto.rs Outdated Show resolved Hide resolved
src/librustc_codegen_llvm/back/lto.rs Outdated Show resolved Hide resolved
src/rustllvm/PassWrapper.cpp Outdated Show resolved Hide resolved
@alexcrichton
Copy link
Member

@nnethercote for perf data, could you collect data for embedding bitcode by default and not embedding bitcode by default? I'm curious to see how bad this is as-is and how good it's gonna get when Cargo passes the flag.

It's also worth pointing out that before landing I think we'll want a stable -C flag Cargo can used so we can land something in Cargo quickly to make use of this.

@nnethercote
Copy link
Contributor Author

I will definitely collect perf data once I have this working a little better. Here is the old perf data showing the no-bitcode case; hopefully I will get similar results when I re-measure.

@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-03-27T22:24:19.7790982Z ========================== Starting Command Output ===========================
2020-03-27T22:24:19.7793405Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/c4ad6f10-7d30-40d4-a506-9e8054ea14d4.sh
2020-03-27T22:24:19.7793675Z 
2020-03-27T22:24:19.7797378Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-27T22:24:19.7816579Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T22:24:19.7819793Z Task         : Get sources
2020-03-27T22:24:19.7820098Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-27T22:24:19.7820411Z Version      : 1.0.0
2020-03-27T22:24:19.7820609Z Author       : Microsoft
---
2020-03-27T22:24:20.7758972Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-27T22:24:20.7770867Z ##[command]git config gc.auto 0
2020-03-27T22:24:20.7774732Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-27T22:24:20.7778016Z ##[command]git config --get-all http.proxy
2020-03-27T22:24:20.7784366Z ##[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/70458/merge:refs/remotes/pull/70458/merge
---
2020-03-27T22:31:36.2323126Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-27T22:31:37.7829575Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-27T22:31:38.3701214Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-27T22:31:47.3944762Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-27T22:31:49.0760130Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-27T22:31:50.4753748Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-27T22:31:58.8488152Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
2020-03-27T22:32:29.7449200Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-27T22:33:02.7089616Z    Compiling rustc_infer v0.0.0 (/checkout/src/librustc_infer)
2020-03-27T22:34:47.5960699Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
2020-03-27T22:53:32.1237218Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-27T22:53:34.0984237Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-27T22:53:34.9899168Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-27T22:53:46.1841716Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-27T22:53:48.1276914Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-27T22:53:49.6192447Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-27T22:54:00.2181227Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
2020-03-27T22:54:40.0136394Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-27T22:55:22.9689144Z    Compiling rustc_infer v0.0.0 (/checkout/src/librustc_infer)
2020-03-27T22:57:28.0815106Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
2020-03-27T23:19:07.8950792Z .................................................................................................... 1700/9849
2020-03-27T23:19:11.9951843Z .................................................................................................... 1800/9849
2020-03-27T23:19:22.2620234Z .........................................................................................i.......... 1900/9849
2020-03-27T23:19:29.2585118Z .................................................................................................... 2000/9849
2020-03-27T23:19:35.7730764Z ...............................................................................iiiii................ 2100/9849
2020-03-27T23:19:57.0546911Z .................................................................................................... 2300/9849
2020-03-27T23:19:59.2570467Z .................................................................................................... 2400/9849
2020-03-27T23:20:01.7669891Z .................................................................................................... 2500/9849
2020-03-27T23:20:11.2221730Z .................................................................................................... 2600/9849
---
2020-03-27T23:23:04.0000299Z .....................................................i...............i.............................. 5000/9849
2020-03-27T23:23:12.6822657Z .................................................................................................... 5100/9849
2020-03-27T23:23:19.7185175Z ..................................................................................................i. 5200/9849
2020-03-27T23:23:25.0360062Z .................................................................................................... 5300/9849
2020-03-27T23:23:35.7624691Z ...................................................................................ii.ii........i... 5400/9849
2020-03-27T23:23:39.4471447Z i................................................................................................... 5500/9849
2020-03-27T23:23:43.2028878Z .......................i............................................................................ 5600/9849
2020-03-27T23:23:49.1443400Z ............................i......................................................................1 warning: Linking globals named 'foo': symbol multiply defined!
2020-03-27T23:23:49.1448169Z 2 
2020-03-27T23:23:49.1449135Z - error: failed to load bc of "lto_duplicate_symbols2.3a1fbbbh-cgu.0": 
2020-03-27T23:23:49.1450020Z + error: failed to load bc of "lto-duplicate-symbols2.lto_duplicate_symbols2.3a1fbbbh-cgu.0.rcgu.o": 
2020-03-27T23:23:49.1451600Z 5 error: aborting due to previous error
2020-03-27T23:23:49.1452254Z 6 
2020-03-27T23:23:49.1452383Z 
2020-03-27T23:23:49.1476868Z F 5700/9849
2020-03-27T23:23:49.1476868Z F 5700/9849
2020-03-27T23:23:58.4855899Z .............................................ii....................................i................ 5800/9849
2020-03-27T23:24:05.9161742Z .................................................................................................... 5900/9849
2020-03-27T23:24:11.2265833Z .................................................................................................... 6000/9849
2020-03-27T23:24:20.3150677Z .............................................................................ii...i..ii...........i. 6100/9849
2020-03-27T23:24:41.1070858Z .................................................................................................... 6300/9849
2020-03-27T23:24:45.2180445Z .................................................................................................... 6400/9849
2020-03-27T23:24:48.7024638Z .................................................................................................... 6500/9849
2020-03-27T23:24:48.7024638Z .................................................................................................... 6500/9849
2020-03-27T23:25:00.5634119Z .......i..ii........................................................................................ 6600/9849
2020-03-27T23:25:20.1655442Z .................................................................................................... 6800/9849
2020-03-27T23:25:22.2552383Z .......i............................................................................................ 6900/9849
2020-03-27T23:25:24.4817022Z .................................................................................................... 7000/9849
2020-03-27T23:25:26.8109992Z ...........................................i........................................................ 7100/9849
---
2020-03-27T23:26:59.7940756Z .................................................................................................... 7700/9849
2020-03-27T23:27:04.7586364Z .................................................................................................... 7800/9849
2020-03-27T23:27:09.6002677Z .................................................................................................... 7900/9849
2020-03-27T23:27:16.6593641Z .................................................................................................... 8000/9849
2020-03-27T23:27:24.0962824Z i................................................................................................... 8100/9849
2020-03-27T23:27:31.8278845Z .................................................iiiiiiiiii.i....................................... 8200/9849
2020-03-27T23:27:45.5287548Z i................................................................................................... 8400/9849
2020-03-27T23:27:50.5685129Z .................................................................................................... 8500/9849
2020-03-27T23:28:03.4762624Z .................................................................................................... 8600/9849
2020-03-27T23:28:12.6048347Z .................................................................................................... 8700/9849
---
2020-03-27T23:30:04.2819173Z 
2020-03-27T23:30:04.2819377Z 
2020-03-27T23:30:04.2819714Z The actual stderr differed from the expected stderr.
2020-03-27T23:30:04.2820544Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols/lto-duplicate-symbols.stderr
2020-03-27T23:30:04.2821324Z To update references, rerun the tests and pass the `--bless` flag
2020-03-27T23:30:04.2822076Z To only update this specific test, also pass `--test-args lto-duplicate-symbols.rs`
2020-03-27T23:30:04.2822735Z error: 1 errors occurred comparing output.
2020-03-27T23:30:04.2823513Z status: exit code: 1
2020-03-27T23:30:04.2823513Z status: exit code: 1
2020-03-27T23:30:04.2825934Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lto-duplicate-symbols.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-A" "unused" "-C" "lto" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lto-duplicate-symbols/auxiliary"
2020-03-27T23:30:04.2828202Z ------------------------------------------
2020-03-27T23:30:04.2828573Z 
2020-03-27T23:30:04.2828949Z ------------------------------------------
2020-03-27T23:30:04.2829153Z stderr:
2020-03-27T23:30:04.2829153Z stderr:
2020-03-27T23:30:04.2829537Z ------------------------------------------
2020-03-27T23:30:04.2830128Z warning: Linking globals named 'foo': symbol multiply defined!
2020-03-27T23:30:04.2830356Z 
2020-03-27T23:30:04.2830947Z error: failed to load bc of "lto-duplicate-symbols2.lto_duplicate_symbols2.3a1fbbbh-cgu.0.rcgu.o": 
2020-03-27T23:30:04.2831452Z error: aborting due to previous error
2020-03-27T23:30:04.2831618Z 
2020-03-27T23:30:04.2831730Z 
2020-03-27T23:30:04.2832088Z ------------------------------------------
---
2020-03-27T23:30:04.2843474Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-03-27T23:30:04.2843908Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-03-27T23:30:04.2854984Z 
2020-03-27T23:30:04.2855133Z 
2020-03-27T23:30:04.2859022Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-03-27T23:30:04.2863987Z 
2020-03-27T23:30:04.2864089Z 
2020-03-27T23:30:04.2865086Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
2020-03-27T23:30:04.2865474Z Build completed unsuccessfully in 1:01:57
2020-03-27T23:30:04.2865474Z Build completed unsuccessfully in 1:01:57
2020-03-27T23:30:04.2917938Z == clock drift check ==
2020-03-27T23:30:04.2934218Z   local time: Fri Mar 27 23:30:04 UTC 2020
2020-03-27T23:30:04.3841917Z   network time: Fri, 27 Mar 2020 23:30:04 GMT
2020-03-27T23:30:04.3842457Z == end clock drift check ==
2020-03-27T23:30:04.8530358Z 
2020-03-27T23:30:04.8570844Z ##[error]Bash exited with code '1'.
2020-03-27T23:30:04.8586755Z ##[section]Finishing: Run build
2020-03-27T23:30:04.8638329Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T23:30:04.8643344Z Task         : Get sources
2020-03-27T23:30:04.8643688Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-27T23:30:04.8644018Z Version      : 1.0.0
2020-03-27T23:30:04.8644247Z Author       : Microsoft
2020-03-27T23:30:04.8644247Z Author       : Microsoft
2020-03-27T23:30:04.8644601Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-27T23:30:04.8645019Z ==============================================================================
2020-03-27T23:30:05.1960423Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-27T23:30:05.1964545Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-27T23:30:05.2060016Z Cleaning up task key
2020-03-27T23:30:05.2061336Z Start cleaning up orphan processes.
2020-03-27T23:30:05.2237551Z Terminate orphan process: pid (3481) (python)
2020-03-27T23:30:05.2405756Z ##[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 @rust-lang/infra. (Feature Requests)

@bjorn3
Copy link
Member

bjorn3 commented Mar 29, 2020

I think this will make cg_clif "just work ™️" when -Clto=yes is used, as the object files are no longer removed from the linker input by cg_ssa/back/link.rs. It still won't do any actual LTO, but at least it shouldn't give a linker error anymore.

@nnethercote
Copy link
Contributor Author

@alexcrichton: New code is up, it's much better than what I had before. It passes all tests on my Linux box. There is one unresolved issue relating to bitcode marker sections, marked with a "njn:" comment in the code. Plus we still have to work out the story with wasm.

@nnethercote
Copy link
Contributor Author

Let's see the change in instruction counts for clean debug and opt builds. Below I've included all the cases where the change was at least +/-1%.

First, the change as is, with uncompressed bitcode replacing compressed bitcode. It's a mix of regressions and improvements, with the largest regressions being bigger than the largest improvements.

coercions-debug
        avg: 19.3%?     min: 19.3%?     max: 19.3%?
deep-vector-debug
        avg: 13.4%      min: 13.4%      max: 13.4%
tokio-webpush-simple-debug
        avg: 13.3%      min: 13.3%      max: 13.3%
webrender-wrench-debug
        avg: 12.3%      min: 12.3%      max: 12.3%
ripgrep-debug
        avg: 10.5%      min: 10.5%      max: 10.5%
serde-serde_derive-debug
        avg: 8.6%       min: 8.6%       max: 8.6%
issue-46449-debug
        avg: -5.3%      min: -5.3%      max: -5.3%
regression-31157-debug
        avg: -4.3%      min: -4.3%      max: -4.3%
webrender-debug
        avg: -3.8%      min: -3.8%      max: -3.8%
syn-debug
        avg: -3.6%      min: -3.6%      max: -3.6%
cargo-debug
        avg: -3.5%      min: -3.5%      max: -3.5%
piston-image-debug
        avg: -3.2%      min: -3.2%      max: -3.2%
regex-debug
        avg: -3.1%      min: -3.1%      max: -3.1%
deeply-nested-debug
        avg: -3.0%      min: -3.0%      max: -3.0%
hyper-2-debug
        avg: -3.0%      min: -3.0%      max: -3.0%
encoding-debug
        avg: -3.0%      min: -3.0%      max: -3.0%
clap-rs-debug
        avg: -2.7%      min: -2.7%      max: -2.7%
tuple-stress-debug
        avg: 2.6%       min: 2.6%       max: 2.6%
unify-linearly-debug
        avg: 2.4%       min: 2.4%       max: 2.4%
helloworld-debug
        avg: 1.7%       min: 1.7%       max: 1.7% 
ripgrep-opt
        avg: 1.6%       min: 1.6%       max: 1.6%
futures-debug
        avg: -1.4%      min: -1.4%      max: -1.4%
html5ever-debug
        avg: -1.4%      min: -1.4%      max: -1.4%
webrender-wrench-opt
        avg: 1.4%       min: 1.4%       max: 1.4%
webrender-opt
        avg: -1.4%      min: -1.4%      max: -1.4%
encoding-opt
        avg: -1.4%      min: -1.4%      max: -1.4%
cranelift-codegen-opt
        avg: -1.3%      min: -1.3%      max: -1.3%
inflate-debug
        avg: -1.2%      min: -1.2%      max: -1.2%
await-call-tree-debug
        avg: -1.1%      min: -1.1%      max: -1.1%
ctfe-stress-4-opt
        avg: -1.1%?     min: -1.1%?     max: -1.1%?
tokio-webpush-simple-opt
        avg: 1.0%       min: 1.0%       max: 1.0%

Next, the change with RUSTFLAGS=-Zno-embed-bitcode set in the perf harness code, giving no bitcode. Lots of big improvements, very similar to the old results, if anything slightly better, perhaps because the compiler has gotten a little faster overall since those old results were taken in November 2019.

issue-46449-debug
        avg: -18.9%     min: -18.9%     max: -18.9%
regression-31157-debug
        avg: -18.0%     min: -18.0%     max: -18.0%
webrender-debug
        avg: -16.2%     min: -16.2%     max: -16.2%
syn-debug
        avg: -14.9%     min: -14.9%     max: -14.9%
cargo-debug
        avg: -14.9%     min: -14.9%     max: -14.9%
piston-image-debug
        avg: -13.8%     min: -13.8%     max: -13.8%
regex-debug
        avg: -12.8%     min: -12.8%     max: -12.8%
cranelift-codegen-debug
        avg: -12.5%     min: -12.5%     max: -12.5%
encoding-debug
        avg: -12.4%     min: -12.4%     max: -12.4%
html5ever-debug
        avg: -12.3%     min: -12.3%     max: -12.3%
clap-rs-debug
        avg: -11.9%     min: -11.9%     max: -11.9%
hyper-2-debug
        avg: -11.6%     min: -11.6%     max: -11.6%
deeply-nested-debug
        avg: -11.3%     min: -11.3%     max: -11.3%
futures-debug
        avg: -5.9%      min: -5.9%      max: -5.9%
inflate-debug
        avg: -4.5%      min: -4.5%      max: -4.5%
html5ever-opt
        avg: -4.4%      min: -4.4%      max: -4.4%
ucd-debug
        avg: -4.2%      min: -4.2%      max: -4.2%
ctfe-stress-4-opt
        avg: -4.0%?     min: -4.0%?     max: -4.0%?
await-call-tree-debug
        avg: -3.9%      min: -3.9%      max: -3.9%
webrender-opt
        avg: -3.6%      min: -3.6%      max: -3.6%
cranelift-codegen-opt
        avg: -3.4%      min: -3.4%      max: -3.4%
ucd-opt
        avg: -3.3%      min: -3.3%      max: -3.3%
encoding-opt
        avg: -3.2%      min: -3.2%      max: -3.2%
ctfe-stress-4-debug
        avg: -3.1%?     min: -3.1%?     max: -3.1%?
issue-46449-opt
        avg: -2.1%      min: -2.1%      max: -2.1%
hyper-2-opt
        avg: -1.9%      min: -1.9%      max: -1.9%
deeply-nested-opt
        avg: -1.8%      min: -1.8%      max: -1.8%
regression-31157-opt
        avg: -1.6%      min: -1.6%      max: -1.6%
cargo-opt
        avg: -1.6%      min: -1.6%      max: -1.6%
syn-opt
        avg: -1.6%?     min: -1.6%?     max: -1.6%?
piston-image-opt
        avg: -1.5%      min: -1.5%      max: -1.5%
clap-rs-opt
        avg: -1.5%      min: -1.5%      max: -1.5%
regex-opt
        avg: -1.3%      min: -1.3%      max: -1.3%
ripgrep-debug
        avg: -1.1%      min: -1.1%      max: -1.1%
tokio-webpush-simple-debug
        avg: -1.1%      min: -1.1%      max: -1.1%
webrender-wrench-debug
        avg: -1.1%      min: -1.1%      max: -1.1%
futures-opt
        avg: -1.1%      min: -1.1%      max: -1.1%
keccak-debug
        avg: -1.0%      min: -1.0%      max: -1.0%
serde-debug
        avg: -1.0%      min: -1.0%      max: -1.0%
inflate-opt
        avg: -1.0%?     min: -1.0%?     max: -1.0%?

@nnethercote
Copy link
Contributor Author

As for disk space, I measured the size of the 66 rlibs produced for fix-stacks, a moderate-sized Rust program.

  • Original: 90,174,360 B
  • With uncompressed bitcode instead of compressed bitcode: 105,443,432 B (+16.9% over original)
  • With no bitcode: 73,418,654 B (-18.6% over original)

@alexcrichton
Copy link
Member

Plus we still have to work out the story with wasm.

I'll take a look at this today

with uncompressed bitcode replacing compressed bitcode

I'm actually curious, why is this slower? I thought the only thing we're doing is avoiding compression, so I would expect this to also be faster across the board (just bigger on disk)

@bjorn3
Copy link
Member

bjorn3 commented Mar 30, 2020

Compile times are way more sensitive to I/O performance than I expected. https://github.com/bjorn3/rustc_codegen_cranelift/issues/865#issuecomment-574747252 is an instance where using an SSD is 2x as fast as using an NFS mount. (This is with cg_llvm, not just cg_clif)

src/librustc_codegen_llvm/back/lto.rs Outdated Show resolved Hide resolved
src/librustc_codegen_ssa/back/write.rs Outdated Show resolved Hide resolved
@alexcrichton
Copy link
Member

Ok it's not exactly the prettiest thing in the world, but I've pushed up an implementation that supports wasm. Like most things along these lines it'll look a lot nicer once we get official LLD support for a feature like this because then we can just delete all of the code :)

@alexcrichton
Copy link
Member

I've filed an issue for upstream support here on wasm

@rust-highfive
Copy link
Collaborator

The job mingw-check 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-03-30T17:38:52.2041223Z ========================== Starting Command Output ===========================
2020-03-30T17:38:52.2044173Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/d3b0b8fa-6790-47f8-8001-fa79725ed9db.sh
2020-03-30T17:38:52.2044449Z 
2020-03-30T17:38:52.2049924Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-30T17:38:52.2069684Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-30T17:38:52.2072970Z Task         : Get sources
2020-03-30T17:38:52.2073283Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-30T17:38:52.2073586Z Version      : 1.0.0
2020-03-30T17:38:52.2073791Z Author       : Microsoft
---
2020-03-30T17:38:53.4768512Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-30T17:38:53.4780791Z ##[command]git config gc.auto 0
2020-03-30T17:38:53.4784807Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-30T17:38:53.4788374Z ##[command]git config --get-all http.proxy
2020-03-30T17:38:53.4795882Z ##[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/70458/merge:refs/remotes/pull/70458/merge
---
2020-03-30T17:42:15.1937017Z  ---> 3fc1b512c57b
2020-03-30T17:42:15.1937263Z Step 6/7 : ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
2020-03-30T17:42:15.1937648Z  ---> Using cache
2020-03-30T17:42:15.1937983Z  ---> 5ee4295733f4
2020-03-30T17:42:15.1939376Z Step 7/7 : ENV SCRIPT python2.7 ../x.py test src/tools/expand-yaml-anchors &&            python2.7 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu &&            python2.7 ../x.py build --stage 0 src/tools/build-manifest &&            python2.7 ../x.py test --stage 0 src/tools/compiletest &&            python2.7 ../x.py test src/tools/tidy &&            /scripts/validate-toolstate.sh
2020-03-30T17:42:15.1981232Z  ---> 3d07a0fa42fe
2020-03-30T17:42:15.1981453Z Successfully built 3d07a0fa42fe
2020-03-30T17:42:15.2063735Z Successfully tagged rust-ci:latest
2020-03-30T17:42:15.3068229Z Built container sha256:3d07a0fa42feb5754fc13bb2f7010ebe13e4b8b8cdbebed0c75d8da320c8c8ad
---
2020-03-30T17:45:58.9936989Z     Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
2020-03-30T17:45:59.5660162Z     Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-30T17:45:59.5666410Z     Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-30T17:45:59.5667080Z     Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-30T17:45:59.9323244Z     Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-30T17:46:02.1681547Z     Checking rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-30T17:46:02.6283113Z     Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-30T17:46:04.6755498Z     Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-30T17:46:05.0992075Z     Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
2020-03-30T17:47:52.4818527Z configure: build.locked-deps    := True
2020-03-30T17:47:52.4818823Z configure: llvm.ccache          := sccache
2020-03-30T17:47:52.4819341Z configure: build.cargo-native-static := True
2020-03-30T17:47:52.4819839Z configure: dist.missing-tools   := True
2020-03-30T17:47:52.4820438Z configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
2020-03-30T17:47:52.4821009Z configure: writing `config.toml` in current directory
2020-03-30T17:47:52.4821248Z configure: 
2020-03-30T17:47:52.4821658Z configure: run `python /checkout/x.py --help`
2020-03-30T17:47:52.4821884Z configure: 
---
2020-03-30T17:49:17.6729357Z Hugepagesize:       2048 kB
2020-03-30T17:49:17.6729773Z DirectMap4k:      133056 kB
2020-03-30T17:49:17.6729994Z DirectMap2M:     4061184 kB
2020-03-30T17:49:17.6730212Z DirectMap1G:     5242880 kB
2020-03-30T17:49:17.6803576Z + python2.7 ../x.py test src/tools/expand-yaml-anchors
2020-03-30T17:49:19.0488748Z Ensuring the YAML anchors in the GitHub Actions config were expanded
2020-03-30T17:49:19.0488748Z Ensuring the YAML anchors in the GitHub Actions config were expanded
2020-03-30T17:49:19.0534457Z Building stage0 tool expand-yaml-anchors (x86_64-unknown-linux-gnu)
2020-03-30T17:49:19.2912713Z    Compiling unicode-xid v0.2.0
2020-03-30T17:49:19.4230146Z    Compiling syn v1.0.11
2020-03-30T17:49:20.2566687Z    Compiling linked-hash-map v0.5.2
2020-03-30T17:49:20.3022766Z    Compiling lazy_static v1.4.0
2020-03-30T17:49:20.3022766Z    Compiling lazy_static v1.4.0
2020-03-30T17:49:20.4872443Z    Compiling yaml-rust v0.4.3
2020-03-30T17:49:24.8188342Z    Compiling quote v1.0.2
2020-03-30T17:49:39.2172703Z    Compiling thiserror-impl v1.0.5
2020-03-30T17:49:43.9253359Z    Compiling thiserror v1.0.5
2020-03-30T17:49:43.9901298Z    Compiling yaml-merge-keys v0.4.0
2020-03-30T17:49:45.1405372Z    Compiling expand-yaml-anchors v0.1.0 (/checkout/src/tools/expand-yaml-anchors)
2020-03-30T17:49:48.7051722Z Build completed successfully in 0:00:30
2020-03-30T17:49:48.7058711Z + python2.7 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu
2020-03-30T17:49:48.9451617Z     Finished dev [unoptimized] target(s) in 0.17s
2020-03-30T17:49:50.0441919Z Checking rustdoc artifacts (x86_64-unknown-linux-gnu -> i686-pc-windows-gnu)
---
2020-03-30T17:51:52.7017751Z     Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
2020-03-30T17:51:52.9067968Z     Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-30T17:51:53.0973898Z     Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-30T17:51:53.1097938Z     Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-30T17:51:53.7165824Z     Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-30T17:51:55.9820085Z     Checking rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-30T17:51:56.4710832Z     Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-30T17:51:58.5189308Z     Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-30T17:51:58.9544287Z     Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
2020-03-30T17:55:57.3204913Z skip untracked path cpu-usage.csv during rustfmt invocations
2020-03-30T17:55:57.3205668Z skip untracked path src/doc/book/ during rustfmt invocations
2020-03-30T17:55:57.3208291Z skip untracked path src/doc/rust-by-example/ during rustfmt invocations
2020-03-30T17:55:57.3222043Z skip untracked path src/llvm-project/ during rustfmt invocations
2020-03-30T17:56:01.1366946Z Diff in /checkout/src/librustc_codegen_llvm/back/lto.rs at line 16:
2020-03-30T17:56:01.1367381Z  use rustc_middle::bug;
2020-03-30T17:56:01.1367654Z  use rustc_middle::dep_graph::WorkProduct;
2020-03-30T17:56:01.1367992Z  use rustc_middle::middle::exported_symbols::SymbolExportLevel;
2020-03-30T17:56:01.1369018Z -use rustc_session::cgu_reuse_tracker::CguReuse;
2020-03-30T17:56:01.1369305Z  use rustc_serialize::leb128;
2020-03-30T17:56:01.1369584Z +use rustc_session::cgu_reuse_tracker::CguReuse;
2020-03-30T17:56:01.1369900Z  use rustc_session::config::{self, Lto};
2020-03-30T17:56:01.1370099Z  
2020-03-30T17:56:01.1370280Z  use std::ffi::{CStr, CString};
2020-03-30T17:56:01.1382272Z Running `"/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/rustfmt" "--config-path" "/checkout" "--edition" "2018" "--unstable-features" "--skip-children" "--check" "/checkout/src/librustc_codegen_llvm/back/lto.rs"` failed.
2020-03-30T17:56:01.1383286Z If you're running `tidy`, try again with `--bless` flag. Or, you just want to format code, run `./x.py fmt` instead.
2020-03-30T17:56:01.1398696Z Build completed unsuccessfully in 0:00:39
2020-03-30T17:56:01.1449980Z == clock drift check ==
2020-03-30T17:56:01.1469360Z   local time: Mon Mar 30 17:56:01 UTC 2020
2020-03-30T17:56:01.1712051Z   network time: Diff in /checkout/src/librustc_codegen_llvm/back/write.rs at line 19:
2020-03-30T17:56:01.1712051Z   network time: Diff in /checkout/src/librustc_codegen_llvm/back/write.rs at line 19:
2020-03-30T17:56:01.1712499Z  use rustc_data_structures::small_c_str::SmallCStr;
2020-03-30T17:56:01.1712812Z  use rustc_errors::{FatalError, Handler};
2020-03-30T17:56:01.1713200Z  use rustc_fs_util::{link_or_copy, path_to_c_string};
2020-03-30T17:56:01.1714213Z -use rustc_serialize::leb128;
2020-03-30T17:56:01.1714718Z  use rustc_middle::bug;
2020-03-30T17:56:01.1714965Z  use rustc_middle::ty::TyCtxt;
2020-03-30T17:56:01.1715313Z Diff in /checkout/src/librustc_codegen_llvm/back/write.rs at line 26:
2020-03-30T17:56:01.1715313Z Diff in /checkout/src/librustc_codegen_llvm/back/write.rs at line 26:
2020-03-30T17:56:01.1715636Z +use rustc_serialize::leb128;
2020-03-30T17:56:01.1716006Z  use rustc_session::config::{self, Lto, OutputType, Passes, Sanitizer, SwitchWithOptPath};
2020-03-30T17:56:01.1716527Z  
2020-03-30T17:56:01.1716782Z Diff in /checkout/src/librustc_codegen_llvm/back/write.rs at line 948:
2020-03-30T17:56:01.1717077Z              .filter_map(|val| {
2020-03-30T17:56:01.1717381Z                  // Exclude some symbols that we know are not Rust symbols.
2020-03-30T17:56:01.1717381Z                  // Exclude some symbols that we know are not Rust symbols.
2020-03-30T17:56:01.1717754Z                  let name = llvm::get_value_name(val);
2020-03-30T17:56:01.1718259Z -                if ignored(name) {
2020-03-30T17:56:01.1719052Z -                } else {
2020-03-30T17:56:01.1719467Z -                    Some((val, name))
2020-03-30T17:56:01.1719847Z -                }
2020-03-30T17:56:01.1719847Z -                }
2020-03-30T17:56:01.1720134Z +                if ignored(name) { None } else { Some((val, name)) }
2020-03-30T17:56:01.1720599Z              })
2020-03-30T17:56:01.1726318Z              .map(move |(val, name)| {
2020-03-30T17:56:01.1726835Z                  let mut imp_name = prefix.as_bytes().to_vec();
2020-03-30T17:56:01.1727473Z == end clock drift check ==
2020-03-30T17:56:02.7098203Z 
2020-03-30T17:56:02.7098203Z 
2020-03-30T17:56:02.7164917Z ##[error]Bash exited with code '1'.
2020-03-30T17:56:02.7178947Z ##[section]Finishing: Run build
2020-03-30T17:56:02.7224784Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-30T17:56:02.7229544Z Task         : Get sources
2020-03-30T17:56:02.7229892Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-30T17:56:02.7230228Z Version      : 1.0.0
2020-03-30T17:56:02.7230450Z Author       : Microsoft
2020-03-30T17:56:02.7230450Z Author       : Microsoft
2020-03-30T17:56:02.7230801Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-30T17:56:02.7231235Z ==============================================================================
2020-03-30T17:56:03.0500050Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-30T17:56:03.0544188Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/70458/merge to s
2020-03-30T17:56:03.0636067Z Cleaning up task key
2020-03-30T17:56:03.0637325Z Start cleaning up orphan processes.
2020-03-30T17:56:03.1052884Z Terminate orphan process: pid (4433) (python)
2020-03-30T17:56:03.1102519Z ##[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 @rust-lang/infra. (Feature Requests)

@nnethercote
Copy link
Contributor Author

why is this slower?

Here is the first part of the Cachegrind diff for deep-vector. Basically it's just a lot of LLVM stuff. Some of it makes sense, e.g. llvm::SHA1::hashBlock() might be called more if the object file is a lot bigger, but I'm not sure about the other parts.

--------------------------------------------------------------------------------
Ir
--------------------------------------------------------------------------------
1,275,167,477 (100.0%)  PROGRAM TOTALS

--------------------------------------------------------------------------------
Ir                      file:function
--------------------------------------------------------------------------------
  159,852,790 (12.54%)  ???:llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const
  158,324,684 (12.42%)  ???:(anonymous namespace)::Verifier::visitInstruction(llvm::Instruction&)
  122,351,377 ( 9.59%)  ???:llvm::Instruction::getMetadataImpl(unsigned int) const
 -122,332,118 (-9.59%)  /home/njn/moz/rustN/src/llvm-project/llvm/lib/IR/Metadata.cpp:llvm::Instruction::getMetadataImpl(unsigned int) const
  107,324,711 ( 8.42%)  ???:findRefEdges(llvm::ModuleSummaryIndex&, llvm::User const*, llvm::SetVector<llvm::ValueInfo, std::vector<llvm::ValueInfo, std::allocator<llvm::ValueInfo> >, llvm::DenseSet<
llvm::ValueInfo, llvm::DenseMapInfo<llvm::ValueInfo> > >&, llvm::SmallPtrSet<llvm::User const*, 8u>&)
   95,565,013 ( 7.49%)  ???:llvm::SmallPtrSetImplBase::insert_imp_big(void const*)
   78,806,772 ( 6.18%)  ???:llvm::SHA1::hashBlock()
   77,584,218 ( 6.08%)  ???:(anonymous namespace)::X86FastISel::X86SelectAddress(llvm::Value const*, llvm::X86AddressMode&)
   72,832,206 ( 5.71%)  ???:llvm::MachineInstr::addOperand(llvm::MachineFunction&, llvm::MachineOperand const&)
   69,859,418 ( 5.48%)  ???:llvm::BitstreamWriter::Emit(unsigned int, unsigned int)
   66,135,992 ( 5.19%)  ???:llvm::BitstreamWriter::EmitVBR(unsigned int, unsigned int) [clone .constprop.3]
  -60,750,517 (-4.76%)  /home/njn/moz/rustN/src/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp:llvm::MachineInstr::addOperand(llvm::MachineFunction&, llvm::MachineOperand const&)
   59,937,591 ( 4.70%)  ???:(anonymous namespace)::X86MCCodeEmitter::encodeInstruction(llvm::MCInst const&, llvm::raw_ostream&, llvm::SmallVectorImpl<llvm::MCFixup>&, llvm::MCSubtargetInfo const&) co
nst
  -58,980,736 (-4.63%)  /home/njn/moz/rustN/src/llvm-project/llvm/lib/IR/Verifier.cpp:(anonymous namespace)::Verifier::visitInstruction(llvm::Instruction&)
  -55,914,730 (-4.38%)  /home/njn/moz/rustN/src/llvm-project/llvm/lib/Support/SmallPtrSet.cpp:llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const
   55,071,096 ( 4.32%)  ???:(anonymous namespace)::RegAllocFast::runOnMachineFunction(llvm::MachineFunction&)
   51,999,298 ( 4.08%)  ???:llvm::FunctionLoweringInfo::set(llvm::Function const&, llvm::MachineFunction&, llvm::SelectionDAG*)
   51,721,376 ( 4.06%)  ???:llvm::ValueEnumerator::EnumerateType(llvm::Type*)
   48,727,022 ( 3.82%)  ???:(anonymous namespace)::Verifier::visitGetElementPtrInst(llvm::GetElementPtrInst&)
   47,614,146 ( 3.73%)  /home/njn/moz/rustN/src/librustc_infer/infer/mod.rs:_ZN11rustc_infer5infer9InferCtxt18shallow_resolve_ty17h084a2dbed8bca070E.llvm.8047134943506053548
  -47,614,146 (-3.73%)  /home/njn/moz/rustN/src/librustc_infer/infer/mod.rs:_ZN11rustc_infer5infer9InferCtxt18shallow_resolve_ty17h084a2dbed8bca070E.llvm.13037032452210029921

@nnethercote
Copy link
Contributor Author

nnethercote commented Mar 30, 2020

@rust-lang/compiler members: we have an interesting flags situation here that needs your input. Let me give an overview.

(EDIT: the original proposal was for a -C no-embed-bitcode flag. We ended up settling on a -C embed-bitcode=<val> flag that defaults to true. I have updated the text in the rest of this comment to reflect that.)

Currently, when rustc produces an rlib it contains both object code (.o) and compressed LLVM bitcode (.bc.z). The object code is used in normal cases, and the bitcode is used for LTO. But producing both is inefficient because it's rarely needed. (The standard library is the only place where having both is useful.)

So this PR is about removing this inefficiency. For backwards compatibility, we will preserve the existing behaviour of producing both object code and bitcode. However, we will instead store the bitcode uncompressed, in a special section in the object code. This is a standard format that clang uses and there is already machinery in the compiler to do it, which is used for -C linker-plugin-lto. (Fun fact: for -C linker-plugin-lto we end up producing object code and uncompressed bitcode and compressed bitcode, for additional inefficiency.) Using this standard format will let us opt into some additional LTO things in the future.

This change from compressed bitcode to uncompressed bitcode causes a mixture of performance improvements and regressions, and we don't want to land it by itself. The other key part is that we introduce a new boolean flag -C embed-bitcode=<val> that tells rustc to not embed bitcode, and then Cargo will use -C embed-bitcode=no any time that LTO is not being used. With that in place, the vast majority of the time only one kind of code (object code or bitcode) will be produced, and we get some big performance wins (up to 19% -- see the second lot of figures in that comment -- mostly on debug builds) and also significantly reduce the disk space taken up by rlibs (18.6% on one example).

The tricky part is that we want to land the rustc changes and the Cargo changes in tandem so that we don't have a period of performance regression, and that requires promoting the -Z embed-bitcode flag to -C embed-bitcode and flipping its default value at the same time, which is not quite the normal process for new -C flags. So I am seeking blessing for that.

Thoughts?

@petrochenkov
Copy link
Contributor

I'd generally prefer an overridable option -C embed-bitcode=yes/no (parse_opt_bool) instead of a "sticky flag" option -C (no-)embed-bitcode (parse_bool).
(That's true for pretty much any boolean options.)

@nnethercote
Copy link
Contributor Author

I'd generally prefer an overridable option -C embed-bitcode=yes/no (parse_opt_bool)

The flag parsing code strongly guides us towards boolean flags that default to false.

If you use parse_bool and default to true it's impossible to change the flag to false. I found two such options in #70297.

If you use parse_opt_bool, to default to true:

  • You can have a default value of Some(true) rather than the more common None. This is unfortunate because then "no flag" is indistinguishable from -C embed-bitcode=yes.
  • Or, you could default to None and then the code that looks at the flag would have to treat None and Some(true) the same.
  • Or, you could invert the sense to -C no-embed-bitcode=yes/no and default to None, but the double negative in -C no-embed-bitcode=no is hard to read.

All of these feel clumsy. Any preferences?

@eddyb
Copy link
Member

eddyb commented Mar 31, 2020

Or, you could default to None and then the code that looks at the flag would have to treat None and Some(true) the same.

This is the standard (Option<T> plus a method that returns T, using a default for None) although we should probably make CLI arg parsing less obnoxious, so this isn't needed anymore.

@nnethercote
Copy link
Contributor Author

New code is up, it addresses all the comments. There are two new commits in the sequence:

  • One removing bitcode marker section support, that @alexcrichton should look at.
  • One removing bitcode from the incremental compilation cache, which @bjorn3 should look at.

And the flag is still -Z no-embed-bitcode, which will need changing to a -C flag once we've reached a consensus on what form that should take.

@nnethercote
Copy link
Contributor Author

Try only runs a few builders and no tests, I'm afraid. You can manually enable more though.

How do you do that? Can you enable all of them?

@Mark-Simulacrum
Copy link
Member

If the builders are linux based, it's generally very easy, you just add some lines to https://github.com/rust-lang/rust/blob/master/src/ci/azure-pipelines/try.yml#L28 here, copying from this list here: https://github.com/rust-lang/rust/blob/master/src/ci/azure-pipelines/auto.yml#L32

For the windows/macos builders, it's similar, but you have to copy in the header from the auto.yml file as well (i.e., https://github.com/rust-lang/rust/blob/master/src/ci/azure-pipelines/auto.yml#L74-L81).

We can't handle more than 6 concurrent builders being run on try, but you can drop the 2 builders we normally run if you want to test 6 at a time. Most of the time that's enough since you can isolate a problem through a normal r+ run and then debug it in try on that specific platform.

@nnethercote
Copy link
Contributor Author

As described above, the chosen approach doesn't work with some linkers, so we will have to do things differently. The performance improvements will still be achievable, but they will be done in follow-up PRs.

bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 22, 2020
…ichton

Add `-Cbitcode-in-rlib`.

This is a cut-down version of rust-lang#70458 that gets the compile-time wins.

r? @alexcrichton
@alexcrichton
Copy link
Member

I'm attempting to resurrect this at #71528

alexcrichton added a commit to alexcrichton/rust that referenced this pull request Apr 29, 2020
This commit is an attempted resurrection of rust-lang#70458 where LLVM bitcode
emitted by rustc into rlibs is stored into object file sections rather
than in a separate file. The main rationale for doing this is that when
rustc emits bitcode it will no longer use a custom compression scheme
which makes it both easier to interoperate with existing tools and also
cuts down on compile time since this compression isn't happening.

The blocker for this in rust-lang#70458 turned out to be that native linkers
didn't handle the new sections well, causing the sections to either
trigger bugs in the linker or actually end up in the final linked
artifact. This commit attempts to address these issues by ensuring that
native linkers ignore the new sections by inserting custom flags with
module-level inline assembly.

Note that this does not currently change the API of the compiler at all.
The pre-existing `-C bitcode-in-rlib` flag is co-opted to indicate
whether the bitcode should be present in the object file or not.

Finally, note that an important consequence of this commit, which is also
one of its primary purposes, is to enable rustc's `-Clto` bitcode
loading to load rlibs produced with `-Clinker-plugin-lto`. The goal here
is that when you're building with LTO Cargo will tell rustc to skip
codegen of all intermediate crates and only generate LLVM IR. Today
rustc will generate both object code and LLVM IR, but the object code is
later simply thrown away, wastefully.
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 29, 2020
…ercote

Store LLVM bitcode in object files, not compressed

This commit is an attempted resurrection of rust-lang#70458 where LLVM bitcode
emitted by rustc into rlibs is stored into object file sections rather
than in a separate file. The main rationale for doing this is that when
rustc emits bitcode it will no longer use a custom compression scheme
which makes it both easier to interoperate with existing tools and also
cuts down on compile time since this compression isn't happening.

The blocker for this in rust-lang#70458 turned out to be that native linkers
didn't handle the new sections well, causing the sections to either
trigger bugs in the linker or actually end up in the final linked
artifact. This commit attempts to address these issues by ensuring that
native linkers ignore the new sections by inserting custom flags with
module-level inline assembly.

Note that this does not currently change the API of the compiler at all.
The pre-existing `-C bitcode-in-rlib` flag is co-opted to indicate
whether the bitcode should be present in the object file or not.

Finally, note that an important consequence of this commit, which is also
one of its primary purposes, is to enable rustc's `-Clto` bitcode
loading to load rlibs produced with `-Clinker-plugin-lto`. The goal here
is that when you're building with LTO Cargo will tell rustc to skip
codegen of all intermediate crates and only generate LLVM IR. Today
rustc will generate both object code and LLVM IR, but the object code is
later simply thrown away, wastefully.
alexcrichton added a commit to alexcrichton/rust that referenced this pull request May 1, 2020
This commit finishes work first pioneered in rust-lang#70458 and started in rust-lang#71528.
The `-C bitcode-in-rlib` option, which has not yet reached stable, is
renamed to `-C embed-bitcode` since that more accurately reflects what
it does now anyway. Various tests and such are updated along the way as
well.

This'll also need to be backported to the beta channel to ensure we
don't accidentally stabilize `-Cbitcode-in-rlib` as well.
bors added a commit to rust-lang-ci/rust that referenced this pull request May 2, 2020
…thercote

Rename `bitcode-in-rlib` option to `embed-bitcode`

This commit finishes work first pioneered in rust-lang#70458 and started in rust-lang#71528.
The `-C bitcode-in-rlib` option, which has not yet reached stable, is
renamed to `-C embed-bitcode` since that more accurately reflects what
it does now anyway. Various tests and such are updated along the way as
well.

This'll also need to be backported to the beta channel to ensure we
don't accidentally stabilize `-Cbitcode-in-rlib` as well.
bors added a commit to rust-lang-ci/rust that referenced this pull request May 4, 2020
…nethercote

Don't copy bytecode files into the incr. comp. cache.

It's no longer necessary now that bitcode is embedded into object files.

This change meant that `WorkProductFileKind::Bytecode` is no longer
necessary, which means that type is no longer necessary, which allowed
several places in the code to become simpler.

This commit was written by @nnethercote in rust-lang#70458 but that didn't land. In the meantime though we managed to land it in rust-lang#71528 and that doesn't seem to be causing too many fires, so I'm re-sending this patch!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet