Skip to content

Conversation

@jianchun
Copy link

No description provided.

commonlisp and others added 30 commits July 13, 2016 17:10
…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
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
…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
Cellule and others added 22 commits October 21, 2016 17:45
…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.
…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% ]
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.
@jianchun
Copy link
Author

@dotnet-bot test Linux tests please

@jianchun
Copy link
Author

@dotnet-bot test Linux tests please

@jianchun jianchun merged commit 0ee229f into chakra-core:swb Oct 27, 2016
jianchun pushed a commit that referenced this pull request Oct 27, 2016
Merge pull request #1833 from jianchun:swbfi
@jianchun jianchun deleted the swbfi branch October 27, 2016 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment