簡體   English   中英

如何用“ffast-math”編譯?

[英]How do I compile with “ffast-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'也不起作用。 我應該使用什么旗幟?

Rust問題#21690討論了添加不精確的浮點運算。 與該問題相關聯的是添加了內在函數 ,允許您在每個操作的基礎上選擇更寬松的規則。 例如, 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程序進行比較時,這對您沒有幫助!

您始終可以使用rustc --emit llvm-ir並使用所需設置編譯LLVM IR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM