Rollup of 6 pull requests - #163313
Closed
jhpratt wants to merge 13 commits into
Closed
Rollup of 6 pull requests#163313jhpratt wants to merge 13 commits into
jhpratt wants to merge 13 commits into
Conversation
…ons to be overlapping in some cases
LLVM 24 removed the -wasm-enable-eh option in favor of relying on TargetMachine.Options.ExceptionModel == Wasm. We were already setting ExceptionModel to Wasm on LLVM 24 in PassWrapper.cpp for wasm targets so this is a no-op on LLVM 24. Further, we already implied the -wasm-enable-eh flag on LLVM 23, so the explicit pass in wasm-exceptions-nostd was redundant and can be safely dropped.
A recent change caused LLVM to identify `vpmov*, vpblend*` type instructions and merges them into single `vblendv*` instructions.
…s, r=oli-obk Disallow accesses through an Index projection when a sibling ConstantIndex projection has been moved out of Fixes rust-lang#160525 - Refactored the `LookupResult` enum returned by `MovePathLookup::find`: - The `LookupResult::Parent(None)` case is now a separate variant, `LookupResult::None` - `LookupResult::Parent` has an additional field containing the variant immediately following the parent move path. - Borrowck's `check_if_full_path_is_moved` now checks that new field and if it is `PlaceElem::Index`, it makes sure there are no uninit descendants of the indexed array's move path (which can only be `ConstantIndex` and descendants of those.) - `move_path_closest_to` is removed and inlined into `check_if_full_path_is_moved`.
…-obk Use get to avoid ICE on unresolved imports Fixes rust-lang#163294 After rust-lang#161349, unresolved imports may not have `import_res`.
rustc_codegen_llvm: catch up with LLVM 24 on wasm exceptions LLVM 24 [removed](llvm/llvm-project@cf40ab1) the -wasm-enable-eh option in favor of relying on TargetMachine.Options.ExceptionModel == Wasm. We were already setting ExceptionModel to Wasm on LLVM 24 in PassWrapper.cpp for wasm targets so this is a no-op on LLVM 24. Further, we already implied the -wasm-enable-eh flag on LLVM 23, so the explicit pass in wasm-exceptions-nostd was redundant and can be safely dropped. @rustbot label: +llvm-main
tests: accept more efficient simd output from LLVM 24 A [recent change](llvm/llvm-project@4200a8e) caused LLVM to identify `vpmov*, vpblend*` type instructions and merges them into single `vblendv*` instructions. An LLM was used to identify the breaking change in the relevant range automatically (and it gave some explanation as to why, which matches the LLVM commit message), but the changes are all mine. @rustbot label: +llvm-main (this is the same as rust-lang#162547, which I accidentally perma-closed by having a misfire while cleaning up git branches in my rust repo)
…idation, r=oli-obk Fix provisional cache invalidation in the old trait solver (ran into probing ICE issue) Hi I found this issue while trying to fix incremental compilation ICE issue in a ledger system i was working at owrk(luckily it panic early) I noticed that ! in ProvisionalEvaluationCache::on_failure at compiler/rustc_trait_selection/src/traits/select/mod.rs:3094 was not doing its intended behavior. The documentation says that on_failure should remove provisional cache entries created at or after the failing node, meaning entries where from_dfn >= dfn. The current condition is !eval.from_dfn >= dfn. Since from_dfn is usize and ! binds more tightly than >=; this applies a bitwise NOT to from_dfn before comparing it with dfn. For the small DFN values we normally encountered here, that produces a huge number causing the condition to always be true on_failure then clears the entire provisional cache instead of preserving entries created before the failing node. This PR removes the ! so fn works as is intended behavior makign the comments true, I also compared local compilation times using the old trait solver and emitting metadata only. The median results were: ``` Test case Before With ! removed Regression test for rust-lang#150907 32.56 ms 32.44 ms Synthetic cyclic types with an error 32.15 ms 32.18 ms Synthetic cyclic types without errors 27.15 ms 26.92 ms ``` I tested this on all avilable toolchains, all seem to produce similar results. This DOES NOT fix the ICE issue it still happens this is just a correction on behavior and that boost performance and then i can fix the ICE issue, The ICE issue I fix by removing the tainted_by_errors() lines 1098-1105 else condition (introduced by pr rust-lang#155355 from what i believe was fixing a performance issue so timing is important)that allows caching results that depend on the evaluation stack This fix plus the removal of the ! makes the existing regression test much slower yet faster than the original issue which was 30s (i believe) (here is a small sample data i took) ``` Change Time Baseline 0.035 s Remove the tainted_by_errors() branch 30.59 s Remove that branch and remove the ! 2.73 s ``` While its not beating the current baseline it does correctly not throw a panic(which has cause issues in our ledger), I would like to fix the ICE issue, but that needs more work if the intention is to equal the .03 time and i heard this trait solver is being deprecrated soon? For now I am keeping this PR focused on the provisional cache invalidation and would like to follow up on the ICE in a separate PR
ty::CoroutineClosure is more a closure than a coroutine Follow-up to rust-lang#162361. @rust-lang/opsem It seems to me CoroutineClosure is more like Closure than like Coroutine, hence the change. (I'm not sure why it is a separate type to begin with.)
Member
Author
|
@bors r+ p=5 force |
Contributor
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
2 tasks
Contributor
|
PR #160780, which is a member of this rollup, was unapproved. This rollup was thus unapproved. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
r? @ghost
Create a similar rollup