diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 4 | ||||
-rw-r--r-- | src/binaryen-c.h | 10 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 12 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index f4515208f..bbacd517b 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -3570,6 +3570,10 @@ void BinaryenSetLowMemoryUnused(int on) { globalPassOptions.lowMemoryUnused = on != 0; } +int BinaryenGetFastMath(void) { return globalPassOptions.fastMath; } + +void BinaryenSetFastMath(int value) { globalPassOptions.fastMath = value != 0; } + const char* BinaryenGetPassArgument(const char* key) { assert(key); const auto& args = globalPassOptions.arguments; diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 4ca76657d..10b52dbdd 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -2134,6 +2134,16 @@ BINARYEN_API int BinaryenGetLowMemoryUnused(void); // when optimizing. Applies to all modules, globally. BINARYEN_API void BinaryenSetLowMemoryUnused(int on); +// Gets whether fast math optimizations are enabled, ignoring for example +// corner cases of floating-point math like NaN changes. +// Applies to all modules, globally. +BINARYEN_API int BinaryenGetFastMath(void); + +// Enables or disables fast math optimizations, ignoring for example +// corner cases of floating-point math like NaN changes. +// Applies to all modules, globally. +BINARYEN_API void BinaryenSetFastMath(int value); + // Gets the value of the specified arbitrary pass argument. // Applies to all modules, globally. BINARYEN_API const char* BinaryenGetPassArgument(const char* name); diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 529474098..3cce22411 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -3046,6 +3046,18 @@ Module['setLowMemoryUnused'] = function(on) { Module['_BinaryenSetLowMemoryUnused'](on); }; +// Gets whether fast math optimizations are enabled, ignoring for example +// corner cases of floating-point math like NaN changes. +Module['getFastMath'] = function() { + return Boolean(Module['_BinaryenGetFastMath']()); +}; + +// Enables or disables fast math optimizations, ignoring for example +// corner cases of floating-point math like NaN changes. +Module['setFastMath'] = function(value) { + Module['_BinaryenSetFastMath'](value); +}; + // Gets the value of the specified arbitrary pass argument. Module['getPassArgument'] = function(key) { return preserveStack(() => { |