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

Fix constant propagation for scalar pairs #67015

Merged
merged 1 commit into from
Dec 11, 2019
Merged

Conversation

osa1
Copy link
Contributor

@osa1 osa1 commented Dec 4, 2019

We now only propagate a scalar pair if the Rvalue is a tuple with two scalars. This for example avoids propagating a (u8, u8) value when Rvalue has type ((), u8, u8) (see the regression test). While this is a correct thing to do, implementation is tricky and will be done later.

Fixes #66971
Fixes #66339
Fixes #67019

@rust-highfive
Copy link
Collaborator

r? @davidtwco

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 4, 2019
@osa1
Copy link
Contributor Author

osa1 commented Dec 4, 2019

(fixed a long line)

let scalar = if field_layout.details.size == Size::ZERO {
Scalar::zst()
} else {
pair_values.pop().unwrap()
Copy link
Contributor

Choose a reason for hiding this comment

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

I think there might be a need for an additional check that the field actually
has Abi::Scalar layout. Otherwise it could end up with an assignment between
Scalar and ScalarPair layouts, for example in something like test(((1, 2),)),
when propagating the value of the outermost tuple.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Amazing, your example uncovers another bug. I reported it as #67019.

I'll try to fix it in this PR too.

@Centril
Copy link
Contributor

Centril commented Dec 4, 2019

r? @oli-obk @wesleywiser

@rust-highfive rust-highfive assigned oli-obk and unassigned davidtwco Dec 4, 2019
Copy link
Member

@wesleywiser wesleywiser left a comment

Choose a reason for hiding this comment

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

Nice work overall!

src/librustc_mir/transform/const_prop.rs Outdated Show resolved Hide resolved
src/librustc_mir/transform/const_prop.rs Outdated Show resolved Hide resolved
src/librustc_mir/transform/const_prop.rs Outdated Show resolved Hide resolved
@wesleywiser
Copy link
Member

Can you also check if this fixes #66339?

@osa1
Copy link
Contributor Author

osa1 commented Dec 4, 2019

Can you also check if this fixes #66339?

It does not, but it changes the error. For actually fixing these both I think it'd be good to first decide whether we should be changing tuple reprs in const-prop (hence the Zulip topic).

@wesleywiser
Copy link
Member

wesleywiser commented Dec 4, 2019

I think it'd be good to first decide whether we should be changing tuple reprs in const-prop

We definitely should not be doing that. Beyond the ICEs we're seeing here, it would complicate other MIR passes to have to deal with constants that are valid for the layout but potentially not the logical type.

@osa1
Copy link
Contributor Author

osa1 commented Dec 4, 2019

OK, in that case I think this PR will change quite a bit and the final PR should fix both of these issues. I'm running out of time for today but I'll try to update sometime later this week. I hope this is not blocking anyone?

@wesleywiser
Copy link
Member

@osa1 Sorry, my point was supposed to be that I think your PR is overall the right direction to go in. I think there's probably a few small tweaks you should make per the above feedback and then we can land this.

@osa1 osa1 changed the title [WIP] Fix constant propagation for scalar pairs Fix constant propagation for scalar pairs Dec 6, 2019
Copy link
Member

@wesleywiser wesleywiser left a comment

Choose a reason for hiding this comment

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

I think the tests for #66339 and #67019 should either include the expected MIR or we should make them ui tests. IMO we shouldn't have mir-opt tests that don't verify the MIR.

@oli-obk
Copy link
Contributor

oli-obk commented Dec 6, 2019

r? @wesleywiser

@rust-highfive rust-highfive assigned wesleywiser and unassigned oli-obk Dec 6, 2019
@wesleywiser
Copy link
Member

The build is failing due to tidy:

tidy error: /checkout/src/librustc_mir/transform/const_prop.rs:651: line longer than 100 chars

@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.
2019-12-06T14:48:55.0760520Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-12-06T14:48:55.0776789Z ##[command]git config gc.auto 0
2019-12-06T14:48:55.0780595Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-12-06T14:48:55.0785926Z ##[command]git config --get-all http.proxy
2019-12-06T14:48:55.0798799Z ##[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/67015/merge:refs/remotes/pull/67015/merge
---
2019-12-06T14:54:24.5216199Z    Compiling serde_json v1.0.40
2019-12-06T14:54:26.0230944Z    Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
2019-12-06T14:54:35.7512859Z     Finished release [optimized] target(s) in 1m 16s
2019-12-06T14:54:35.7603144Z tidy check
2019-12-06T14:54:36.3534742Z tidy error: /checkout/src/librustc_mir/transform/const_prop.rs:651: line longer than 100 chars
2019-12-06T14:54:38.2187671Z Found 486 error codes
2019-12-06T14:54:38.2192599Z Found 0 error codes with no tests
2019-12-06T14:54:38.2192906Z Done!
2019-12-06T14:54:38.2193124Z some tidy checks failed
2019-12-06T14:54:38.2193124Z some tidy checks failed
2019-12-06T14:54:38.2193267Z 
2019-12-06T14:54:38.2193381Z 
2019-12-06T14:54:38.2194470Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor"
2019-12-06T14:54:38.2194994Z 
2019-12-06T14:54:38.2195151Z 
2019-12-06T14:54:38.2199717Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
2019-12-06T14:54:38.2199984Z Build completed unsuccessfully in 0:01:20
2019-12-06T14:54:38.2199984Z Build completed unsuccessfully in 0:01:20
2019-12-06T14:54:38.2244595Z == clock drift check ==
2019-12-06T14:54:38.2274856Z   local time: Fri Dec  6 14:54:38 UTC 2019
2019-12-06T14:54:38.4899868Z   network time: Fri, 06 Dec 2019 14:54:38 GMT
2019-12-06T14:54:38.4901627Z == end clock drift check ==
2019-12-06T14:54:39.8182547Z 
2019-12-06T14:54:39.8268611Z ##[error]Bash exited with code '1'.
2019-12-06T14:54:39.8295209Z ##[section]Starting: Checkout
2019-12-06T14:54:39.8297121Z ==============================================================================
2019-12-06T14:54:39.8297188Z Task         : Get sources
2019-12-06T14:54:39.8297228Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@osa1
Copy link
Contributor Author

osa1 commented Dec 6, 2019

@wesleywiser

I think the tests for #66339 and #67019 should either include the expected MIR or we should make them ui tests. IMO we shouldn't have mir-opt tests that don't verify the MIR.

I'd be happy with either but I wonder if we should be including MIRs just yet because as far as I understand from the Zulip discussion we want to optimize scalar pairs more aggressively in the future so MIRs for these tests are currently not final. Same goes for the test for #66971 too actually.

Opinions?

@oli-obk
Copy link
Contributor

oli-obk commented Dec 6, 2019

Well... in that case you can just move the tests to ui tests and add a // build-pass comment to them.

@osa1
Copy link
Contributor Author

osa1 commented Dec 6, 2019

Yes, that's what @wesleywiser suggested also. I'm just asking whether I should do that, or include current MIRs and keep the tests in current location.

@osa1
Copy link
Contributor Author

osa1 commented Dec 6, 2019

Let's add the MIRs. I'll update.

bors added a commit that referenced this pull request Dec 7, 2019
Const prop should finish propagation into user defined variables

Fixes #66638

Temporarily rebased on top of #67015 to get those fixes.

r? @oli-obk
@bors
Copy link
Contributor

bors commented Dec 9, 2019

⌛ Testing commit 2404a06 with merge 59264e56504466ca5619b0918148e828c6aa61c9...

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-aux 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.
2019-12-09T10:50:00.5811096Z test test_table::table ... ok
2019-12-09T10:50:00.5814311Z 
2019-12-09T10:50:00.5815203Z failures:
2019-12-09T10:50:00.5816043Z 
2019-12-09T10:50:00.5817453Z ---- test_cat::prop_cat_cols stdout ----
2019-12-09T10:50:00.5818006Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-5]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5818665Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-7]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5819186Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-9]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5819635Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-11]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5819963Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5820278Z   left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`,
2019-12-09T10:50:00.5820573Z  right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5820683Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-12-09T10:50:00.5821068Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-13]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5821793Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-15]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5822224Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-17]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5822517Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5822798Z   left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`,
2019-12-09T10:50:00.5823108Z  right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5823509Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-19]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5823951Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-21]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5824382Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-23]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5824671Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5824950Z   left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`,
2019-12-09T10:50:00.5825253Z  right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5825663Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-25]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5826111Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-27]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5826519Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-29]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5826825Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5827101Z   left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`,
2019-12-09T10:50:00.5827474Z  right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5828369Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-31]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5829026Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-33]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5829593Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-35]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5830043Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5830453Z   left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"]]`,
2019-12-09T10:50:00.5830887Z  right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5831598Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-37]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5832180Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-39]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5833423Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-41]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5833948Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5834410Z   left: `[["z\u{82}$", ""], ["쭄爾", ">R"]]`,
2019-12-09T10:50:00.5834915Z  right: `[["\u{feff}z\u{82}$", ""], ["쭄爾", ">R"]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5835571Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-43]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5836267Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-45]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5837602Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-47]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5838049Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5838247Z   left: `[["z\u{82}$", ""]]`,
2019-12-09T10:50:00.5838578Z  right: `[["\u{feff}z\u{82}$", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5839117Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-49]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5839725Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-51]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5840319Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-53]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5840906Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-55]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5841442Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5841696Z   left: `[["z", ""]]`,
2019-12-09T10:50:00.5845311Z  right: `[["\u{feff}z", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5845750Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-57]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5846169Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-59]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5846600Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-61]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5847068Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-63]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5847591Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5847690Z   left: `[]`,
2019-12-09T10:50:00.5847919Z  right: `[["\u{feff}", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5848321Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-65]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5848764Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-67]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5849380Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-69]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5850008Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-71]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5850666Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-73]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5860698Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-75]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5861280Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-77]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5861743Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-79]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5868685Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-81]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5869347Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-83]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5869814Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-85]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5870384Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-87]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5870899Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-89]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5871343Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-91]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5871784Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-92]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5872212Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-94]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5872652Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-97]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5873212Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-98]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5873637Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-100]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5873950Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5874026Z   left: `[]`,
2019-12-09T10:50:00.5874276Z  right: `[["\u{feff}", "ʼn\u{85}\u{8}*"]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5874685Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-102]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5875121Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-104]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5875560Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-106]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5875998Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-108]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5876427Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-110]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5876878Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-112]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5877324Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-114]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5877742Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-116]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5878259Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-118]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5878739Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-120]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5879175Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-122]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5879613Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-124]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5880049Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-126]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5880483Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-128]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5881032Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-130]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5881474Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-132]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5881918Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-134]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5882696Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-136]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5883639Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-138]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5883990Z thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
2019-12-09T10:50:00.5884076Z   left: `[]`,
2019-12-09T10:50:00.5884338Z  right: `[["\u{feff}", ""]]`', tests/test_cat.rs:86:9
2019-12-09T10:50:00.5884770Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-140]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5885272Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-142]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5885776Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-144]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5886579Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-146]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5887166Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-148]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5887585Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-150]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5888080Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-152]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5888551Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-154]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5888976Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-156]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5889382Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-158]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5889813Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-160]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5890348Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-162]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5890757Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-164]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5891178Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-166]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5891608Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-168]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5892024Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-170]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5892450Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-172]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5892870Z [/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-174]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
2019-12-09T10:50:00.5893263Z thread 'test_cat::prop_cat_cols' panicked at '[quickcheck] TEST FAILED (runtime error). Arguments: (CsvData { data: [[[239, 187, 191]]] }, CsvData { data: [[[]]] })
2019-12-09T10:50:00.5893658Z Error: "assertion failed: `(left == right)`\n  left: `[]`,\n right: `[[\"\\u{feff}\", \"\"]]`"', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quickcheck-0.4.1/src/tester.rs:147:28
2019-12-09T10:50:00.5893792Z 
2019-12-09T10:50:00.5893842Z failures:
2019-12-09T10:50:00.5893912Z     test_cat::prop_cat_cols
2019-12-09T10:50:00.5893948Z 
---
2019-12-09T10:50:00.5904221Z 
2019-12-09T10:50:00.5904250Z 
2019-12-09T10:50:00.5904630Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/test/run-fail/pretty src/test/run-pass-valgrind/pretty src/tools/cargo src/tools/cargotest
2019-12-09T10:50:00.5904741Z Build completed unsuccessfully in 1:37:29
2019-12-09T10:50:00.5912829Z make: *** [check-aux] Error 1
2019-12-09T10:50:00.5913110Z Makefile:50: recipe for target 'check-aux' failed
2019-12-09T10:50:00.5921063Z   local time: Mon Dec  9 10:50:00 UTC 2019
2019-12-09T10:50:01.1115916Z   network time: Mon, 09 Dec 2019 10:50:01 GMT
2019-12-09T10:50:01.1120970Z == end clock drift check ==
2019-12-09T10:50:01.9298984Z 
2019-12-09T10:50:01.9298984Z 
2019-12-09T10:50:01.9382758Z ##[error]Bash exited with code '2'.
2019-12-09T10:50:01.9418939Z ##[section]Starting: Checkout
2019-12-09T10:50:01.9420689Z ==============================================================================
2019-12-09T10:50:01.9420775Z Task         : Get sources
2019-12-09T10:50:01.9420838Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Dec 9, 2019

💔 Test failed - checks-azure

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

I'm completely unfamiliar with this part of the CI process. It looks like we're testing various crates from the ecosystem and one of the xsv tests is failing:

[/checkout/obj/build/ct/xsv/target/debug/xit/cat_cols/test-11]: "/checkout/obj/build/ct/xsv/target/debug/xsv" "/checkout/obj/build/ct/xsv/target/debug/xsv" "cat" "columns" "in1.csv" "in2.csv" "--no-headers"
thread 'test_cat::prop_cat_cols' panicked at 'assertion failed: `(left == right)`
  left: `[["z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`,
 right: `[["\u{feff}z\u{82}$", ""], ["w\'", ">R"], ["쭄爾", "ʼn\u{85}\u{8}*"], ["=", ""]]`', tests/test_cat.rs:86:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

\u{feff} is the Unicode byte order mark. I'm not really sure what's going on...

@oli-obk
Copy link
Contributor

oli-obk commented Dec 10, 2019

@bors retry

This PR makes an optimization less aggressive, I don't see how it could be causing this new failure

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 10, 2019
Centril added a commit to Centril/rust that referenced this pull request Dec 11, 2019
Fix constant propagation for scalar pairs

We now only propagate a scalar pair if the Rvalue is a tuple with two scalars. This for example avoids propagating a (u8, u8) value when Rvalue has type `((), u8, u8)` (see the regression test). While this is a correct thing to do, implementation is tricky and will be done later.

Fixes rust-lang#66971
Fixes rust-lang#66339
Fixes rust-lang#67019
bors added a commit that referenced this pull request Dec 11, 2019
Rollup of 6 pull requests

Successful merges:

 - #66881 (Optimize Ord trait implementation for bool)
 - #67015 (Fix constant propagation for scalar pairs)
 - #67074 (Add options to --extern flag.)
 - #67164 (Ensure that panicking in constants eventually errors)
 - #67174 (Remove `checked_add` in `Layout::repeat`)
 - #67205 (Make `publish_toolstate.sh` executable)

Failed merges:

r? @ghost
@bors bors merged commit 2404a06 into rust-lang:master Dec 11, 2019
@osa1
Copy link
Contributor Author

osa1 commented Dec 11, 2019

So that was an intermittent (non-deterministic?) test failure? I guess every project has them 😅

@eddyb
Copy link
Member

eddyb commented Dec 12, 2019

Did we never run perf on this?

My guess is that this regression was caused by this PR. (EDIT: probably not, see below)

@wesleywiser
Copy link
Member

We didn't but I'm not sure this PR is responsible because there are so many check regressions. When we turned on const prop by default, we only really saw improvements on debug & release builds not check builds because check builds don't query for optimized mir.

Centril added a commit to Centril/rust that referenced this pull request Dec 13, 2019
… r=oli-obk

Const prop should finish propagation into user defined variables

Fixes rust-lang#66638

~~Temporarily rebased on top of rust-lang#67015 to get those fixes.~~

r? @oli-obk
Centril added a commit to Centril/rust that referenced this pull request Dec 20, 2019
… r=oli-obk

Const prop should finish propagation into user defined variables

Fixes rust-lang#66638

~~Temporarily rebased on top of rust-lang#67015 to get those fixes.~~

r? @oli-obk
@osa1 osa1 deleted the issue66971 branch March 2, 2021 07:02
bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 20, 2023
Always const-prop scalars and scalar pairs

This removes some complexity from the pass.

The limitation to propagate ScalarPairs only for tuple comes from rust-lang#67015, when ScalarPair constant were modeled using `Rvalue::Aggregate`. Nowadays, we use `ConstValue::ByRef`, which does not care about the underlying type.

The justification for not propagating in all cases was perf. This seems not to be a clear cut any more: rust-lang#113858 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
9 participants