如何编译" ffast-math"?

时间:2015-06-16 09:19:29

标签: rust llvm fast-math

我试图对一些Rust代码进行基准测试,但我无法弄清楚如何设置" ffast-math"选项。

% rustc -C opt-level=3 -C llvm-args='-enable-unsafe-fp-math' unrolled.rs
rustc: Unknown command line argument '-enable-unsafe-fp-math'.  Try: 'rustc -help'
rustc: Did you mean '-enable-load-pre'?

llvm-args='-ffast-math'llvm-args='-fast'也无效。我应该使用什么旗帜?

2 个答案:

答案 0 :(得分:5)

Rust问题#21690讨论了添加不精确的浮点运算。该问题与addition of intrinsics相关联,可让您在每个操作的基础上选择更宽松的规则。例如,fadd_fast

pub unsafe extern "rust-intrinsic" fn fadd_fast<T>(a: T, b: T) -> T

使用内在函数需要夜间编译器和不安全的代码:

#![feature(core_intrinsics)]

use std::intrinsics::fadd_fast;

fn main() {
    let result = unsafe { fadd_fast(42.0, 31.0) };
    println!("{}", result);
}

最终,这是一个很多更好的设计,而不是命令行标志的全有或全无解决方案。谁知道是否有一些浮点计算对于不使用快速数学至关重要,深埋在你的程序中?但是,在尝试与选择它的C程序进行比较时,这对您没有帮助!

答案 1 :(得分:2)

您始终可以使用 if(editText.getText().toString().equals(text2)){ Toast.makeText(getApplicationContext(),"Your message/Your String",Toast.LENGTH_LONG).show(); } 并使用所需设置编译LLVM IR。