diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 48 | ||||
-rw-r--r-- | src/binaryen-c.h | 24 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 30 |
3 files changed, 102 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 17c95c96e..fc16eee42 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -3958,6 +3958,54 @@ void BinaryenClearPassArguments(void) { globalPassOptions.arguments.clear(); } +BinaryenIndex BinaryenGetAlwaysInlineMaxSize(void) { + if (tracing) { + std::cout << " BinaryenGetAlwaysInlineMaxSize();\n"; + } + + return globalPassOptions.inlining.alwaysInlineMaxSize; +} + +void BinaryenSetAlwaysInlineMaxSize(BinaryenIndex size) { + if (tracing) { + std::cout << " BinaryenSetAlwaysInlineMaxSize(" << size << ");\n"; + } + + globalPassOptions.inlining.alwaysInlineMaxSize = size; +} + +BinaryenIndex BinaryenGetFlexibleInlineMaxSize(void) { + if (tracing) { + std::cout << " BinaryenGetFlexibleInlineMaxSize();\n"; + } + + return globalPassOptions.inlining.flexibleInlineMaxSize; +} + +void BinaryenSetFlexibleInlineMaxSize(BinaryenIndex size) { + if (tracing) { + std::cout << " BinaryenSetFlexibleInlineMaxSize(" << size << ");\n"; + } + + globalPassOptions.inlining.flexibleInlineMaxSize = size; +} + +BinaryenIndex BinaryenGetOneCallerInlineMaxSize(void) { + if (tracing) { + std::cout << " BinaryenGetOneCallerInlineMaxSize();\n"; + } + + return globalPassOptions.inlining.oneCallerInlineMaxSize; +} + +void BinaryenSetOneCallerInlineMaxSize(BinaryenIndex size) { + if (tracing) { + std::cout << " BinaryenSetOneCallerInlineMaxSize(" << size << ");\n"; + } + + globalPassOptions.inlining.oneCallerInlineMaxSize = size; +} + void BinaryenModuleRunPasses(BinaryenModuleRef module, const char** passes, BinaryenIndex numPasses) { diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 66a68e8d2..39e0aca33 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -1304,6 +1304,30 @@ BINARYEN_API void BinaryenSetPassArgument(const char* name, const char* value); // Applies to all modules, globally. BINARYEN_API void BinaryenClearPassArguments(); +// Gets the function size at which we always inline. +// Applies to all modules, globally. +BINARYEN_API BinaryenIndex BinaryenGetAlwaysInlineMaxSize(void); + +// Sets the function size at which we always inline. +// Applies to all modules, globally. +BINARYEN_API void BinaryenSetAlwaysInlineMaxSize(BinaryenIndex size); + +// Gets the function size which we inline when functions are lightweight. +// Applies to all modules, globally. +BINARYEN_API BinaryenIndex BinaryenGetFlexibleInlineMaxSize(void); + +// Sets the function size which we inline when functions are lightweight. +// Applies to all modules, globally. +BINARYEN_API void BinaryenSetFlexibleInlineMaxSize(BinaryenIndex size); + +// Gets the function size which we inline when there is only one caller. +// Applies to all modules, globally. +BINARYEN_API BinaryenIndex BinaryenGetOneCallerInlineMaxSize(void); + +// Sets the function size which we inline when there is only one caller. +// Applies to all modules, globally. +BINARYEN_API void BinaryenSetOneCallerInlineMaxSize(BinaryenIndex size); + // Runs the specified passes on the module. Uses the currently set global // optimize and shrink level. BINARYEN_API void BinaryenModuleRunPasses(BinaryenModuleRef module, diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index d41e9575b..3ef19fd7d 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -2928,6 +2928,36 @@ Module['clearPassArguments'] = function() { Module['_BinaryenClearPassArguments'](); }; +// Gets the function size at which we always inline. +Module['getAlwaysInlineMaxSize'] = function() { + return Module['_BinaryenGetAlwaysInlineMaxSize'](); +}; + +// Sets the function size at which we always inline. +Module['setAlwaysInlineMaxSize'] = function(size) { + Module['_BinaryenSetAlwaysInlineMaxSize'](size); +}; + +// Gets the function size which we inline when functions are lightweight. +Module['getFlexibleInlineMaxSize'] = function() { + return Module['_BinaryenGetFlexibleInlineMaxSize'](); +}; + +// Sets the function size which we inline when functions are lightweight. +Module['setFlexibleInlineMaxSize'] = function(size) { + Module['_BinaryenSetFlexibleInlineMaxSize'](size); +}; + +// Gets the function size which we inline when there is only one caller. +Module['getOneCallerInlineMaxSize'] = function() { + return Module['_BinaryenGetOneCallerInlineMaxSize'](); +}; + +// Sets the function size which we inline when there is only one caller. +Module['setOneCallerInlineMaxSize'] = function(size) { + Module['_BinaryenSetOneCallerInlineMaxSize'](size); +}; + // Enables or disables C-API tracing Module['setAPITracing'] = function(on) { return Module['_BinaryenSetAPITracing'](on); |