- 23 May, 2022 1 commit
-
-
Leszek Swirski authored
Add an implementation of BranchIfInt32Compare, which is emitted whenever a compare op is immediately followed by a branch. Bug: v8:7700 Change-Id: I2c56d9de199bac8de33b33201f8614aee8e9894e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647693Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80694}
-
- 27 Apr, 2022 1 commit
-
-
Jakob Gruber authored
This logic was confused in the presence of inlined frames; the deopt exit offset would point inside the innermost inlined frame while we incorrectly assumed it points at the outermost frame. Fix this by always referring to the bytecode offset of the outermost frame. Bug: v8:12161 Fixed: chromium:1320094 Change-Id: I2eb28498639432c5344859f64a9388d93ee23bde Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3608630 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#80212}
-
- 10 Mar, 2022 1 commit
-
-
Jakob Gruber authored
This reverts commit 190b5d95. Reason for revert: We should understand & fix regressions, see crbug.com/1304870#c9. Original change's description: > [compiler] Don't remove OSR code cache if deoptimizing at out of loop > > The main purpose of OSR compilation is fasten inner loop execution, the > OSR code cache is still correct for loop if optimizing at out of loop, > keep OSR code cache can reduce unnecessary slow bytecode execution with > feedback collection and avoid re-OSR compilation. > This CL can improve JetStream2 case navier-stokes by ~6%. > > Change-Id: I9518317fb922071b131cab5b56998a0fc198804a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Tao Pan <tao.pan@intel.com> > Cr-Commit-Position: refs/heads/main@{#79413} Bug: chromium:1304870 Change-Id: I8791edc34b66ef9dd0b477d3e340e85b0617ef59 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3515732 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#79435}
-
- 09 Mar, 2022 1 commit
-
-
Pan, Tao authored
The main purpose of OSR compilation is fasten inner loop execution, the OSR code cache is still correct for loop if optimizing at out of loop, keep OSR code cache can reduce unnecessary slow bytecode execution with feedback collection and avoid re-OSR compilation. This CL can improve JetStream2 case navier-stokes by ~6%. Change-Id: I9518317fb922071b131cab5b56998a0fc198804a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3494981Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tao Pan <tao.pan@intel.com> Cr-Commit-Position: refs/heads/main@{#79413}
-
- 24 Feb, 2022 1 commit
-
-
Leszek Swirski authored
Maglev is mid-tier optimising compiler designed mainly for compilation speed that can still generate good code for straightforward JS. This initial commit is an MVP for Maglev which can compile and run some very simple code, and sets up a framework that we can build upon. Design: https://docs.google.com/document/d/13CwgSL4yawxuYg3iNlM-4ZPCB8RgJya6b8H_E2F-Aek/edit# Bug: v8:7700 Change-Id: I5ae074ae099126c2c0d50864ac9b3d6fa5c9e85a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3483664Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79247}
-
- 26 Apr, 2021 1 commit
-
-
Leszek Swirski authored
It's unfortunate that there is both a LocalIsolate template parameter, and an actual LocalIsolate class. Clean this up by renaming the template parameters to IsolateT Change-Id: Iecefc3eca5aeb7bbd21e78818b90f9e75cdff10f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846880 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#74173}
-
- 02 Mar, 2021 1 commit
-
-
Toon Verwaest authored
The interpreter always adjusts the current interrupt budget down by the current bytecode size as well. This aligns the optimization heuristics. Bug: v8:11420 Change-Id: I0cc78d004779b393a3d8fb46e44bdd7465fcf4ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2726496 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#73130}
-
- 24 Feb, 2021 1 commit
-
-
Georg Neis authored
It had essentially become a synonym for BytecodeArrayAccessor. This removes the BytecodeArrayIterator class and renames BytecodeArrayAccessor to BytecodeArrayIterator. Change-Id: I79cf8574f3c8804822f90c8f921c17ca7ab85f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715523 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#73005}
-
- 23 Feb, 2021 1 commit
-
-
Georg Neis authored
AbstractBytecodeArray was introduced in order to let the bytecode array accessor work on either a Handle<BytecodeArray> or a serialized BytecodeArrayRef. We have since implemented direct heap access for bytecode arrays, so we can now remove the abstraction again. Note that this means that as far as bytecode iteration is concerned we no longer access the bytecode array through the BytecodeArrayRef. I will remove the obsolete methods from that class in a follow-up CL. The downside is the loss of this explicit interface. The upside is simplicity and less code. We can justify the downside with the fact that the bytecode array data is immutable and thus the Ref indirection less meaningful than in other cases. Bug: v8:7790 Change-Id: I0fe87b4efd0f77785f5a0917ab213c6031d9cc74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707166Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72955}
-
- 11 Feb, 2021 1 commit
-
-
Toon Verwaest authored
This speeds up sparkplug by >20%. This reland fixes the OffHeapBytecodeArray to also register a GC callback. Turns out off-heap here doesn't mean that the underlying bytecode array is off-heap and it can in fact move. Change-Id: I7c6e82abd2a7be08ead537ab84855e76edc3b290 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2688400 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72677}
-
- 10 Feb, 2021 4 commits
-
-
Zhi An Ng authored
This reverts commit 60748ee2. Reason for revert: Broke Linux64 ASAN https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20ASAN/38792/overview. There are 4 changes in that range causing the failure, I found that this change caused the failure by running locally `./tools/run-tests.py --outdir=out/repro mjsunit/wasm/gc-stress --variant turboprop_as_toptier --random-seed-stress-count 100`. Original change's description: > Reland "[interpreter] Speed up the BytecodeArrayAccessor through direct memory access" > > Tbr: ulan@chromium.org, neis@chromium.org, leszeks@chromium.org > No-Presubmit: true > Change-Id: I4ceb9e21ac7d78a87776b4be174772539d2da8d9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685173 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72632} TBR=ulan@chromium.org,neis@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: I441ddfda5d852b7a01f38a9e60edc56f40ae626a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2686266Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72635}
-
Toon Verwaest authored
Tbr: ulan@chromium.org, neis@chromium.org, leszeks@chromium.org No-Presubmit: true Change-Id: I4ceb9e21ac7d78a87776b4be174772539d2da8d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685173 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72632}
-
Nico Hartmann authored
This reverts commit f4bd6f6b. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20pointer%20compression/13275/overview Original change's description: > [interpreter] Speed up the BytecodeArrayAccessor through direct memory access > > This speeds up the sparkplug compiler by >20%. > > Change-Id: I9dece7209b0ddf53d876df9aca4b2feede6259c5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2682644 > Auto-Submit: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72624} TBR=ulan@chromium.org,neis@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: Iac3832bd08a9075e3127886635ba96f7acfc49cf No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685169Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#72625}
-
Toon Verwaest authored
This speeds up the sparkplug compiler by >20%. Change-Id: I9dece7209b0ddf53d876df9aca4b2feede6259c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2682644 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#72624}
-
- 10 Nov, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: I181af917c141fb327213ae6303057f1bb87f4ac4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524418Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71064}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1800575 and https://crrev.com/c/1803343, which tried to fix this on occuring compile errors, this CL systematically adds the <memory> include to each header that uses {std::unique_ptr}. R=sigurds@chromium.org TBR=mlippautz@chromium.org,alph@chromium.org,rmcilroy@chromium.org,verwaest@chromium.org Bug: v8:9396 Change-Id: If7f9c3140842f9543135dddd7344c0f357999da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803349Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63767}
-
- 27 Jun, 2019 1 commit
-
-
Jaroslav Sevcik authored
We also introduce a subclass of AbstractBytecodeArray to allow access to the off-heap copy of bytecode array from the bytecode iterator. Note that not all bytecode iterators have been converted to iterate the off-heap copy; in particular, bytecode analysis still iterates the on-heap bytecode array. Bug: v8:7790 Change-Id: Icc1b0adb5f63d7cfe94286311f64f209067bbfd5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672931 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#62403}
-
- 19 Jun, 2019 1 commit
-
-
Jaroslav Sevcik authored
This is to allow instantiating things like bytecode array iterator for accessing both on-heap and off-heap bytecode arrays. Bug: v8:7790 Change-Id: I8dbd0884f79923d69dbc8b168d3a4a200eab14b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1640199 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62266}
-
- 21 Nov, 2016 1 commit
-
-
leszeks authored
Refactors the bytecode array iterator to separate the iteration and the bytecode parameter access, placing the latter into a separate super-class. This will allow us to have other forms of access, e.g. reverse iteration. Review-Url: https://codereview.chromium.org/2519923002 Cr-Commit-Position: refs/heads/master@{#41152}
-
- 14 Oct, 2016 1 commit
-
-
jochen authored
R=machenbach@chromium.org,jgruber@chromium.org,mythria@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe Review-Url: https://codereview.chromium.org/2410353005 Cr-Commit-Position: refs/heads/master@{#40300}
-
- 13 Sep, 2016 1 commit
-
-
leszeks authored
Review-Url: https://codereview.chromium.org/2336203002 Cr-Commit-Position: refs/heads/master@{#39388}
-
- 15 Jul, 2016 1 commit
-
-
oth authored
> Original issue's description: > [interpreter] Reduce dependencies in bytecodes.{h,cc} > > This CL reduces the number of dependencies bytecodes.{h,cc} to facilitate > generating the bytecode peephole optimizer table during build. Specifically, > it avoids depending on v8_base. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/4edebb1cd870ae6c1359ad54f83e618e185883b1 > Cr-Commit-Position: refs/heads/master@{#37715} BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2149093002 Cr-Commit-Position: refs/heads/master@{#37794}
-
- 14 Jul, 2016 1 commit
-
-
machenbach authored
Revert of [interpreter] Reduce dependencies in bytecodes.{h,cc} (patchset #8 id:140001 of https://codereview.chromium.org/2135273002/ ) Reason for revert: Breaks the roll, possibly win gn: https://codereview.chromium.org/2148863002/ Original issue's description: > [interpreter] Reduce dependencies in bytecodes.{h,cc} > > This CL reduces the number of dependencies bytecodes.{h,cc} to facilitate > generating the bytecode peephole optimizer table during build. Specifically, > it avoids depending on v8_base. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/4edebb1cd870ae6c1359ad54f83e618e185883b1 > Cr-Commit-Position: refs/heads/master@{#37715} TBR=mstarzinger@chromium.org,rmcilroy@chromium.org,oth@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review-Url: https://codereview.chromium.org/2151693003 Cr-Commit-Position: refs/heads/master@{#37743}
-
- 13 Jul, 2016 1 commit
-
-
oth authored
This CL reduces the number of dependencies bytecodes.{h,cc} to facilitate generating the bytecode peephole optimizer table during build. Specifically, it avoids depending on v8_base. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2135273002 Cr-Commit-Position: refs/heads/master@{#37715}
-
- 21 Jun, 2016 3 commits
-
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea Review-Url: https://codereview.chromium.org/2084623002 Cr-Original-Commit-Position: refs/heads/master@{#37135} Cr-Commit-Position: refs/heads/master@{#37145}
-
machenbach authored
Revert of [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. (patchset #3 id:40001 of https://codereview.chromium.org/2084623002/ ) Reason for revert: [Sheriff] Breaks gc stress: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6304 Original issue's description: > [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. > > Make intrinsic ids a contiguous set of ids so that the switch statement can build > a table switch rather than doing a large if/else tree. > > BUG=v8:4822 > LOG=N > > Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea > Cr-Commit-Position: refs/heads/master@{#37135} TBR=epertoso@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4822 Review-Url: https://codereview.chromium.org/2085823003 Cr-Commit-Position: refs/heads/master@{#37137}
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Review-Url: https://codereview.chromium.org/2084623002 Cr-Commit-Position: refs/heads/master@{#37135}
-
- 21 Mar, 2016 1 commit
-
-
oth authored
This change introduces wide prefix bytecodes to support wide (16-bit) and extra-wide (32-bit) operands. It retires the previous wide-bytecodes and reduces the number of operand types. Operands are now either scalable or fixed size. Scalable operands increase in width when a bytecode is prefixed with wide or extra-wide. The bytecode handler table is extended to 256*3 entries. The first 256 entries are used for bytecodes with 8-bit operands, the second 256 entries are used for bytecodes with operands that scale to 16-bits, and the third group of 256 entries are used for bytecodes with operands that scale to 32-bits. LOG=N BUG=v8:4747,v8:4280 Review URL: https://codereview.chromium.org/1783483002 Cr-Commit-Position: refs/heads/master@{#34955}
-
- 11 Feb, 2016 3 commits
-
-
ssanfilippo authored
Apparently, this BytecodeArrayIterator method was missed during the previous refactor. No other (collateral) change was done. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1691433002 Cr-Commit-Position: refs/heads/master@{#33909}
-
machenbach authored
Revert of [Interpreter] Rename GetCountOperand to GetRegisterCountOperand. (patchset #1 id:20001 of https://codereview.chromium.org/1691433002/ ) Reason for revert: [Sheriff] Breaks the tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20builder/builds/13892 Blamelists are wrong because of overloaded master. The trybots on this CL might have been outdated by the time of commit... Please rebase and retry. Original issue's description: > [Interpreter] Rename GetCountOperand to GetRegisterCountOperand. > > Apparently, this BytecodeArrayIterator method was missed during the > previous refactor. No other (collateral) change was done. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/3781ca79f5c48b55d7f0bf6df370ec11515a1466 > Cr-Commit-Position: refs/heads/master@{#33897} TBR=oth@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org,ssanfilippo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1690963002 Cr-Commit-Position: refs/heads/master@{#33900}
-
ssanfilippo authored
Apparently, this BytecodeArrayIterator method was missed during the previous refactor. No other (collateral) change was done. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1691433002 Cr-Commit-Position: refs/heads/master@{#33897}
-
- 28 Jan, 2016 1 commit
-
-
rmcilroy authored
Adds --trace-ignition flag which allows tracing of bytecodes as they execute. As well as printing out the bytecode, this also prints out the input and output registers to each operation. The generated output looks as follows: -> 0x350cb46d5264 (139) : 49 fc fb 03 07 Call r4, r5, #3, [7] [ accumulator -> 0x177fba00bc99 <JS Array[2]> ] [ r4 -> 0x350cb46ce099 <JS Function InstallFunctions (SharedFunctionInfo 0x350cb46470c1)> ] [ r5 -> 0x350cb46cddc1 <an Object with map 0x35fdf590a3a9> ] [ r6 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] [ r7 -> 2 ] [ accumulator <- 0x350cb4604189 <undefined> ] -> 0x350cb46d5978 (47) : 4b f8 00 00 00 CallRuntime [248], r0, #0 [ accumulator -> 0x350cb4604189 <undefined> ] [ accumulator <- 0x350cb4604189 <undefined> ] -> 0x350cb46d597d (52) : 23 09 Ldar a0 [ accumulator -> 0x350cb4604189 <undefined> ] [ a0 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] -> 0x350cb46d597f (54) : 24 fd Star r3 [ accumulator -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] [ r3 <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ] Also adds support for --print_source and --print-ast to the interpreter. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1640213002 Cr-Commit-Position: refs/heads/master@{#33594}
-
- 18 Dec, 2015 1 commit
-
-
rmcilroy authored
Adds FrameState nodes to graphs built by the Bytecode Graph Builder, in preparation for adding deopt support. Also adds a new FrameStateType::kInterpretedFunction to allow for specialized deopt stack translation for interpreted frames. Finally adds support for disabling typed lowering of binary ops, since the current approach relies on a FrameState hack which does not apply to interpreted frames BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1514413002 Cr-Commit-Position: refs/heads/master@{#32964}
-
- 16 Dec, 2015 1 commit
-
-
oth authored
This change adds support for local control flow when building graphs from bytecode. The change ensures loop emitted from the bytecode generator are in natural order so the only back branches are for loops. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1502243002 Cr-Commit-Position: refs/heads/master@{#32911}
-
- 02 Oct, 2015 5 commits
-
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31089}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #8 id:220001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Now breaking arm32 debug bot (worked locally even with --debug-code, so I'll need to figure out what's different on the bot) Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1379933003 Cr-Commit-Position: refs/heads/master@{#31078}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc Cr-Commit-Position: refs/heads/master@{#31064} Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31076}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #6 id:180001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Broke Arm64 bot (CEntry stub is trying to pop arguments off stack when argv_in_reg, so I need to fix this). Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc > Cr-Commit-Position: refs/heads/master@{#31064} TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1387543002 Cr-Commit-Position: refs/heads/master@{#31066}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31064}
-
- 01 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds support for short operands, starting with kIdx16. Introduces BytecodeTraits to enable compile time determination of various traits for a bytecode, such as size, operands, etc. Reworks BytecodeIterator, BytecodeArrayBuilder and Bytecodes::Decode to support 16 bit operands. Adds support to Interpreter to load 16 bit operands. Also fixes a bug with ToBoolean where it wouldn't get emitted at the start of a block, and added a test. BytecodeTraits template magic inspired by oth@chromium.org. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1370893002 Cr-Commit-Position: refs/heads/master@{#31058}
-