Revive the -T aka --time-passes argument to report run times on the CLI;

This commit is contained in:
Benjamin Bouvier
2018-10-15 20:17:25 +02:00
committed by Dan Gohman
parent 58229e10bf
commit af0a239539
5 changed files with 54 additions and 9 deletions

View File

@@ -199,10 +199,12 @@ fn main() {
}
("test", Some(rest_cmd)) => {
handle_debug_flag(rest_cmd.is_present("debug"));
cranelift_filetests::run(
let result = cranelift_filetests::run(
rest_cmd.is_present("verbose"),
rest_cmd.is_present("time-passes"),
&get_vec(rest_cmd.values_of("file")),
).map(|_time| ())
).map(|_time| ());
result
}
("pass", Some(rest_cmd)) => {
handle_debug_flag(rest_cmd.is_present("debug"));
@@ -215,6 +217,7 @@ fn main() {
// Can be unwrapped because 'single-file' is required
cranelift_filetests::run_passes(
rest_cmd.is_present("verbose"),
rest_cmd.is_present("time-passes"),
&get_vec(rest_cmd.values_of("pass")),
target_val,
rest_cmd.value_of("single-file").unwrap(),
@@ -235,6 +238,7 @@ fn main() {
compile::run(
get_vec(rest_cmd.values_of("file")),
rest_cmd.is_present("print"),
rest_cmd.is_present("time-passes"),
&get_vec(rest_cmd.values_of("set")),
target_val,
)
@@ -257,6 +261,7 @@ fn main() {
&get_vec(rest_cmd.values_of("set")),
target_val,
rest_cmd.is_present("print-size"),
rest_cmd.is_present("time-passes"),
);
#[cfg(not(feature = "wasm"))]

View File

@@ -3,6 +3,7 @@
use cranelift_codegen::isa::TargetIsa;
use cranelift_codegen::print_errors::pretty_error;
use cranelift_codegen::settings::FlagsOrIsa;
use cranelift_codegen::timing;
use cranelift_codegen::Context;
use cranelift_codegen::{binemit, ir};
use cranelift_reader::parse_test;
@@ -60,6 +61,7 @@ impl binemit::TrapSink for PrintTraps {
pub fn run(
files: Vec<String>,
flag_print: bool,
flag_report_times: bool,
flag_set: &[String],
flag_isa: &str,
) -> Result<(), String> {
@@ -68,13 +70,20 @@ pub fn run(
for filename in files {
let path = Path::new(&filename);
let name = String::from(path.as_os_str().to_string_lossy());
handle_module(flag_print, &path.to_path_buf(), &name, parsed.as_fisa())?;
handle_module(
flag_print,
flag_report_times,
&path.to_path_buf(),
&name,
parsed.as_fisa(),
)?;
}
Ok(())
}
fn handle_module(
flag_print: bool,
flag_report_times: bool,
path: &PathBuf,
name: &str,
fisa: FlagsOrIsa,
@@ -134,6 +143,10 @@ fn handle_module(
}
}
if flag_report_times {
print!("{}", timing::take_current());
}
Ok(())
}

View File

@@ -10,6 +10,7 @@
use cranelift_codegen::print_errors::{pretty_error, pretty_verifier_error};
use cranelift_codegen::settings::FlagsOrIsa;
use cranelift_codegen::Context;
use cranelift_codegen::timing;
use cranelift_entity::EntityRef;
use cranelift_wasm::{
translate_module, DummyEnvironment, FuncIndex, ModuleEnvironment, ReturnMode,
@@ -46,6 +47,7 @@ pub fn run(
flag_set: &[String],
flag_triple: &str,
flag_print_size: bool,
flag_report_times: bool,
) -> Result<(), String> {
let parsed = parse_sets_and_triple(flag_set, flag_triple)?;
@@ -58,6 +60,7 @@ pub fn run(
flag_check_translation,
flag_print,
flag_print_size,
flag_report_times,
&path.to_path_buf(),
&name,
parsed.as_fisa(),
@@ -72,6 +75,7 @@ fn handle_module(
flag_check_translation: bool,
flag_print: bool,
flag_print_size: bool,
flag_report_times: bool,
path: &PathBuf,
name: &str,
fisa: FlagsOrIsa,
@@ -209,6 +213,10 @@ fn handle_module(
println!("Total module bytecode size: {} bytes", total_bytecode_size);
}
if flag_report_times {
println!("{}", timing::take_current());
}
let _ = terminal.fg(term::color::GREEN);
vprintln!(flag_verbose, "ok");
let _ = terminal.reset();