Stream: t-compiler/wg-mir-opt

Topic: Miri test failures


RalfJ (Jun 22 2020 at 08:11, on Zulip):

Uh-oh, I think we have an incorrect optimization somewhere... the Miri test suite started failing with -Zmir-opt-level=3: https://travis-ci.com/github/rust-lang/miri/jobs/352020194

RalfJ (Jun 22 2020 at 08:22, on Zulip):

specifically, this assertion fails

oli (Jun 22 2020 at 08:40, on Zulip):

yea, mir opt level 3 contains buggy things

oli (Jun 22 2020 at 08:41, on Zulip):

https://github.com/rust-lang/rust/pull/73262 is an example

RalfJ (Jun 22 2020 at 09:24, on Zulip):

https://github.com/rust-lang/rust/issues/73609

RalfJ (Jun 22 2020 at 09:25, on Zulip):

well this is a regression, it worked before

RalfJ (Jun 22 2020 at 09:27, on Zulip):

oli said:

https://github.com/rust-lang/rust/pull/73262 is an example

wait we are keeping known incorrect optimization passes enabled?!? that's like a deliberate soundness issue, why are we doing this?^^

RalfJ (Jun 22 2020 at 09:27, on Zulip):

"high opt level" shouldn't imply "contains critical bugs", that just makes no sense...

RalfJ (Jun 22 2020 at 09:33, on Zulip):

if for some reason you want to keep those broken optimizations reachable, please hide them behind -Zmir-please-break-my-code or so

oli (Jun 22 2020 at 09:35, on Zulip):

yes, we discussed that recently and it will come

RalfJ (Jun 22 2020 at 09:37, on Zulip):

:)

RalfJ (Jun 22 2020 at 09:38, on Zulip):

I'll make miri test mir-opt-level=2 until then

RalfJ (Jun 22 2020 at 09:44, on Zulip):

oh no I have to go all the way down to 1...

Jonas Schievink (Jun 22 2020 at 09:45, on Zulip):

Does the const prop change even touch opt-level=3-only code? Maybe it miscompiles on all levels, but you only notice on levels 2 and up

bjorn3 (Jun 22 2020 at 09:48, on Zulip):

Operand::Indirect only gets const-prop'ed at mir-opt-level=2 and higher: https://github.com/wesleywiser/rust/blob/2f49d554ff1afd1633a01d6b84192ad0147d9097/src/librustc_mir/transform/const_prop.rs#L705-L709

RalfJ (Jun 22 2020 at 09:48, on Zulip):

the new thing is actually a stable-to-nightly regression:
https://github.com/rust-lang/rust/issues/73609#issuecomment-647409694

RalfJ (Jun 22 2020 at 09:53, on Zulip):

and it has nothing to do with unions... it seems to just ignore mutation via references entirely :scared:

RalfJ (Jun 22 2020 at 09:54, on Zulip):

how does this not break, like, everything?^^

Last update: Sep 28 2020 at 16:45UTC