diff --git a/cranelift/src/filetest/legalizer.rs b/cranelift/src/filetest/legalizer.rs index 806730b4ed..0c5ea04b77 100644 --- a/cranelift/src/filetest/legalizer.rs +++ b/cranelift/src/filetest/legalizer.rs @@ -43,7 +43,7 @@ impl SubTest for TestLegalizer { comp_ctx.flowgraph(); comp_ctx .legalize(isa) - .map_err(|e| pretty_error(&comp_ctx.func, e))?; + .map_err(|e| pretty_error(&comp_ctx.func, context.isa, e))?; let mut text = String::new(); write!(&mut text, "{}", &comp_ctx.func.display(Some(isa))) diff --git a/cranelift/src/filetest/licm.rs b/cranelift/src/filetest/licm.rs index dcde7dd7be..548818e758 100644 --- a/cranelift/src/filetest/licm.rs +++ b/cranelift/src/filetest/licm.rs @@ -41,7 +41,7 @@ impl SubTest for TestLICM { comp_ctx.flowgraph(); comp_ctx .licm() - .map_err(|e| pretty_error(&comp_ctx.func, e))?; + .map_err(|e| pretty_error(&comp_ctx.func, context.isa, e))?; let mut text = String::new(); write!(&mut text, "{}", &comp_ctx.func) diff --git a/cranelift/src/filetest/regalloc.rs b/cranelift/src/filetest/regalloc.rs index 1699d384a8..e90012973b 100644 --- a/cranelift/src/filetest/regalloc.rs +++ b/cranelift/src/filetest/regalloc.rs @@ -48,10 +48,10 @@ impl SubTest for TestRegalloc { // TODO: Should we have an option to skip legalization? comp_ctx .legalize(isa) - .map_err(|e| pretty_error(&comp_ctx.func, e))?; + .map_err(|e| pretty_error(&comp_ctx.func, context.isa, e))?; comp_ctx .regalloc(isa) - .map_err(|e| pretty_error(&comp_ctx.func, e))?; + .map_err(|e| pretty_error(&comp_ctx.func, context.isa, e))?; let mut text = String::new(); write!(&mut text, "{}", &comp_ctx.func.display(Some(isa))) diff --git a/cranelift/src/filetest/runone.rs b/cranelift/src/filetest/runone.rs index b43d926f0e..3b23463fef 100644 --- a/cranelift/src/filetest/runone.rs +++ b/cranelift/src/filetest/runone.rs @@ -118,7 +118,7 @@ fn run_one_test<'a>(tuple: (&'a SubTest, &'a Flags, Option<&'a TargetIsa>), // Should we run the verifier before this test? if !context.verified && test.needs_verifier() { verify_function(&func, isa) - .map_err(|e| pretty_verifier_error(&func, e))?; + .map_err(|e| pretty_verifier_error(&func, isa, e))?; context.verified = true; } diff --git a/cranelift/src/filetest/simple_gvn.rs b/cranelift/src/filetest/simple_gvn.rs index f220cbdde7..a522c17bad 100644 --- a/cranelift/src/filetest/simple_gvn.rs +++ b/cranelift/src/filetest/simple_gvn.rs @@ -41,7 +41,7 @@ impl SubTest for TestSimpleGVN { comp_ctx.flowgraph(); comp_ctx .simple_gvn() - .map_err(|e| pretty_error(&comp_ctx.func, e))?; + .map_err(|e| pretty_error(&comp_ctx.func, context.isa, e))?; let mut text = String::new(); write!(&mut text, "{}", &comp_ctx.func) diff --git a/cranelift/src/utils.rs b/cranelift/src/utils.rs index b637f7ca49..f620f5f316 100644 --- a/cranelift/src/utils.rs +++ b/cranelift/src/utils.rs @@ -3,6 +3,7 @@ use cretonne::ir::entities::AnyEntity; use cretonne::{ir, verifier}; use cretonne::result::CtonError; +use cretonne::isa::TargetIsa; use std::fmt::Write; use std::fs::File; use std::io::{Result, Read}; @@ -34,7 +35,10 @@ pub fn match_directive<'a>(comment: &'a str, directive: &str) -> Option<&'a str> } /// Pretty-print a verifier error. -pub fn pretty_verifier_error(func: &ir::Function, err: verifier::Error) -> String { +pub fn pretty_verifier_error(func: &ir::Function, + isa: Option<&TargetIsa>, + err: verifier::Error) + -> String { let mut msg = err.to_string(); match err.location { AnyEntity::Inst(inst) => { @@ -42,14 +46,14 @@ pub fn pretty_verifier_error(func: &ir::Function, err: verifier::Error) -> Strin } _ => msg.push('\n'), } - write!(msg, "{}", func).unwrap(); + write!(msg, "{}", func.display(isa)).unwrap(); msg } /// Pretty-print a Cretonne error. -pub fn pretty_error(func: &ir::Function, err: CtonError) -> String { +pub fn pretty_error(func: &ir::Function, isa: Option<&TargetIsa>, err: CtonError) -> String { if let CtonError::Verifier(e) = err { - pretty_verifier_error(func, e) + pretty_verifier_error(func, isa, e) } else { err.to_string() }