Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
9158e17
Document more use cases of dataflow
oli-obk Dec 15, 2019
5f08df1
Address review comments
oli-obk Dec 20, 2019
89308bb
Don't run const propagation on items with inconsistent bounds
Aaron1011 Jan 6, 2020
4a84027
Add additional regression test
Aaron1011 Jan 7, 2020
9951450
Fix typo
Aaron1011 Jan 7, 2020
1ffb9cf
rustdoc: improve stability mark arrows
liigo Jan 7, 2020
ae3a53f
rustdoc: use another stability mark arrow, no rotate.
liigo Jan 9, 2020
74823fc
Diagnostics should start lowercase
varkor Jan 10, 2020
84c8849
Diagnostics should not end with a full stop
varkor Jan 10, 2020
7876fa6
Add backticks in appropriate places
varkor Jan 10, 2020
7d2c75d
Fix formatting ellipses at the end of some diagnostics
varkor Jan 10, 2020
a6924c7
Appease tidy
varkor Jan 10, 2020
6ea4dba
Update `output-default.json` and rustdoc test
varkor Jan 10, 2020
7f26d32
Convert test to check-pass
Aaron1011 Jan 11, 2020
b4125f0
Add "--emit=link"
Aaron1011 Jan 11, 2020
ed039e8
restore some rustc_parse visibilities
calebcartwright Jan 11, 2020
f9a5746
parse extended terminfo format
euclio Jan 7, 2020
eec0cbd
Rollup merge of #67313 - oli-obk:document_all_the_t̶h̶i̶n̶g̶s̶dataflo…
Centril Jan 12, 2020
c40b394
Rollup merge of #67914 - Aaron1011:fix/const-prop-impossible, r=matth…
Centril Jan 12, 2020
a3cbaae
Rollup merge of #67959 - liigo:patch-13, r=GuillaumeGomez
Centril Jan 12, 2020
1abb7e9
Rollup merge of #68036 - euclio:libterm-ncurses6-fix, r=KodrAus
Centril Jan 12, 2020
098f48c
Rollup merge of #68096 - varkor:diagnostic-cleanup, r=Centril
Centril Jan 12, 2020
92ed032
Rollup merge of #68135 - calebcartwright:rustc-parse-visibilities, r=…
Centril Jan 12, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Address review comments
  • Loading branch information
oli-obk committed Dec 20, 2019
commit 5f08df104742ce400e966f6cd80c9029f0328922
12 changes: 9 additions & 3 deletions src/librustc_mir/dataflow/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -651,16 +651,22 @@ pub trait BottomValue {

/// Merges `in_set` into `inout_set`, returning `true` if `inout_set` changed.
///
/// You usually don't need to override this, since it automatically applies
/// It is almost certainly wrong to override this, since it automatically applies
/// * `inout_set & in_set` if `BOTTOM_VALUE == true`
/// * `inout_set | in_set` if `BOTTOM_VALUE == false`
///
/// This means that if a bit is not `BOTTOM_VALUE`, it is propagated into all target blocks.
/// For clarity, the above statement again from a different perspective:
/// A block's initial bit value is `!BOTTOM_VALUE` if *any* predecessor block's bit value is
/// A bit in the block's entry set is `!BOTTOM_VALUE` if *any* predecessor block's bit value is
/// `!BOTTOM_VALUE`.
///
/// There are situations where you want the opposite behaviour: propagate only if *all*
/// predecessor blocks's value is `!BOTTOM_VALUE`. In that case you need to
/// predecessor blocks's value is `!BOTTOM_VALUE`.
/// E.g. if you want to know whether a bit is *definitely* set at a specific location. This
/// means that all code paths leading to the location must have set the bit, instead of any
/// code path leading there.
///
/// If you want this kind of "definitely set" analysis, you need to
/// 1. Invert `BOTTOM_VALUE`
/// 2. Reset the `entry_set` in `start_block_effect` to `!BOTTOM_VALUE`
/// 3. Override `join` to do the opposite from what it's doing now.
Expand Down