mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Auto merge of #112617 - lqd:dump-mir-dataflow, r=tmiasko
make mir dataflow graphviz dumps opt-in This should save some MIR traversals and allocations that are not really needed. Small win but noticeable locally. Let's see what LTO/PGO say. r? `@ghost`
This commit is contained in:
commit
c911e08514
@ -287,9 +287,11 @@ where
|
|||||||
|
|
||||||
let mut results = Results { analysis, entry_sets, _marker: PhantomData };
|
let mut results = Results { analysis, entry_sets, _marker: PhantomData };
|
||||||
|
|
||||||
let res = write_graphviz_results(tcx, body, &mut results, pass_name);
|
if tcx.sess.opts.unstable_opts.dump_mir_dataflow {
|
||||||
if let Err(e) = res {
|
let res = write_graphviz_results(tcx, &body, &mut results, pass_name);
|
||||||
error!("Failed to write graphviz dataflow results: {}", e);
|
if let Err(e) = res {
|
||||||
|
error!("Failed to write graphviz dataflow results: {}", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
results
|
results
|
||||||
@ -299,7 +301,7 @@ where
|
|||||||
// Graphviz
|
// Graphviz
|
||||||
|
|
||||||
/// Writes a DOT file containing the results of a dataflow analysis if the user requested it via
|
/// Writes a DOT file containing the results of a dataflow analysis if the user requested it via
|
||||||
/// `rustc_mir` attributes.
|
/// `rustc_mir` attributes and `-Z dump-mir-dataflow`.
|
||||||
fn write_graphviz_results<'tcx, A>(
|
fn write_graphviz_results<'tcx, A>(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
body: &mir::Body<'tcx>,
|
body: &mir::Body<'tcx>,
|
||||||
@ -328,9 +330,7 @@ where
|
|||||||
io::BufWriter::new(fs::File::create(&path)?)
|
io::BufWriter::new(fs::File::create(&path)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
None if tcx.sess.opts.unstable_opts.dump_mir_dataflow
|
None if dump_enabled(tcx, A::NAME, def_id) => {
|
||||||
&& dump_enabled(tcx, A::NAME, def_id) =>
|
|
||||||
{
|
|
||||||
create_dump_file(tcx, ".dot", false, A::NAME, &pass_name.unwrap_or("-----"), body)?
|
create_dump_file(tcx, ".dot", false, A::NAME, &pass_name.unwrap_or("-----"), body)?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user