-
Notifications
You must be signed in to change notification settings - Fork 13.4k
index: add method for checking range on DenseBitSet #141871
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
Conversation
The Miri subtree was changed cc @rust-lang/miri |
This comment has been minimized.
This comment has been minimized.
001744c
to
4164a82
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also add a unit test for contains_any
in compiler/rustc_index/src/bit_set/tests.rs
?
compiler/rustc_index/src/bit_set.rs
Outdated
let (start_word_index, start_mask) = word_index_and_mask(start); | ||
let (end_word_index, end_mask) = word_index_and_mask(end); | ||
|
||
if self.words[start_word_index] & (!start_mask | !(start_mask - 1)) != 0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like !start_mask | !(start_mask - 1)
is always all ones. For example, if start_mask
is 0b001000
, then we have:
!(0b001000) | !(0b001000 - 1)
0b110111 | !(0b000111)
0b110111 | 0b111000
0b111111
I think maybe you just want !(start_mask - 1)
, but let me know if I misunderstood.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok you're right, I tried to make it symmetric with the end_mask
bit but I missed that. Thanks!
@rustbot ready |
This comment has been minimized.
This comment has been minimized.
@bors r+ |
This comment has been minimized.
This comment has been minimized.
Gah, I think I know what's wrong. Should have let the tests run to the end locally, I think I fixed it and I'll push if so |
Should be good? I'll wait for the CI before re-requesting approval just to be safe |
@eholk you can r- this for now so it doesn't sit in the queue |
@bors r- |
Sure thing. Feel free to r=me once things are passing again, or ping me and I'll approve it again. |
@bors r=eholk |
@nia-e: 🔑 Insufficient privileges: Not in reviewers |
😔 |
@bors r+ rollup |
Rollup of 8 pull requests Successful merges: - #136687 (Improve the documentation of `Display` and `FromStr`, and their interactions) - #137306 (Remove `i128` and `u128` from `improper_ctypes_definitions`) - #138699 (build dist for x86_64-pc-solaris and sparcv9-sun-solaris) - #141250 (add s390x z17 target features) - #141467 (make `OsString::new` and `PathBuf::new` unstably const) - #141871 (index: add method for checking range on DenseBitSet) - #141888 (Use non-2015 edition paths in tests that do not test for their resolution) - #142000 (bootstrap: don't symlink source dir into stage0 sysroot) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #141871 - nia-e:fix-bitset, r=eholk index: add method for checking range on DenseBitSet Micro-optimisation that Miri benefits from with the new isolated allocator for native-libs mode. Also possibly just a useful method to have on `DenseBitSet`
Rollup of 8 pull requests Successful merges: - rust-lang/rust#136687 (Improve the documentation of `Display` and `FromStr`, and their interactions) - rust-lang/rust#137306 (Remove `i128` and `u128` from `improper_ctypes_definitions`) - rust-lang/rust#138699 (build dist for x86_64-pc-solaris and sparcv9-sun-solaris) - rust-lang/rust#141250 (add s390x z17 target features) - rust-lang/rust#141467 (make `OsString::new` and `PathBuf::new` unstably const) - rust-lang/rust#141871 (index: add method for checking range on DenseBitSet) - rust-lang/rust#141888 (Use non-2015 edition paths in tests that do not test for their resolution) - rust-lang/rust#142000 (bootstrap: don't symlink source dir into stage0 sysroot) r? `@ghost` `@rustbot` modify labels: rollup
Micro-optimisation that Miri benefits from with the new isolated allocator for native-libs mode. Also possibly just a useful method to have on
DenseBitSet