- Revision
- 214708
- Author
- [email protected]
- Date
- 2017-03-31 17:47:38 -0700 (Fri, 31 Mar 2017)
Log Message
WebAssembly: Add compilation level option
https://bugs.webkit.org/show_bug.cgi?id=170374
Reviewed by Mark Lam.
This patch adds an option, webAssemblyB3OptimizationLevel, which
changes the optimization mode wasm passes to B3.
* runtime/Options.h:
* wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::compileFunctions):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (214707 => 214708)
--- trunk/Source/_javascript_Core/ChangeLog 2017-04-01 00:45:51 UTC (rev 214707)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-04-01 00:47:38 UTC (rev 214708)
@@ -1,3 +1,17 @@
+2017-03-31 Keith Miller <[email protected]>
+
+ WebAssembly: Add compilation level option
+ https://bugs.webkit.org/show_bug.cgi?id=170374
+
+ Reviewed by Mark Lam.
+
+ This patch adds an option, webAssemblyB3OptimizationLevel, which
+ changes the optimization mode wasm passes to B3.
+
+ * runtime/Options.h:
+ * wasm/WasmPlan.cpp:
+ (JSC::Wasm::Plan::compileFunctions):
+
2017-03-31 Saam Barati <[email protected]>
WebAssembly: Strip WasmParser and WasmFunctionParser from knowing about VM
Modified: trunk/Source/_javascript_Core/runtime/Options.h (214707 => 214708)
--- trunk/Source/_javascript_Core/runtime/Options.h 2017-04-01 00:45:51 UTC (rev 214707)
+++ trunk/Source/_javascript_Core/runtime/Options.h 2017-04-01 00:47:38 UTC (rev 214708)
@@ -435,6 +435,7 @@
\
v(bool, failToCompileWebAssemblyCode, false, Normal, "If true, no Wasm::Plan will sucessfully compile a function.") \
v(size, webAssemblyPartialCompileLimit, 5000, Normal, "Limit on the number of bytes a Wasm::Plan::compile should attempt before checking for other work.") \
+ v(unsigned, webAssemblyB3OptimizationLevel, 2, Normal, "B3 Optimization level for Web Assembly modules.") \
\
v(bool, simulateWebAssemblyLowMemory, false, Normal, "If true, the Memory object won't mmap the full 'maximum' range and instead will allocate the minimum required amount.") \
v(bool, useWebAssemblyFastMemory, true, Normal, "If true, we will try to use a 32-bit address space with a signal handler to bounds check wasm memory.") \
Modified: trunk/Source/_javascript_Core/wasm/WasmPlan.cpp (214707 => 214708)
--- trunk/Source/_javascript_Core/wasm/WasmPlan.cpp 2017-04-01 00:45:51 UTC (rev 214707)
+++ trunk/Source/_javascript_Core/wasm/WasmPlan.cpp 2017-04-01 00:47:38 UTC (rev 214708)
@@ -245,7 +245,7 @@
ASSERT(validateFunction(functionStart, functionLength, signature, *m_moduleInformation, m_moduleSignatureIndicesToUniquedSignatureIndices));
m_unlinkedWasmToWasmCalls[functionIndex] = Vector<UnlinkedWasmToWasmCall>();
- auto parseAndCompileResult = parseAndCompile(m_compilationContexts[functionIndex], functionStart, functionLength, signature, m_unlinkedWasmToWasmCalls[functionIndex], *m_moduleInformation, m_moduleSignatureIndicesToUniquedSignatureIndices, m_mode);
+ auto parseAndCompileResult = parseAndCompile(m_compilationContexts[functionIndex], functionStart, functionLength, signature, m_unlinkedWasmToWasmCalls[functionIndex], *m_moduleInformation, m_moduleSignatureIndicesToUniquedSignatureIndices, m_mode, Options::webAssemblyB3OptimizationLevel());
if (UNLIKELY(!parseAndCompileResult)) {
auto locker = holdLock(m_lock);