tag-gc -> provenance-gc
This commit is contained in:
parent
0d0a41789f
commit
0ec82fa9d3
2
src/tools/miri/.github/workflows/ci.yml
vendored
2
src/tools/miri/.github/workflows/ci.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Set the tag GC interval to 1 on linux
|
- name: Set the tag GC interval to 1 on linux
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
run: echo "MIRIFLAGS=-Zmiri-tag-gc=1" >> $GITHUB_ENV
|
run: echo "MIRIFLAGS=-Zmiri-provenance-gc=1" >> $GITHUB_ENV
|
||||||
|
|
||||||
# Cache the global cargo directory, but NOT the local `target` directory which
|
# Cache the global cargo directory, but NOT the local `target` directory which
|
||||||
# we cannot reuse anyway when the nightly changes (and it grows quite large
|
# we cannot reuse anyway when the nightly changes (and it grows quite large
|
||||||
|
@ -411,10 +411,10 @@ to Miri failing to detect cases of undefined behavior in a program.
|
|||||||
without an explicit value), `none` means it never recurses, `scalar` means it only recurses for
|
without an explicit value), `none` means it never recurses, `scalar` means it only recurses for
|
||||||
types where we would also emit `noalias` annotations in the generated LLVM IR (types passed as
|
types where we would also emit `noalias` annotations in the generated LLVM IR (types passed as
|
||||||
individual scalars or pairs of scalars). Setting this to `none` is **unsound**.
|
individual scalars or pairs of scalars). Setting this to `none` is **unsound**.
|
||||||
* `-Zmiri-tag-gc=<blocks>` configures how often the pointer tag garbage collector runs. The default
|
* `-Zmiri-provenance-gc=<blocks>` configures how often the pointer provenance garbage collector runs.
|
||||||
is to search for and remove unreachable tags once every `10000` basic blocks. Setting this to
|
The default is to search for and remove unreachable provenance once every `10000` basic blocks. Setting
|
||||||
`0` disables the garbage collector, which causes some programs to have explosive memory usage
|
this to `0` disables the garbage collector, which causes some programs to have explosive memory
|
||||||
and/or super-linear runtime.
|
usage and/or super-linear runtime.
|
||||||
* `-Zmiri-track-alloc-id=<id1>,<id2>,...` shows a backtrace when the given allocations are
|
* `-Zmiri-track-alloc-id=<id1>,<id2>,...` shows a backtrace when the given allocations are
|
||||||
being allocated or freed. This helps in debugging memory leaks and
|
being allocated or freed. This helps in debugging memory leaks and
|
||||||
use after free bugs. Specifying this argument multiple times does not overwrite the previous
|
use after free bugs. Specifying this argument multiple times does not overwrite the previous
|
||||||
|
@ -531,10 +531,10 @@ fn main() {
|
|||||||
Err(err) => show_error!("-Zmiri-report-progress requires a `u32`: {}", err),
|
Err(err) => show_error!("-Zmiri-report-progress requires a `u32`: {}", err),
|
||||||
};
|
};
|
||||||
miri_config.report_progress = Some(interval);
|
miri_config.report_progress = Some(interval);
|
||||||
} else if let Some(param) = arg.strip_prefix("-Zmiri-tag-gc=") {
|
} else if let Some(param) = arg.strip_prefix("-Zmiri-provenance-gc=") {
|
||||||
let interval = match param.parse::<u32>() {
|
let interval = match param.parse::<u32>() {
|
||||||
Ok(i) => i,
|
Ok(i) => i,
|
||||||
Err(err) => show_error!("-Zmiri-tag-gc requires a `u32`: {}", err),
|
Err(err) => show_error!("-Zmiri-provenance-gc requires a `u32`: {}", err),
|
||||||
};
|
};
|
||||||
miri_config.gc_interval = interval;
|
miri_config.gc_interval = interval;
|
||||||
} else if let Some(param) = arg.strip_prefix("-Zmiri-measureme=") {
|
} else if let Some(param) = arg.strip_prefix("-Zmiri-measureme=") {
|
||||||
|
@ -200,7 +200,7 @@ impl<'tcx> Tree {
|
|||||||
/// Climb the tree to get the tag of a distant ancestor.
|
/// Climb the tree to get the tag of a distant ancestor.
|
||||||
/// Allows operations on tags that are unreachable by the program
|
/// Allows operations on tags that are unreachable by the program
|
||||||
/// but still exist in the tree. Not guaranteed to perform consistently
|
/// but still exist in the tree. Not guaranteed to perform consistently
|
||||||
/// if `tag-gc=1`.
|
/// if `provenance-gc=1`.
|
||||||
fn nth_parent(&self, tag: BorTag, nth_parent: u8) -> Option<BorTag> {
|
fn nth_parent(&self, tag: BorTag, nth_parent: u8) -> Option<BorTag> {
|
||||||
let mut idx = self.tag_mapping.get(&tag).unwrap();
|
let mut idx = self.tag_mapping.get(&tag).unwrap();
|
||||||
for _ in 0..nth_parent {
|
for _ in 0..nth_parent {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
// Check how a Reserved with interior mutability
|
// Check how a Reserved with interior mutability
|
||||||
// responds to a Foreign Write under a Protector
|
// responds to a Foreign Write under a Protector
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
#[path = "../../../utils/mod.rs"]
|
#[path = "../../../utils/mod.rs"]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
#[path = "../../utils/mod.rs"]
|
#[path = "../../utils/mod.rs"]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
mod utils;
|
mod utils;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
// Check that a protector goes back to normal behavior when the function
|
// Check that a protector goes back to normal behavior when the function
|
||||||
// returns.
|
// returns.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
#[path = "../../utils/mod.rs"]
|
#[path = "../../utils/mod.rs"]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
#[path = "../../utils/mod.rs"]
|
#[path = "../../utils/mod.rs"]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
|
|
||||||
#[path = "../../utils/mod.rs"]
|
#[path = "../../utils/mod.rs"]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//@revisions: default uniq
|
//@revisions: default uniq
|
||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
//@[uniq]compile-flags: -Zmiri-unique-is-unique
|
//@[uniq]compile-flags: -Zmiri-unique-is-unique
|
||||||
|
|
||||||
#![feature(ptr_internals)]
|
#![feature(ptr_internals)]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//@revisions: default uniq
|
//@revisions: default uniq
|
||||||
//@compile-flags: -Zmiri-tree-borrows -Zmiri-tag-gc=0
|
//@compile-flags: -Zmiri-tree-borrows -Zmiri-provenance-gc=0
|
||||||
//@[uniq]compile-flags: -Zmiri-unique-is-unique
|
//@[uniq]compile-flags: -Zmiri-unique-is-unique
|
||||||
|
|
||||||
#![feature(vec_into_raw_parts)]
|
#![feature(vec_into_raw_parts)]
|
||||||
|
@ -84,7 +84,7 @@ pub fn miri_resolve_frame_names(
|
|||||||
///
|
///
|
||||||
/// The format of what this emits is unstable and may change at any time. In particular, users should be
|
/// The format of what this emits is unstable and may change at any time. In particular, users should be
|
||||||
/// aware that Miri will periodically attempt to garbage collect the contents of all stacks. Callers of
|
/// aware that Miri will periodically attempt to garbage collect the contents of all stacks. Callers of
|
||||||
/// this function may wish to pass `-Zmiri-tag-gc=0` to disable the GC.
|
/// this function may wish to pass `-Zmiri-provenance-gc=0` to disable the GC.
|
||||||
///
|
///
|
||||||
/// This function is extremely unstable. At any time the format of its output may change, its signature may
|
/// This function is extremely unstable. At any time the format of its output may change, its signature may
|
||||||
/// change, or it may be removed entirely.
|
/// change, or it may be removed entirely.
|
||||||
|
Loading…
Reference in New Issue
Block a user