Expose cranelift nan canonicalization config via C API (#4154)

* Add cranelift_nan_canonicalization to c api header

* Add cranelift_nan_canonicalization to capi/config.rs

* Fix func name
This commit is contained in:
Olexiy Kulchitskiy
2022-05-14 21:28:49 +03:00
committed by GitHub
parent 2e14a0ecc5
commit 8d7bccefcb
2 changed files with 21 additions and 0 deletions

View File

@@ -213,6 +213,19 @@ WASMTIME_CONFIG_PROP(wasmtime_error_t*, strategy, wasmtime_strategy_t)
*/ */
WASMTIME_CONFIG_PROP(void, cranelift_debug_verifier, bool) WASMTIME_CONFIG_PROP(void, cranelift_debug_verifier, bool)
/**
* \brief Configures whether Cranelift should perform a NaN-canonicalization pass.
*
* When Cranelift is used as a code generation backend this will configure
* it to replace NaNs with a single canonical value. This is useful for users
* requiring entirely deterministic WebAssembly computation.
*
* This is not required by the WebAssembly spec, so it is not enabled by default.
*
* The default value for this is `false`
*/
WASMTIME_CONFIG_PROP(void, cranelift_nan_canonicalization, bool)
/** /**
* \brief Configures Cranelift's optimization level for JIT code. * \brief Configures Cranelift's optimization level for JIT code.
* *

View File

@@ -120,6 +120,14 @@ pub extern "C" fn wasmtime_config_cranelift_debug_verifier_set(
c.config.cranelift_debug_verifier(enable); c.config.cranelift_debug_verifier(enable);
} }
#[no_mangle]
pub extern "C" fn wasmtime_config_cranelift_nan_canonicalization_set(
c: &mut wasm_config_t,
enable: bool,
) {
c.config.cranelift_nan_canonicalization(enable);
}
#[no_mangle] #[no_mangle]
pub extern "C" fn wasmtime_config_cranelift_opt_level_set( pub extern "C" fn wasmtime_config_cranelift_opt_level_set(
c: &mut wasm_config_t, c: &mut wasm_config_t,