rustc_mir: split qualify_consts' "value qualification" bitflags into separate computations.
Prerequisite for computing those bits through a dataflow algorithm ~~(which I might do in this PR later)~~.
This PR should not change behavior overall, other than treating `simd_shuffle*` identically to `#[rustc_args_required_const]` (maybe we should just have `#[rustc_args_required_const]` on the intrinsic imports of `simd_shuffle*`? cc @gnzlbg)
cc @oli-obk @alexreg
Rollup of 7 pull requests
Successful merges:
- #58309 (Add more profiler events)
- #58347 (Closure bounds fixes)
- #58365 (Add an option to print the status of incremental tasks / dep nodes after running them)
- #58371 (Check user type annotations for range patterns.)
- #58378 (rustc: Implement incremental "fat" LTO)
- #58407 (specify "upper camel case" in style lint)
- #58449 (Notify @topecongiro when the state of rustfmt has changed)
Failed merges:
r? @ghost
Notify @topecongiro when the state of rustfmt has changed
I would like to get notified when the state of rustfmt has changed.
Context: I am currently a leader of the rustfmt working group.
cc @nrc do you still want to get notified?
rustc: Implement incremental "fat" LTO
Currently the compiler will produce an error if both incremental
compilation and full fat LTO is requested. With recent changes and the
advent of incremental ThinLTO, however, all the hard work is already
done for us and it's actually not too bad to remove this error!
This commit updates the codegen backend to allow incremental full fat
LTO. The semantics are that the input modules to LTO are all produce
incrementally, but the final LTO step is always done unconditionally
regardless of whether the inputs changed or not. The only real
incremental win we could have here is if zero of the input modules
changed, but that's so rare it's unlikely to be worthwhile to implement
such a code path.
cc #57968
cc rust-lang/cargo#6643
Check user type annotations for range patterns.
Fixes#58299.
This PR builds on the fix from #58161 (which fixed miscompilation
caused by the introduction of `AscribeUserType` patterns for associated
constants) to start checking these patterns are well-formed for ranges
(previous fix just ignored them so that miscompilation wouldn't occur).
r? @arielb1
Closure bounds fixes
* Ensures that "nice region errors" are buffered so that they are sorted and migrated correctly.
* Propagates fewer constraints for closures (cc #58178)
* Propagate constraints from closures more precisely (#58127)
Closes#58127
r? @nikomatsakis