- Notifications
You must be signed in to change notification settings - Fork 1.2k
swb: Merge master into swb #1833
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
…d inline support Merge pull request chakra-core#659 from commonlisp:wasm_f32minmax f32 min max codegen
Made some Wasm tracing available in test build Update basic.wast to latest syntax (haven't update the baseline, because I am unsure what it is supposed to do)
Added new class WasmModuleGenerator which reads only what is necessary to create the wasm module. Then WasmBytecodeGenerator only generates the bytecode for the function bodies. Added thunks for x64/x86 for deferred parsing entry points. Simplified logic for LazyTraps
Create a new ArenaAllocator on the WasmBinaryReader that has the same lifetime as the reader
This reverts commit 1692559.
Merge pull request chakra-core#1243 from Cellule:wasm/deferred Implement deferred parsing for Wasm functions under a flag `-on:wasmdeferred` Added new class WasmModuleGenerator which reads only what is necessary to create the wasm module. Then WasmBytecodeGenerator only generates the bytecode for the function bodies. Simplified logic for LazyTraps Added instrumentation for `-profile` with Wasm Took the opportunity to do some cleanup in the Wasm classes notably some unused methods and some rearrangement.
Can also create/update the baseline files Remove failing tests between interpreter and jit for the time being
Merge pull request chakra-core#1305 from Cellule:wasm/testsuite Simple node program to convert the wasm testsuite to binary C an also create/update the baseline files Remove failing tests between interpreter and jit for the time being
- Move Wasm related function from ScriptContext to WasmLibrary. - Remove jsrt apis for WebAssembly. - Only enable WebAssembly code in test binaries. - Only set the `Wasm` global object with `-on:wasm` switch. - Use array of Local for WasmSignature Params instead of growing array. - Rename ModuleInfo.h to WasmModule.h - Wasm::Local is no longer a struct, just a typedef to Wasm::WasmType. - Remove namespace Binary. - Merge WasmModule and ModuleInfo - Merge WasmFunction and WasmFunctionInfo
…already bound together, I decided to make WsamModule the parent of WasmBinaryReader. That makes it easier to understand the lifetime of those classes
Merged WasmBinaryOpCodes.h and WasmKeywords.h Removed WasmBinOp in favor of WasmOp
Fix nits
…and wasm This removed duplicated code and added a debug feature for wasm
Removed WasmAsmJsCommon.h in favor of WAsmjsUtils.h
Fix how we calculate constant space in the constant table for wasm
…e info layouts differ in JIT and runtime data Merge pull request chakra-core#1760 from MikeHolman:polyinlining Exact order of next pointers for polymorphic CodeGen JIT and CodeGen Runtime data may differ. So, while walking CodeGen JIT data during BuildJITTimeData data we should pass along the head CodeGen Runtime pointer, otherwise inner calls will not be able to find inlinees who appear earlier in the list.
…ze of data a BVSparseNode can hold from 32-bit to 64-bit. Merge pull request chakra-core#1754 from meg-gupta:64spbv
…tabilize our spec implementation. Re-enable f32 test that was disabled because of razzle issue.
Merge pull request chakra-core#1816 from Cellule:users/micfer/wasm/test Do not run Wasm tests in Razzle at this time. Will reenable once we stabilize our spec implementation. Re-enable f32 test that was disabled because of razzle issue.
…g and resolving promise objects within the engine Provides four main convenience methods for creating new promises which are simplified as: - JavascriptPromise::CreateRejectedPromise(resolution) - Returns a new promise rejected with resolution. Effectively same as Promise.reject(resolution) - JavascriptPromise::CreateResolvedPromise(resolution) - Returns a new promise resolved with resolution. Effectively same as Promise.resolve(resolution) - JavascriptPromise::CreateThenPromise(sourcePromise, fulfillmentHandler, rejectionHandler) - Effectively the same as calling sourcePromise.then(fulfillmentHandler, rejectionHandler) in Javascript - JavascriptPromise::CreatePassThroughPromise(sourcePromise) - A passthrough promise is used to return a new wrapper promise which is resolved in the same was as the source promise in order to avoid exposing the source promise Also provides two convenience methods JavascriptPromise::Resolve and JavascriptPromise::Reject which take a Var resolution and resolves or rejects the promise object. This will trigger the promise reaction tasks.
…vide convenience methods for creating and resolving promise objects within the engine Merge pull request chakra-core#1798 from boingoing:promisehelpers Provides four main convenience methods for creating new promises which are simplified as: - JavascriptPromise::CreateRejectedPromise(resolution) - Returns a new promise rejected with resolution. Effectively same as Promise.reject(resolution) - JavascriptPromise::CreateResolvedPromise(resolution) - Returns a new promise resolved with resolution. Effectively same as Promise.resolve(resolution) - JavascriptPromise::CreateThenPromise(sourcePromise, fulfillmentHandler, rejectionHandler) - Effectively the same as calling sourcePromise.then(fulfillmentHandler, rejectionHandler) in Javascript - JavascriptPromise::CreatePassThroughPromise(sourcePromise) - A passthrough promise is used to return a new wrapper promise which is resolved in the same was as the source promise in order to avoid exposing the source promise Also provides two convenience methods JavascriptPromise::Resolve and JavascriptPromise::Reject which take a Var resolution and resolves or rejects the promise object. This will trigger the promise reaction tasks.
…bal with a mutable global
…ailure Merge pull request chakra-core#1817 from meg-gupta:buildfail
Brings ~4% perf improvement [ http-load test, measured on xplat ] - Disables RecyclerWatsonTelemetry for ChakraCore [ reduces the number of calls to system clock api <=~1.5% ] - Use RDTSC for GetTickCount. [ this affects only xplat <=~3% ]
…ci.cloudapp.net is deprecated. Also uses HTTPS instead of HTTP.
Merge pull request chakra-core#1825 from Cellule:users/micfer/legacy
…/ci.dot.net because http://dotnet-ci.cloudapp.net is deprecated. Merge pull request chakra-core#1826 from dilijev:ci-dot-net Also uses HTTPS instead of HTTP. This fixes an issue with managing Jenkins builds because it was difficult to sign in due to the way log in with GitHub interacts between the new URL and the old one.
…nd Use RDTSC for GetTickCount Merge pull request chakra-core#1780 from obastemur:perf Brings ~4% perf improvement [ http-load test, measured on xplat ] - Disables RecyclerWatsonTelemetry for ChakraCore [ reduces the number of calls to system clock api <=~1.5% ] - Use RDTSC for GetTickCount. [ this affects only xplat <=~3% ]
Removed wrong exclude_razzle tag
In OOP JIT when allocating native code data we record some information about the allocation. At the end of a JIT work item, the allocation information is used to make the pointer fixing up table which then used to fixup the internal pointers after passing native code data to runtime process. After a JIT work item is done, all the native code data including the allocation information are freed in JIT server, only the fixup table and aggregated data buffer is passed to runtime process. The fixup table is freed right after doing fixup in runntime process after the codegen call returned. When doing in-proc jit we don't need these fixup information, and we don't do pointer fixing up and data aggregating/copying, the the fixup information has same life time as the native code data themselves, thus wasting memory. This change bring back the same data structure which before the OOP JIT change and use it for in-proc JIT Note in OOP JIT it uses one pointer size less memory than in-proc JIT because even the next pointer on DataChunk is not kept after data aggregating.
…ge for in-proc jit Merge pull request chakra-core#1829 from leirocks:inprocnatdata1 In OOP JIT when allocating native code data we record some information about the allocation. At the end of a JIT work item, the allocation information is used to make the pointer fixing up table which then used to fixup the internal pointers after passing native code data to runtime process. After a JIT work item is done, all the native code data including the allocation information are freed in JIT server, only the fixup table and aggregated data buffer is passed to runtime process. The fixup table is freed right after doing fixup in runntime process after the codegen call returned. When doing in-proc jit we don't need these fixup information, and we don't do pointer fixing up and data aggregating/copying, the the fixup information has same life time as the native code data themselves, thus wasting memory. This change bring back the same data structure which before the OOP JIT change and use it for in-proc JIT Note in OOP JIT it uses one pointer size less memory than in-proc JIT because even the next pointer on DataChunk is not kept after data aggregating.
Author
| @dotnet-bot test Linux tests please |
Author
| @dotnet-bot test Linux tests please |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
No description provided.