- 20 Sep, 2018 2 commits
-
-
Junliang Yan authored
R=joransiu@ca.ibm.com Change-Id: Iace9b8bf40d416b2c7c56c383d00b4f0a6501de1 Reviewed-on: https://chromium-review.googlesource.com/1236973Reviewed-by:
Muntasir Mallick <mmallick@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56103}
-
Igor Sheludko authored
and introduce RootsTable - a V8 heap roots storage. So, the renaming part looks like this: Heap::RootListIndex -> RootIndex Heap::kBlahBlahRootIndex -> RootIndex::kBlahBlah Bug: v8:8015, v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I38e1f3e3f6813ef35e37b0bed35e9ae14a62134f Reviewed-on: https://chromium-review.googlesource.com/1234613Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56067}
-
- 19 Sep, 2018 2 commits
-
-
Junliang Yan authored
R=joransiu@ca.ibm.com Change-Id: Id88187906f82cc9956ffbc9c70e4a1fdd8b20b30 Reviewed-on: https://chromium-review.googlesource.com/1234974Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56055}
-
Junliang Yan authored
Port fef047a4 Original Commit Message: This CL implements the following design doc: https://docs.google.com/document/d/1h5kdfemMQMpUd15PSKW1lqikJW5hsGwrmOvoqhGFRts/edit?ts=5b978756#heading=h.urs7r34mx9p R=mslekova@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Iac369feb7a0bfb1d878a3c0fb4a6efbee6371128 Reviewed-on: https://chromium-review.googlesource.com/1234973Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56054}
-
- 17 Sep, 2018 2 commits
-
-
Junliang Yan authored
Port 0c296cb2 Original Commit Message: This change introduces the necessary conversion operators to convert from Word64 to other representations (Tagged, Word32, Float64, etc.), and plugs in the Word64 representation for NumberAdd/NumberSubtract, such that TurboFan will go to Int64Add/Sub on 64-bit architectures when the inputs and the output of the operation is in safe integer range. This includes the necessary changes to the Deoptimizer to be able to rematerialize Int64 values as Smi/HeapNumber when going back to Ignition later. This change might affect performance, although measurements indicate that there should be no noticable performance impact. The goal is to have TurboFan support Word64 representation to a degree that changing the TypedArray length to an uint64_t (for 64-bit archs) becomes viable and doesn't have any negative performance implications. Independent of that we might get performance improvements in other areas such as for crypto code later. R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I2119f156c4ddf942ea09ff8ed52e1c6cb32477f2 Reviewed-on: https://chromium-review.googlesource.com/1228634Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55971}
-
Junliang Yan authored
Port 6346cdb6 Original Commit Message: This adds support to TurboFan's representation selection for the Word64 representation, and makes use of that to handle indices for memory access and allocation instructions (i.e. LoadElement, StoreElement, Allocate, etc.). These instructions had previously used Word32 as representation for the indices / sizes, and then internally converted it to the correct representation (aka Word64 on 64-bit architectures) later on, but that was kind of brittle, and sometimes led to weird generated code. The change thus only adds support to convert integer values in the safe integer range from all kinds of representations to Word64 (on 64-bit architectures). We don't yet handle the opposite direction and none of the representation selection heuristics for the numeric operations were changed so far. This will be done in follow-up CLs. This CL itself is supposed to be neutral wrt. functionality, and only serves as a starting point, and a cleanup for the (weird) implicit Word64 index/size handling. R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ic7ea30639dea3c5f8a59e7100a15d5ed50073c20 Reviewed-on: https://chromium-review.googlesource.com/1228416Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55970}
-
- 13 Sep, 2018 2 commits
-
-
Junliang Yan authored
R=joransiu@ca.ibm.com Change-Id: Icfbd76b8da133bf39960f1c172cd872876e2cf3e Reviewed-on: https://chromium-review.googlesource.com/1225672Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55879}
-
Junliang Yan authored
R=joransiu@ca.ibm.com Change-Id: I8294e4719b134920cc93ad2f9f3be0a513dee0c3 Reviewed-on: https://chromium-review.googlesource.com/1222649Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55841}
-
- 12 Sep, 2018 1 commit
-
-
Junliang Yan authored
Fix debug build break by using pc-relative code on ComputeCodeStartAddress R=joransiu@ca.ibm.com Change-Id: I81c3a3e220c9f4f90772bcb39f1a9b9d48661e19 Reviewed-on: https://chromium-review.googlesource.com/1222606Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55840}
-
- 05 Sep, 2018 1 commit
-
-
Junliang Yan authored
Use pc relative code on poisoning to allow relocation of bytecode handler. This is allow v8_enable_embedded_bytecode_handlers on ppc. Bug: v8:8068 Change-Id: I6e0a1e961e7e903f0935131cfc190c89c404cf67 Reviewed-on: https://chromium-review.googlesource.com/1205610 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by:
Muntasir Mallick <mmallick@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55660}
-
- 04 Sep, 2018 1 commit
-
-
Junliang Yan authored
Change-Id: I0bd15f4769e9ab09aec3f479af0ee50fc81fd6dc Reviewed-on: https://chromium-review.googlesource.com/1204950Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55620}
-
- 14 Aug, 2018 1 commit
-
-
Junliang Yan authored
Port 5fecd146 Original Commit Message: This adds support for unaligned load/store access to the DataView backing store and uses byteswap operations to fix up the endianess when necessary. This changes the Word32ReverseBytes operator to be a required operator and adds the missing support on the Intel and ARM platforms (on 64-bit platforms the Word64ReverseBytes operator is also mandatory now). This further improves the performance on the dataviewperf.js test mentioned in the tracking bug by up to 40%, and at the same time reduces the code complexity in the EffectControlLinearizer. R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ia9aad21713a2ad76ce3ef2b816fc20e9a27fe4c9 Reviewed-on: https://chromium-review.googlesource.com/1174936Reviewed-by:
John Barboza <jbarboza@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#55132}
-
- 07 Aug, 2018 1 commit
-
-
Sigurd Schneider authored
The instruction size in bytes is now kInstrSize on all platforms. Bug: v8:6666 Change-Id: I2f9880a6a74199a439c8327a4117efb74240aa22 Reviewed-on: https://chromium-review.googlesource.com/1164955 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54944}
-
- 31 Jul, 2018 1 commit
-
-
Junliang Yan authored
Port 19953355 Original Commit Message: The {CommentOperator}, used for implementing the --code-comments flag, is not UBSan-safe. This CL fixes this and adds a test which uses code comments. R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ia7976ec9a726fdeb7d8bfbb99c8a16d473aa0da4 Reviewed-on: https://chromium-review.googlesource.com/1157230Reviewed-by:
Muntasir Mallick <mmallick@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#54828}
-
- 27 Jul, 2018 1 commit
-
-
Deepti Gandluri authored
Functions/variables for some atomic memory operators use type, representation interchangeably. Fix to make it consistent. Bug: v8:7754, v8:6532 Change-Id: I16ae35b72728739aee4bc67287317c2fd4a9088a Reviewed-on: https://chromium-review.googlesource.com/1152462Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#54763}
-
- 25 Jul, 2018 3 commits
-
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 TBR=clemensh@chromium.org, ulan@chromium.org, tebbi@chromium.org, verwaest@chromium.org, jgruber@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9003b5b73ac568a29688c5f97ec718c9de8aaaef Reviewed-on: https://chromium-review.googlesource.com/1150163 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54699}
-
Leszek Swirski authored
This reverts commit 9d18a7fd. Reason for revert: Breaks build https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/21856 Original change's description: > [iwyu] Remove sfi-inl.h -> wasm include > > This significantly reduces the build time when modifying wasm > files: before touching all wasm headers required 684 steps to > rebuild, now it's 216. > > BUG=v8:7754,v8:7490 > > Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 > Reviewed-on: https://chromium-review.googlesource.com/1145264 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54681} TBR=ulan@chromium.org,marja@chromium.org,titzer@chromium.org,jgruber@chromium.org,clemensh@chromium.org,tebbi@chromium.org,bmeurer@chromium.org,verwaest@chromium.org Change-Id: I3b4087916f65b16db75974dba58914c8ea377a08 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7754, v8:7490 Reviewed-on: https://chromium-review.googlesource.com/1149920Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54683}
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 Reviewed-on: https://chromium-review.googlesource.com/1145264 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54681}
-
- 12 Jul, 2018 1 commit
-
-
Junliang Yan authored
Change-Id: I2e0166cf99f2f9b501c82cbf27215389a3eb3092 Reviewed-on: https://chromium-review.googlesource.com/1135124Reviewed-by:
Muntasir Mallick <mmallick@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#54421}
-
- 10 Jul, 2018 1 commit
-
-
Junliang Yan authored
Port 4c4c3437 Original Commit Message: This fixes the special stack check we emit for very large frames to no longer embed the limit address but load it from the instance object instead. It makes sure WasmCode remains independent of the Isolate. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:7424 LOG=N Change-Id: I35e662ee89fbad679a6c103518e4d1feb2c8dce0 Reviewed-on: https://chromium-review.googlesource.com/1131996Reviewed-by:
Muntasir Mallick <mmallick@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#54368}
-
- 09 Jul, 2018 1 commit
-
-
Junliang Yan authored
Port 476a8853 R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ia34b1829db73502b9d5780866e9b00ac236dd2e1 Reviewed-on: https://chromium-review.googlesource.com/1129333Reviewed-by:
Michael Dawson <michael_dawson@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#54335}
-
- 19 Jun, 2018 2 commits
-
-
Junliang Yan authored
Port 825c7481 R=tebbi@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: If067828166e44b99f48add7e929d6be8b585f34b Reviewed-on: https://chromium-review.googlesource.com/1106877Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53856}
-
Tobias Tebbi authored
Bug: chromium:849098 Change-Id: Iec81d08cf6edb6040445650cadf802a34b65b8e1 Reviewed-on: https://chromium-review.googlesource.com/1092749 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53843}
-
- 15 Jun, 2018 1 commit
-
-
jgruber authored
This reverts two commits: Introduce CodeAssembler::LoadRootsPointer 377803f8 [turbofan][x64] Reduce reg-to-reg moving instruction for LoadRootsRegister IR d4177d11 LoadRootsPointer was used by indirections for heap constants and external references from within CSA. Now that handling has moved to the macro-assembler, it can be removed. Bug: v8:6666 Change-Id: I868fe100e65a0a7a44ffc81674fa1ce79a56f7ed Reviewed-on: https://chromium-review.googlesource.com/1097080 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53770}
-
- 13 Jun, 2018 2 commits
-
-
Junliang Yan authored
Port 98d7b23e Original Commit Message: This uses a WebAssembly runtime stub for the out-of-line {DoubleToI} computation instead of a builtin specific to a certain Isolate. It is another step towards making {WasmCode} independent of the Isolate. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:7424 LOG=N Change-Id: I2f78432134ea150bb00bea339a6e71c11aa625b0 Reviewed-on: https://chromium-review.googlesource.com/1099877Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53723}
-
Junliang Yan authored
Port faf64532 Original Commit Message: Indirections for external references are now handled completely in macro assemblers, which can produce more efficient code. R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ic94019affc7418e2d69944f5d8932502f7912684 Reviewed-on: https://chromium-review.googlesource.com/1099421Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53714}
-
- 06 Jun, 2018 2 commits
-
-
Michael Starzinger authored
This avoids embedding {RelocInfo::CODE_TARGET} addresses into WasmCode by calling a WebAssembly runtime stub instead. The stubs themselves are not yet independent of the Isolate, but will be made so soon. Note that this also introduces a proper {compiler::TrapId} to avoid accidental parameter type confusion with {TrapIf} and {TrapUnless} operators. R=clemensh@chromium.org BUG=v8:7424 Change-Id: I32ef5a1253f336fc739d2192247826e9458456df Reviewed-on: https://chromium-review.googlesource.com/1086937Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53557}
-
Igor Sheludko authored
In order to port CompileLazy and DeserializeLazy builtins to CSA we need to support this mode to be able to tail call to compiled or deserialized JS code object. Bug: v8:5269, v8:7703 Change-Id: I6abdc989af16774f6454b2ea0a97b1ce5ece5125 Reviewed-on: https://chromium-review.googlesource.com/1087452Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53543}
-
- 05 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This removes the obsolete support to create {WASM_COMPILED} stack frames within the out-of-line trap handler code. All trapping code needs to push such a frame on entry by now, because the instance object is pushed implicitly as part of the prologue. Deferred frame building would not have access to a valid instance object. R=clemensh@chromium.org Change-Id: I96ac37fa00c527e6395a018c653c8ef85c70d04f Reviewed-on: https://chromium-review.googlesource.com/1085465Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53509}
-
- 04 Jun, 2018 1 commit
-
-
Junliang Yan authored
Port c96ac82c Original Commit Message: This makes stack checks in WasmCode independent of the underlying Isolate by loading the limit address from the WasmInstanceObject instead of embedding it into the instruction stream. It hence removes the last use of the Isolate field from WasmGraphBuilder. Additionally this introduces the notion of a "runtime stub" which represents stub code global to the NativeModule that can be directly called from each WasmCode in the same module. These stubs can act as trampolines via which Isolate-independent WasmCode can enter other V8 builtins or runtime functions that remain Isolate-dependent. They will eventually replace the current "trampoline" in a NativeModule. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:7424 LOG=N Change-Id: I5745a20133c930aecb80119e71ac1d8717e267bf Reviewed-on: https://chromium-review.googlesource.com/1085276Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53503}
-
- 14 May, 2018 2 commits
-
-
Junliang Yan authored
Port 5dfe23a4 Original Commit Message: When encountering a LoadStackPointer input to a comparison, generate a register LocationOperand that points to the stack pointer. This can avoid unnecessary spilling of the stack pointer. R=georgia.kouveli@arm.com, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ie3fecf70f78c234fefad86fec74820a61f3d227b Reviewed-on: https://chromium-review.googlesource.com/1057965Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53167}
-
Vasili Skurydzin authored
Implement atomic compare exchange and atomic bin OPs for PPC and s390 Change-Id: I8f89a0ebb912082c4c1e6b9a3daf64f28c114010 Reviewed-on: https://chromium-review.googlesource.com/1013861Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#53165}
-
- 30 Apr, 2018 1 commit
-
-
Jaroslav Sevcik authored
The idea is to mark all the branches and loads participating in array bounds checks, and let them contribute-to/use the poisoning register. In the code, the marks for array indexing operations now contain "Critical" in their name. By default (--untrusted-code-mitigations), we only instrument the "critical" operations with poisoning. With that in place, we also remove the array masking approach based on arithmetic. Since we do not propagate the poison through function calls, we introduce a node for poisoning an index that is passed through function call - the typical example is the bounds-checked index that is passed to the CharCodeAt builtin. Most of the code in this CL is threads through the three levels of protection (safe, critical, unsafe) for loads, branches and flags. Bug: chromium:798964 Change-Id: Ief68e2329528277b3ba9156115b2a6dcc540d52b Reviewed-on: https://chromium-review.googlesource.com/995413 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52883}
-
- 26 Apr, 2018 3 commits
-
-
jgruber authored
This is a reland of f5d30851 Original change's description: > [builtins] Introduce further constant & external reference indirections > > This introduces further indirections for embedded constants and > external references for builtins generated by the macro-assembler. > The used mechanisms (LookupConstant and LookupExternalReference) are > identical to what we already use in CSA. > > Almost all builtins are now isolate-independent in both release and > debug modes. snapshot_blob.bin is roughly 670K smaller in embedded > builds vs. non-embedded builds, while libv8.so is roughly 280K larger. > > Bug: v8:6666 > Change-Id: I7a6c2193ef5a763e6cf7543dd51597d6fff6c110 > Reviewed-on: https://chromium-review.googlesource.com/1006581 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52810} TBR=mstarzinger@chromium.org Bug: v8:6666 Change-Id: I73dfe207f2c5f79a9a06c165c75f5619e88a5a17 Reviewed-on: https://chromium-review.googlesource.com/1030550Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52819}
-
jgruber authored
This reverts commit f5d30851. Breakages: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/20370 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20custom%20snapshot%20-%20debug/builds/21174 TBR=yangguo@chromium.org No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Change-Id: Ic4d28fccf647aadcac0a60430b7fb66d22ce4577 Reviewed-on: https://chromium-review.googlesource.com/1030431Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52813}
-
jgruber authored
This introduces further indirections for embedded constants and external references for builtins generated by the macro-assembler. The used mechanisms (LookupConstant and LookupExternalReference) are identical to what we already use in CSA. Almost all builtins are now isolate-independent in both release and debug modes. snapshot_blob.bin is roughly 670K smaller in embedded builds vs. non-embedded builds, while libv8.so is roughly 280K larger. Bug: v8:6666 Change-Id: I7a6c2193ef5a763e6cf7543dd51597d6fff6c110 Reviewed-on: https://chromium-review.googlesource.com/1006581 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52810}
-
- 25 Apr, 2018 1 commit
-
-
Andreas Haas authored
I missed one required change which was hidden behind an #if. The fix is in the diff between Patch 1 and Patch 3. Original message: In this CL I remove the isolate from signatures of ExternalReference accessor functions where the isolate is not used. The uses of the isolate were already removed in previous CLs. Changes: * I split the ExternalReference list in external-reference.h into those which need the isolate for initialization and those which do not. * I removed the public constructors and replaced them by ExternalReference::Create(). The reason is to separate external creation more clearly from internal creation, because externally created ExternalReferences sometimes need redirection, whereas internally created ExternalReferences are just stored as they are. In addition, by removing the isolate from the signature of the public constructors, they suddenly exactly matched the interal constructor. * Replace all uses of the public constructors with ExternalReference::Create(). * Remove the isolate from all call sites where necessary. This is a step towards making WebAssembly compilation independent of the isolate. R=mstarzinger@chromium.org Bug: v8:7570 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I750c162f5d58ed32e866722b0db920f8b9bd8057 Reviewed-on: https://chromium-review.googlesource.com/1026673Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52777}
-
- 24 Apr, 2018 2 commits
-
-
Andreas Haas authored
This reverts commit 44ea425a. Reason for revert: https://ci.chromium.org/buildbot/client.v8.ports/V8%20Arm%20-%20debug%20builder/13575 Original change's description: > [refactoring] Remove the isolate from signatures of ExternalReferences > > In this CL I remove the isolate from signatures of ExternalReference > accessor functions where the isolate is not used. The uses of the > isolate were already removed in previous CLs. > > Changes: > * I split the ExternalReference list in external-reference.h into > those which need the isolate for initialization and those which do not. > > * I removed the public constructors and replaced them by > ExternalReference::Create(). The reason is to separate external > creation more clearly from internal creation, because externally > created ExternalReferences sometimes need redirection, whereas > internally created ExternalReferences are just stored as they are. > In addition, by removing the isolate from the signature of the > public constructors, they suddenly exactly matched the interal > constructor. > > * Replace all uses of the public constructors with > ExternalReference::Create(). > > * Remove the isolate from all call sites where necessary. > > > This is a step towards making WebAssembly compilation independent of > the isolate. > > Bug: v8:7570 > R=mstarzinger@chromium.org > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: I14f511fc6acc50ab2d6a6641299f5ddbeabef0da > Reviewed-on: https://chromium-review.googlesource.com/1018982 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52768} TBR=mstarzinger@chromium.org,ahaas@chromium.org Change-Id: I7c0d8d420f815cede23d550dee8942ac4d7791cc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7570 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1026570Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52769}
-
Andreas Haas authored
In this CL I remove the isolate from signatures of ExternalReference accessor functions where the isolate is not used. The uses of the isolate were already removed in previous CLs. Changes: * I split the ExternalReference list in external-reference.h into those which need the isolate for initialization and those which do not. * I removed the public constructors and replaced them by ExternalReference::Create(). The reason is to separate external creation more clearly from internal creation, because externally created ExternalReferences sometimes need redirection, whereas internally created ExternalReferences are just stored as they are. In addition, by removing the isolate from the signature of the public constructors, they suddenly exactly matched the interal constructor. * Replace all uses of the public constructors with ExternalReference::Create(). * Remove the isolate from all call sites where necessary. This is a step towards making WebAssembly compilation independent of the isolate. Bug: v8:7570 R=mstarzinger@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I14f511fc6acc50ab2d6a6641299f5ddbeabef0da Reviewed-on: https://chromium-review.googlesource.com/1018982 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52768}
-
- 16 Apr, 2018 1 commit
-
-
Michael Starzinger authored
This adds another fixed spill slot to the {WasmCompiledFrame} layout, holding a reference to the current {WasmInstanceObject}. This slot allows the stack walker to retrieve instances for WebAssembly frames without having each code object be coupled to an instance. Hence it enables sharing code across instances in the future. R=titzer@chromium.org BUG=v8:7424 Change-Id: I7fa095c6255754caf564edce4ee7e84dea666783 Reviewed-on: https://chromium-review.googlesource.com/1005516 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52626}
-