- 16 Dec, 2016 18 commits
-
-
vegorov authored
This allows to share source dumping infrastructure between CS and TF and opens a possibility for external tools like IRHydra to perform deoptimization to source mapping for TF generated code based on --trace-deopt --print-opt-code --code-comments output. This CL also restores an old TraceInlinedFunction behavior which was lost during source positions refactoring - originally TraceInlinedFunction dumped source code only once per-SFI to avoid large traces whenever some helper function is inlined multiple times. This CL also adds --print-opt-source flag that would in the future replace obsolete --hydrogen-track-positions. BUG= Review-Url: https://codereview.chromium.org/2575703003 Cr-Commit-Position: refs/heads/master@{#41758}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2579983002 Cr-Commit-Position: refs/heads/master@{#41757}
-
yangguo authored
If a context snapshot includes the global proxy constructor function, we expect the incoming global proxy to have the correct instance size so that we can reinitialize it with said constructor. However, when the bootstrapper allocates a new global proxy, we need to know the expected size. We solve this by storing the size on the to-be-serialized isolate. R=jochen@chromium.org, peria@chromium.org BUG=chromium:617892 Review-Url: https://codereview.chromium.org/2585693002 Cr-Commit-Position: refs/heads/master@{#41756}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2584743003 Cr-Commit-Position: refs/heads/master@{#41755}
-
jochen authored
BUG=v8:5394 R=mstarzinger@chromium.org,rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2579973002 Cr-Commit-Position: refs/heads/master@{#41754}
-
ishell authored
... by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2579163003 Cr-Commit-Position: refs/heads/master@{#41753}
-
mstarzinger authored
This introduces an explicit struct for the communication channel between the {ArrayLiteral} AST node and the corresponding runtime methods. Those methods take a pair of {ElementsKind} as well as an array (can either be a FixedArray or a FixedDoubleArray) of constant values. For bonus points it also reduces the size of the involved heap object by one word (i.e. length field of FixedArray not needed anymore). R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2581683003 Cr-Commit-Position: refs/heads/master@{#41752}
-
rmcilroy authored
When mark-shared-funtion-for-tier-up is enabled, a function could be marked for optimization, then the baseline (FCG) code is flushed by the GC. The next time the function is executed, we shouldn't optimize the code if there isn't baseline code. BUG=chromium:673242 Review-Url: https://codereview.chromium.org/2575333003 Cr-Commit-Position: refs/heads/master@{#41751}
-
ishell authored
... as they are no longer needed. BUG= Review-Url: https://codereview.chromium.org/2582593005 Cr-Commit-Position: refs/heads/master@{#41750}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2577913003 Cr-Commit-Position: refs/heads/master@{#41749}
-
jarin authored
Revert of [turbofan] Remove value numbering from late optimization pass. (patchset #1 id:1 of https://codereview.chromium.org/2570813002/ ) Reason for revert: Tanks Kraken astar benchmark. Original issue's description: > [turbofan] Remove value numbering from late optimization pass. > > Committed: https://crrev.com/e32535af5a5f4776a58ef434ea77d56528ded427 > Cr-Commit-Position: refs/heads/master@{#41672} TBR=bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/2579273002 Cr-Commit-Position: refs/heads/master@{#41748}
-
clemensh authored
The WasmRunner now always holds a TestingModule, and allows to add several functions to it. The prepares a change to always run wasm code with a full module behind it, removing the special handling for "no wasm instance" at runtime (http://crrev.com/2551053002). This CL here also templatizes the WasmRunner such that the Call method must be called with the same signature specified for the WasmRunner. This already catched several mismatches there. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5620 Review-Url: https://codereview.chromium.org/2551043002 Cr-Original-Commit-Position: refs/heads/master@{#41728} Committed: https://chromium.googlesource.com/v8/v8/+/2ff59062314e9b86bcc28dfaa53cedf2d98e3a13 Review-Url: https://codereview.chromium.org/2551043002 Cr-Commit-Position: refs/heads/master@{#41747}
-
ishell authored
.. by using variadic templates in CodeAssembler. BUG= Review-Url: https://codereview.chromium.org/2577013003 Cr-Commit-Position: refs/heads/master@{#41746}
-
neis authored
TC39 decided at their last meeting to remove this feature. R=adamk@chromium.org TBR=ulan@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2578053003 Cr-Commit-Position: refs/heads/master@{#41745}
-
machenbach authored
Revert of Disallow passing a SharedArrayBuffer in the transfer list. (patchset #4 id:60001 of https://codereview.chromium.org/2570433005/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/12098 See: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > Disallow passing a SharedArrayBuffer in the transfer list. > > This behavior changed recently. SharedArrayBuffers should not be put in the > transfer list, because they are not detached, and that is the meaning of being > in the transfer list. > > This is the V8 side of the change, the Blink side will come next. > > Review-Url: https://codereview.chromium.org/2570433005 > Cr-Commit-Position: refs/heads/master@{#41740} > Committed: https://chromium.googlesource.com/v8/v8/+/1c5e1504e0305363cd262f1706cbd63f9a62ae46 TBR=jbroman@chromium.org,jkummerow@chromium.org,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2579963002 Cr-Commit-Position: refs/heads/master@{#41744}
-
mtrofin authored
BUG=643595 Review-Url: https://codereview.chromium.org/2582583002 Cr-Original-Commit-Position: refs/heads/master@{#41738} Committed: https://chromium.googlesource.com/v8/v8/+/cb433bed0b940a7073b5215e6684b940eec54edd Review-Url: https://codereview.chromium.org/2582583002 Cr-Commit-Position: refs/heads/master@{#41743}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/d4ca00b..3983535 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/ab73453..eb5390d TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2578413002 Cr-Commit-Position: refs/heads/master@{#41742}
-
jyan authored
Add vfa/vfs/vfm/vfd support on s390 R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com, danno@chromium.org, jkummerow@chromium.org, jochen@chromium.org BUG= Review-Url: https://codereview.chromium.org/2582683002 Cr-Commit-Position: refs/heads/master@{#41741}
-
- 15 Dec, 2016 22 commits
-
-
binji authored
This behavior changed recently. SharedArrayBuffers should not be put in the transfer list, because they are not detached, and that is the meaning of being in the transfer list. This is the V8 side of the change, the Blink side will come next. Review-Url: https://codereview.chromium.org/2570433005 Cr-Commit-Position: refs/heads/master@{#41740}
-
mtrofin authored
Revert of [wasm] simpler detection if we compiled asm-wasm (patchset #1 id:1 of https://codereview.chromium.org/2582583002/ ) Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/10384 Original issue's description: > [wasm] simpler detection if we compiled asm-wasm > > BUG=643595 > > Review-Url: https://codereview.chromium.org/2582583002 > Cr-Commit-Position: refs/heads/master@{#41738} > Committed: https://chromium.googlesource.com/v8/v8/+/cb433bed0b940a7073b5215e6684b940eec54edd TBR=yangguo@chromium.org,bradnelson@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=643595 Review-Url: https://codereview.chromium.org/2582623002 Cr-Commit-Position: refs/heads/master@{#41739}
-
mtrofin authored
BUG=643595 Review-Url: https://codereview.chromium.org/2582583002 Cr-Commit-Position: refs/heads/master@{#41738}
-
bbudge authored
- Adds NEON instructions to assembler, disassembler, simulator. - Adds ExtractLane, ReplaceLane functions to macro assembler. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2546933002 Cr-Commit-Position: refs/heads/master@{#41737}
-
alph authored
This should speed up trace generation for cpu profile as it eliminates creation of temporary std::string objects. Review-Url: https://codereview.chromium.org/2555043003 Cr-Commit-Position: refs/heads/master@{#41736}
-
ahaas authored
Original commit message: [wasm] Introduce the TrapIf and TrapUnless operators to generate trap code. Some instructions in WebAssembly trap for some inputs, which means that the execution is terminated and (at least at the moment) a JavaScript exception is thrown. Examples for traps are out-of-bounds memory accesses, or integer divisions by zero. Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5 TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position constant), in addition to the trap condition itself. Additionally, each WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose number of inputs is linear to the number of trap checks in the function. Especially for functions with high numbers of trap checks we observe a significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing a TrapIf common operator only a single node is necessary per trap check, in addition to the trap condition. Also the nodes which are shared between trap checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a speedup of 30-50% on average. This CL only implements TrapIf and TrapUnless on x64. The implementation is also hidden behind the --wasm-trap-if flag. Please take a special look at how the source position is transfered from the instruction selector to the code generator, and at the context that is used for the runtime call. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2571813002 Cr-Commit-Position: refs/heads/master@{#41735}
-
jochen authored
Original CL description: > Store SharedFunctionInfos of a Script in a FixedArray indexed by their ID > > Now that SharedFunctionInfos have a unique ID (and the IDs are dense), > we can use them as an index into an array, instead of using a > WeakFixedArray where we have to do a linear scan. > > Hooking up liveedit is a bit more involved, see > https://docs.google.com/presentation/d/1FtNa3U7WsF5bPhY9uGoJG5Y9hnz5VBDabfOWpb4unWI/edit > for an overview > > BUG=v8:5589 > R=verwaest@chromium.org,jgruber@chromium.org > > Review-Url: https://codereview.chromium.org/2547483002 BUG=v8:5589 TBR=verwaest@chromium.org,jgruber@chromium.org Review-Url: https://codereview.chromium.org/2577063002 Cr-Commit-Position: refs/heads/master@{#41734}
-
ishell authored
.. by using variadic templates in CodeAssembler and RawMachineAssembler. BUG= Review-Url: https://codereview.chromium.org/2580823002 Cr-Commit-Position: refs/heads/master@{#41733}
-
clemensh authored
Revert of [wasm] Make WasmRunner the central test structure (patchset #5 id:80001 of https://codereview.chromium.org/2551043002/ ) Reason for revert: Win64 dbg failures Original issue's description: > [wasm] Make WasmRunner the central test structure > > The WasmRunner now always holds a TestingModule, and allows to add > several functions to it. The prepares a change to always run wasm code > with a full module behind it, removing the special handling for "no wasm > instance" at runtime (http://crrev.com/2551053002). > This CL here also templatizes the WasmRunner such that the Call method must > be called with the same signature specified for the WasmRunner. This > already catched several mismatches there. > > R=titzer@chromium.org, ahaas@chromium.org > BUG=v8:5620 > > Review-Url: https://codereview.chromium.org/2551043002 > Cr-Commit-Position: refs/heads/master@{#41728} > Committed: https://chromium.googlesource.com/v8/v8/+/2ff59062314e9b86bcc28dfaa53cedf2d98e3a13 TBR=ahaas@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5620 Review-Url: https://codereview.chromium.org/2583543002 Cr-Commit-Position: refs/heads/master@{#41732}
-
neis authored
Instead of unconditionally setting maybe_assigned for parameters, treat parameters like other variables except that at the end we set maybe_assigned if the function has a sloppy arguments object. R=adamk@chromium.org, mstarzinger@chromium.org BUG=v8:5636 Review-Url: https://codereview.chromium.org/2578103002 Cr-Commit-Position: refs/heads/master@{#41731}
-
gsathya authored
This will be used in PromiseHook. BUG=v8:4643 Review-Url: https://codereview.chromium.org/2581503003 Cr-Commit-Position: refs/heads/master@{#41730}
-
titzer authored
R=jochen@chromium.org, hpayer@chromium.org, verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2584563002 Cr-Commit-Position: refs/heads/master@{#41729}
-
clemensh authored
The WasmRunner now always holds a TestingModule, and allows to add several functions to it. The prepares a change to always run wasm code with a full module behind it, removing the special handling for "no wasm instance" at runtime (http://crrev.com/2551053002). This CL here also templatizes the WasmRunner such that the Call method must be called with the same signature specified for the WasmRunner. This already catched several mismatches there. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5620 Review-Url: https://codereview.chromium.org/2551043002 Cr-Commit-Position: refs/heads/master@{#41728}
-
petermarshall authored
This was kind of hard to read due to the nesting. Refactor it using short-circuit a bit more and add some comments to each bit. Review-Url: https://codereview.chromium.org/2573283003 Cr-Commit-Position: refs/heads/master@{#41727}
-
adamk authored
R=neis@chromium.org BUG=v8:5743 Review-Url: https://codereview.chromium.org/2577043004 Cr-Commit-Position: refs/heads/master@{#41726}
-
franzih authored
If an accessor property is non-configurable, one should not be able to re-declare it as a function. This specifically applies to special properties like window.location. BUG=chromium:670596 Review-Url: https://codereview.chromium.org/2582493002 Cr-Commit-Position: refs/heads/master@{#41725}
-
mlippautz authored
Similar to object grouping, we cannot trace through blink (and back to V8) after making weak roots strong because phantom callbacks have already been scheduled and the handles been zapped. This is a short-term solution (mimicing what object grouping currently does). It is not correct in general because we should fully process the subgraph that was discovered by making some of the weak roots strong. In long term we need a separate handle type on the API level for traced references that have their handles zapped at a different stage. Reproduction: - Initial marking is done, i.e., both marking deques are empty. - We make weak roots needed for regular finalizers strong. - We collect phantom callback data and zap handles that are not reachable so far. - Through new roots we discover wrappables on the blink side that would also keep objects that were already scheduled for phantom callbacks alive. - Since the handle was already zapped we crash during dereferencing. BUG=chromium:668060,chromium:468240 Review-Url: https://codereview.chromium.org/2580813002 Cr-Commit-Position: refs/heads/master@{#41724}
-
marja authored
If the eval contains a let, we need to know whether an inner function refers to the variable to be able to decide its context allocation status. The added test needs https://codereview.chromium.org/2435023002/ too in order to pass. BUG=v8:5736 Review-Url: https://codereview.chromium.org/2574753002 Cr-Commit-Position: refs/heads/master@{#41723}
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2580533002 Cr-Commit-Position: refs/heads/master@{#41722}
-
ishell authored
The error reported by the graph verifier looks like: # # Fatal error in ../src/compiler/machine-graph-verifier.cc, line 638 # TypeError: node #54:ChangeInt32ToInt64 uses node #53:ChangeUint32ToUint64 which doesn't have an int32-compatible representation. # # Specify option --csa-trap-on-node=test,54 for debugging. # BUG= Review-Url: https://codereview.chromium.org/2574353002 Cr-Commit-Position: refs/heads/master@{#41721}
-
ahaas authored
Some instructions in WebAssembly trap for some inputs, which means that the execution is terminated and (at least at the moment) a JavaScript exception is thrown. Examples for traps are out-of-bounds memory accesses, or integer divisions by zero. Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5 TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position constant), in addition to the trap condition itself. Additionally, each WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose number of inputs is linear to the number of trap checks in the function. Especially for functions with high numbers of trap checks we observe a significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing a TrapIf common operator only a single node is necessary per trap check, in addition to the trap condition. Also the nodes which are shared between trap checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a speedup of 30-50% on average. This CL only implements TrapIf and TrapUnless on x64. The implementation is also hidden behind the --wasm-trap-if flag. Please take a special look at how the source position is transfered from the instruction selector to the code generator, and at the context that is used for the runtime call. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2562393002 Cr-Commit-Position: refs/heads/master@{#41720}
-
leszeks authored
Adds assignment tracking to the bytecode analysis pass, and updates bytecode graph builder to only create LoopExitValues for assigned values. Review-Url: https://codereview.chromium.org/2558093005 Cr-Commit-Position: refs/heads/master@{#41719}
-