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

Add utility to find locals that don't use StorageLive annotations and use it for MaybeStorageLive #70447

Merged
merged 6 commits into from
Apr 10, 2020

Conversation

ecstatic-morse
Copy link
Contributor

@ecstatic-morse ecstatic-morse commented Mar 26, 2020

Addresses #70004 (comment) (cc @RalfJung).

The only dataflow analysis that is incorrect in this case is MaybeStorageLive. transform/generator.rs implemented custom handling for this class of locals, but other consumers of this analysis (there's one in clippy) would be incorrect.

r? @tmandry

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 26, 2020
@ecstatic-morse
Copy link
Contributor Author

ecstatic-morse commented Mar 26, 2020

Unfortunately this causes an assertion to trigger. @tmandry I would like to make MaybeStorageLive correct for all cases (not just generators) and adapt transform/generator.rs to handle those changes. This also means marking the first argument as requiring storage in MaybeStorageLive, since skipping it when intializing the start block means that no one else can use this dataflow analysis.

@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-26T21:46:38.5442305Z ========================== Starting Command Output ===========================
2020-03-26T21:46:38.5446381Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/bd5eb471-157f-43dd-b829-e77b86d8ad8b.sh
2020-03-26T21:46:38.5447232Z 
2020-03-26T21:46:38.5453172Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-26T21:46:38.5483898Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-26T21:46:38.5487513Z Task         : Get sources
2020-03-26T21:46:38.5487859Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-26T21:46:38.5488239Z Version      : 1.0.0
2020-03-26T21:46:38.5488453Z Author       : Microsoft
---
2020-03-26T21:46:40.1649836Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-26T21:46:40.1661864Z ##[command]git config gc.auto 0
2020-03-26T21:46:40.1669666Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-26T21:46:40.1676764Z ##[command]git config --get-all http.proxy
2020-03-26T21:46:40.1686574Z ##[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/70447/merge:refs/remotes/pull/70447/merge
---
2020-03-26T21:54:38.5086979Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-26T21:54:50.5184884Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-26T21:54:56.5438617Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-26T21:55:12.5934828Z    Compiling rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-26T21:55:14.1555169Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-26T21:55:18.3286164Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-26T21:55:56.8942093Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
2020-03-26T21:56:06.8492580Z    Compiling rustc_expand v0.0.0 (/checkout/src/librustc_expand)
2020-03-26T21:57:05.3341401Z    Compiling rustc_builtin_macros v0.0.0 (/checkout/src/librustc_builtin_macros)
---
2020-03-26T22:21:04.4317657Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-26T22:21:06.3264101Z    Compiling rustc_session v0.0.0 (/checkout/src/librustc_session)
2020-03-26T22:21:18.8198360Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-26T22:21:33.0175765Z    Compiling rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-26T22:21:39.3601807Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-26T22:21:41.1913534Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-26T22:22:31.7093910Z    Compiling rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
2020-03-26T22:22:43.6431975Z    Compiling rustc_expand v0.0.0 (/checkout/src/librustc_expand)
2020-03-26T22:23:57.7681357Z    Compiling rustc_builtin_macros v0.0.0 (/checkout/src/librustc_builtin_macros)
---
2020-03-26T22:39:12.6580612Z    Compiling rustc_traits v0.0.0 (/checkout/src/librustc_traits)
2020-03-26T22:40:01.6880566Z    Compiling rustc_mir_build v0.0.0 (/checkout/src/librustc_mir_build)
2020-03-26T22:42:28.5958537Z    Compiling rustc_privacy v0.0.0 (/checkout/src/librustc_privacy)
2020-03-26T22:43:11.2494965Z    Compiling rustc_plugin_impl v0.0.0 (/checkout/src/librustc_plugin_impl)
2020-03-26T22:43:34.9418369Z thread 'rustc' panicked at 'assertion failed: `(left != right)`
2020-03-26T22:43:34.9418770Z   left: `_1`,
2020-03-26T22:43:34.9419289Z  right: `_1`', src/librustc_mir/transform/generator.rs:111:9
2020-03-26T22:43:34.9428526Z 
2020-03-26T22:43:34.9432709Z error: internal compiler error: unexpected panic
2020-03-26T22:43:34.9432966Z 
2020-03-26T22:43:34.9433716Z note: the compiler unexpectedly panicked. this is a bug.
2020-03-26T22:43:34.9433716Z note: the compiler unexpectedly panicked. this is a bug.
2020-03-26T22:43:34.9433937Z 
2020-03-26T22:43:34.9467856Z note: we would appreciate a bug report: ***/blob/master/CONTRIBUTING.md#bug-reports
2020-03-26T22:43:34.9468923Z note: rustc 1.44.0-nightly (4c367df91 2020-03-26) running on x86_64-unknown-linux-gnu
2020-03-26T22:43:34.9469363Z 
2020-03-26T22:43:34.9469363Z 
2020-03-26T22:43:34.9470444Z note: compiler flags: -Z macro-backtrace -Z unstable-options -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C opt-level=3 -C debuginfo=0 -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C llvm-args=-import-instr-limit=10 -C debug-assertions=n --crate-type lib
2020-03-26T22:43:34.9471308Z note: some of the compiler flags provided by cargo are hidden
2020-03-26T22:43:34.9471553Z 
2020-03-26T22:43:34.9641314Z error: could not compile `rustc_interface`.
2020-03-26T22:43:34.9641603Z 
---
2020-03-26T22:44:43.4588034Z   local time: Thu Mar 26 22:44:43 UTC 2020
2020-03-26T22:44:43.7570057Z   network time: Thu, 26 Mar 2020 22:44:43 GMT
2020-03-26T22:44:43.7573771Z == end clock drift check ==
2020-03-26T22:44:44.3655858Z 
2020-03-26T22:44:44.3736873Z ##[error]Bash exited with code '1'.
2020-03-26T22:44:44.3754205Z ##[section]Finishing: Run build
2020-03-26T22:44:44.3805633Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-26T22:44:44.3812514Z Task         : Get sources
2020-03-26T22:44:44.3813135Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-26T22:44:44.3815104Z Version      : 1.0.0
2020-03-26T22:44:44.3815552Z Author       : Microsoft
2020-03-26T22:44:44.3815552Z Author       : Microsoft
2020-03-26T22:44:44.3815981Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-26T22:44:44.3816445Z ==============================================================================
2020-03-26T22:44:44.7612572Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-26T22:44:44.7674095Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-26T22:44:44.7782581Z Cleaning up task key
2020-03-26T22:44:44.7783962Z Start cleaning up orphan processes.
2020-03-26T22:44:44.8023023Z Terminate orphan process: pid (3803) (python)
2020-03-26T22:44:44.8225179Z ##[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)

@bors
Copy link
Contributor

bors commented Mar 27, 2020

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

@RalfJung
Copy link
Member

I wonder if it makes sense to share code with the part of Miri that decides which locals are live when a stack frame is pushed? On the one hand, having independent implementations could be useful as they can check each other, on the other hand, sharing code always seems nice.

Currently, these to analyses differ in the sense that Miri treats all locals as initially-live in consts and statics, to avoid the overhead of walking the entire MIR. @oli-obk added this optimization a while ago, but @eddyb said it probably never was correct. An alternative would be to just say that the CTFE machine, for performance reasons, just ignores Storage* -- so Miri would still check them, but CTFE would just assume the annotations are right.

@tmandry
Copy link
Member

tmandry commented Mar 28, 2020

@ecstatic-morse I think you can take that part out of MaybeStorageLive and the code will still work; the generator transform already explicitly ignores the first arg.

@ecstatic-morse
Copy link
Contributor Author

@RalfJung We should probably be encoding whether a variable is live on function entry in its LocalDecl. I'll replace the for loop that looks for StorageLive/StorageDead eval_context for now, but I agree that we probably could just ignore them during CTFE since it we've been doing so anyways.

@RalfJung
Copy link
Member

We should probably be encoding whether a variable is live on function entry in its LocalDecl

If we can be explicit in the MIR about this, that would be even better. :)
I added this "liveness detection" code years ago, and back then I was nowhere near comfortable enough to suggest changing MIR data structures. Also I thought nothing but Miri would need it anyway.

@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-29T20:08:33.0489192Z ========================== Starting Command Output ===========================
2020-03-29T20:08:33.0491714Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/cd1e5b04-ebc6-42d0-bfd6-f801482c328d.sh
2020-03-29T20:08:33.0491985Z 
2020-03-29T20:08:33.0495323Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-29T20:08:33.0516209Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-29T20:08:33.0519721Z Task         : Get sources
2020-03-29T20:08:33.0520081Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-29T20:08:33.0520370Z Version      : 1.0.0
2020-03-29T20:08:33.0520562Z Author       : Microsoft
---
2020-03-29T20:08:34.2443239Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-29T20:08:34.2450463Z ##[command]git config gc.auto 0
2020-03-29T20:08:34.2454817Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-29T20:08:34.2458447Z ##[command]git config --get-all http.proxy
2020-03-29T20:08:34.2467118Z ##[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/70447/merge:refs/remotes/pull/70447/merge
---
2020-03-29T20:16:06.8058515Z    Compiling rustc_feature v0.0.0 (/checkout/src/librustc_feature)
2020-03-29T20:16:08.4230219Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-29T20:16:10.1254051Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-29T20:16:11.3581777Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-29T20:16:20.6964503Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-29T20:16:23.2775513Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-29T20:16:27.9827117Z    Compiling rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-29T20:16:32.4575152Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-29T20:16:42.5895421Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
2020-03-29T20:40:00.4650677Z    Compiling rustc_feature v0.0.0 (/checkout/src/librustc_feature)
2020-03-29T20:40:02.3532636Z    Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2020-03-29T20:40:04.5002512Z    Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
2020-03-29T20:40:06.4735562Z    Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
2020-03-29T20:40:17.3814629Z    Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
2020-03-29T20:40:20.8753814Z    Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
2020-03-29T20:40:26.5082883Z    Compiling rustc_attr v0.0.0 (/checkout/src/librustc_attr)
2020-03-29T20:40:32.2502043Z    Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
2020-03-29T20:40:43.2510578Z    Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
2020-03-29T21:07:02.8149464Z .................................................................................................... 1700/9855
2020-03-29T21:07:06.7628677Z .................................................................................................... 1800/9855
2020-03-29T21:07:16.8861626Z ..........................................................................................i......... 1900/9855
2020-03-29T21:07:23.6996641Z .................................................................................................... 2000/9855
2020-03-29T21:07:30.1729019Z ...............................................................................iiiii................ 2100/9855
2020-03-29T21:07:51.4117701Z .................................................................................................... 2300/9855
2020-03-29T21:07:53.5745188Z .................................................................................................... 2400/9855
2020-03-29T21:07:55.9414623Z .................................................................................................... 2500/9855
2020-03-29T21:08:05.1370098Z .................................................................................................... 2600/9855
---
2020-03-29T21:10:56.6410305Z .....................................................i...............i.............................. 5000/9855
2020-03-29T21:11:04.4744899Z .................................................................................................... 5100/9855
2020-03-29T21:11:11.8746210Z ..................................................................................................i. 5200/9855
2020-03-29T21:11:16.8494679Z .................................................................................................... 5300/9855
2020-03-29T21:11:27.7119633Z ....................................................................................ii.ii........i.. 5400/9855
2020-03-29T21:11:31.3381085Z .i.................................................................................................. 5500/9855
2020-03-29T21:11:40.3775081Z .............................i...................................................................... 5700/9855
2020-03-29T21:11:50.1883986Z ...............................................ii....................................i.............. 5800/9855
2020-03-29T21:11:57.6395349Z .................................................................................................... 5900/9855
2020-03-29T21:12:02.8146863Z .................................................................................................... 6000/9855
2020-03-29T21:12:02.8146863Z .................................................................................................... 6000/9855
2020-03-29T21:12:12.1130453Z ...............................................................................ii...i..ii........... 6100/9855
2020-03-29T21:12:24.2798890Z i................................................................................................... 6200/9855
2020-03-29T21:12:39.8262090Z .................................................................................................... 6400/9855
2020-03-29T21:12:46.6879078Z .................................................................................................... 6500/9855
2020-03-29T21:12:46.6879078Z .................................................................................................... 6500/9855
2020-03-29T21:13:02.0251019Z .........i..ii...................................................................................... 6600/9855
2020-03-29T21:13:22.6634211Z .................................................................................................... 6800/9855
2020-03-29T21:13:24.7059123Z .........i.......................................................................................... 6900/9855
2020-03-29T21:13:26.8130698Z .................................................................................................... 7000/9855
2020-03-29T21:13:29.0118662Z ..............................................i..................................................... 7100/9855
---
2020-03-29T21:15:11.0525045Z .................................................................................................... 7800/9855
2020-03-29T21:15:16.2050125Z .................................................................................................... 7900/9855
2020-03-29T21:15:22.3844998Z .................................................................................................... 8000/9855
2020-03-29T21:15:30.5359194Z .......i............................................................................................ 8100/9855
2020-03-29T21:15:38.8761708Z .......................................................iiiiiiiiii.i................................. 8200/9855
2020-03-29T21:15:47.3698324Z ...................................................................................................i 8300/9855
2020-03-29T21:15:58.3626315Z .................................................................................................... 8500/9855
2020-03-29T21:16:11.3043534Z .................................................................................................... 8600/9855
2020-03-29T21:16:20.9202098Z .................................................................................................... 8700/9855
2020-03-29T21:16:26.2195831Z .................................................................................................... 8800/9855
---
2020-03-29T21:18:44.8966643Z .....................................F..................................................
2020-03-29T21:18:44.8969049Z failures:
2020-03-29T21:18:44.8972793Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-03-29T21:18:44.8978377Z 
2020-03-29T21:18:44.8979336Z ---- [mir-opt] mir-opt/generator-drop-cleanup.rs stdout ----
2020-03-29T21:18:44.8981618Z [ERROR compiletest::runtest] Some("bb7: {")
2020-03-29T21:18:44.8982861Z thread '[mir-opt] mir-opt/generator-drop-cleanup.rs' panicked at 'Did not find expected line, error: Mismatch in lines
2020-03-29T21:18:44.8983466Z Current block: bb7: {
2020-03-29T21:18:44.8983822Z Actual Line: "        StorageLive(_0);"
2020-03-29T21:18:44.8984211Z Expected Line: "    StorageLive(_3);"
2020-03-29T21:18:44.8984827Z Test Name: rustc.main-{{closure}}.generator_drop.0.mir
2020-03-29T21:18:44.8985763Z ... (elided)
2020-03-29T21:18:44.8986041Z bb0: {
2020-03-29T21:18:44.8986041Z bb0: {
2020-03-29T21:18:44.8986346Z     _7 = discriminant((*_1));
2020-03-29T21:18:44.8987084Z     switchInt(move _7) -> [0u32: bb4, 3u32: bb7, otherwise: bb8];
2020-03-29T21:18:44.8987774Z bb1: {
2020-03-29T21:18:44.8988432Z     StorageDead(_4);
2020-03-29T21:18:44.8988719Z     StorageDead(_3);
2020-03-29T21:18:44.8989250Z     goto -> bb5;
---
2020-03-29T21:18:44.8993250Z }
2020-03-29T21:18:44.8993379Z bb8: {
2020-03-29T21:18:44.8993545Z     return;
2020-03-29T21:18:44.8993681Z }
2020-03-29T21:18:44.8993810Z Actual:
2020-03-29T21:18:44.8994492Z fn main::{{closure}}#0(_1: *mut [generator@/checkout/src/test/mir-opt/generator-drop-cleanup.rs:7:15: 9:6 {()}]) -> () {
2020-03-29T21:18:44.8994892Z     let mut _0: ();
2020-03-29T21:18:44.8995363Z     let mut _2: ();
2020-03-29T21:18:44.8995560Z     let _3: ();
2020-03-29T21:18:44.8995757Z     let mut _4: ();
2020-03-29T21:18:44.8995979Z     let mut _5: ();
2020-03-29T21:18:44.8996184Z     let mut _6: ();
2020-03-29T21:18:44.8996395Z     let mut _7: isize;
2020-03-29T21:18:44.8996587Z     bb0: {
2020-03-29T21:18:44.8996809Z         _7 = discriminant((*_1));
2020-03-29T21:18:44.8997372Z         switchInt(move _7) -> [0u32: bb4, 3u32: bb7, otherwise: bb8];
2020-03-29T21:18:44.8997835Z     bb1: {
2020-03-29T21:18:44.8998234Z         StorageDead(_4);
2020-03-29T21:18:44.8998683Z         StorageDead(_3);
2020-03-29T21:18:44.8999082Z         goto -> bb5;
---
2020-03-29T21:18:44.9007028Z test result: FAILED. 87 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
2020-03-29T21:18:44.9007303Z 
2020-03-29T21:18:44.9007404Z 
2020-03-29T21:18:44.9007503Z 
2020-03-29T21:18:44.9011569Z 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/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--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-29T21:18:44.9014337Z 
2020-03-29T21:18:44.9014437Z 
2020-03-29T21:18:44.9023891Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
2020-03-29T21:18:44.9024292Z Build completed unsuccessfully in 1:06:20
2020-03-29T21:18:44.9024292Z Build completed unsuccessfully in 1:06:20
2020-03-29T21:18:44.9080396Z == clock drift check ==
2020-03-29T21:18:44.9101089Z   local time: Sun Mar 29 21:18:44 UTC 2020
2020-03-29T21:18:44.9871733Z   network time: Sun, 29 Mar 2020 21:18:44 GMT
2020-03-29T21:18:44.9876780Z == end clock drift check ==
2020-03-29T21:18:47.0961442Z 
2020-03-29T21:18:47.1048218Z ##[error]Bash exited with code '1'.
2020-03-29T21:18:47.1062477Z ##[section]Finishing: Run build
2020-03-29T21:18:47.1141111Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-29T21:18:47.1146582Z Task         : Get sources
2020-03-29T21:18:47.1146944Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-29T21:18:47.1147272Z Version      : 1.0.0
2020-03-29T21:18:47.1147732Z Author       : Microsoft
2020-03-29T21:18:47.1147732Z Author       : Microsoft
2020-03-29T21:18:47.1148076Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-29T21:18:47.1148469Z ==============================================================================
2020-03-29T21:18:47.4542546Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-29T21:18:47.4614730Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/70447/merge to s
2020-03-29T21:18:47.4705013Z Cleaning up task key
2020-03-29T21:18:47.4706513Z Start cleaning up orphan processes.
2020-03-29T21:18:47.5067660Z Terminate orphan process: pid (4193) (python)
2020-03-29T21:18:47.5129157Z ##[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)

@bors
Copy link
Contributor

bors commented Mar 30, 2020

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

@bors
Copy link
Contributor

bors commented Apr 1, 2020

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

Comment on lines +594 to +596
// Locals that are always live or ones that need to be stored across
// suspension points are not eligible for overlap.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This entire function only cares about stored_locals, to be clear

Copy link
Member

@tmandry tmandry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me after nits

@ecstatic-morse
Copy link
Contributor Author

@bors r=tmandry

Sorry this fell off my radar. @tmandry I haven't changed the comment in transform/generator.rs, since I don't have a good idea of what it should say. Feel free to r-, or we could change this later.

@bors
Copy link
Contributor

bors commented Apr 9, 2020

📌 Commit 209087b has been approved by tmandry

@bors
Copy link
Contributor

bors commented Apr 9, 2020

🌲 The tree is currently closed for pull requests below priority 10, this pull request will be tested once the tree is reopened

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 9, 2020
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Apr 9, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Apr 9, 2020
… r=tmandry

Add utility to find locals that don't use `StorageLive` annotations and use it for `MaybeStorageLive`

Addresses rust-lang#70004 (comment) (cc @RalfJung).

The only dataflow analysis that is incorrect in this case is `MaybeStorageLive`. `transform/generator.rs` implemented custom handling for this class of locals, but other consumers of this analysis (there's one in [clippy](https://github.com/rust-lang/rust-clippy/blob/513b46793e98ce5b412d388a91f6371d6a9b290b/clippy_lints/src/redundant_clone.rs#L402)) would be incorrect.

r? @tmandry
@bors
Copy link
Contributor

bors commented Apr 10, 2020

⌛ Testing commit 209087b with merge 96d77f0...

@bors
Copy link
Contributor

bors commented Apr 10, 2020

☀️ Test successful - checks-azure
Approved by: tmandry
Pushing 96d77f0 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Apr 10, 2020
@bors bors merged commit 96d77f0 into rust-lang:master Apr 10, 2020
@ecstatic-morse ecstatic-morse deleted the storage-live-always branch October 6, 2020 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants