-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Use poison instead of undef #109220
Use poison instead of undef #109220
Conversation
In cases where it is legal, we should prefer poison values over undef values. This replaces undef with poison for aggregate construction and for uninhabited types. There are more places where we can likely use poison, but I wanted to stay conservative to start with. In particular the aggregate case is important for newer LLVM versions, which are not able to handle an undef base value during early optimization due to poison-propagation concerns.
Some changes occurred in compiler/rustc_codegen_gcc cc @antoyo |
@bors r+ rollup=never |
⌛ Testing commit 3033182 with merge 4260ed21b1bc5a071a06b541c1ed363c62ab9a61... |
💔 Test failed - checks-actions |
looks spurious |
⌛ Testing commit 3033182 with merge 14d4992647c7efd8d722c21bd6af3ff113939252... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
@bors retry spurious (?) error in a remote test client |
⌛ Testing commit 3033182 with merge 54d9f6a85c06d4426ec028246b6ee661eb588d7f... |
💔 Test failed - checks-actions |
@bors retry |
@bors p=100 Trying to see if incident is resolved. |
⌛ Testing commit 3033182 with merge 64a937066e507a143f2935d909cebf13e58a2cf8... |
💔 Test failed - checks-actions |
@bors retry |
☀️ Test successful - checks-actions |
Finished benchmarking commit (31d74fb): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
|
In cases where it is legal, we should prefer poison values over undef values.
This replaces undef with poison for aggregate construction and for uninhabited types. There are more places where we can likely use poison, but I wanted to stay conservative to start with.
In particular the aggregate case is important for newer LLVM versions, which are not able to handle an undef base value during early optimization due to poison-propagation concerns.
r? @cuviper