- 05 Apr, 2017 23 commits
-
-
kozyatinskiy authored
What will we get: - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, - console calls are ~ 15% faster. BUG=v8:6175 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Original-Commit-Position: refs/heads/master@{#44353} Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Commit-Position: refs/heads/master@{#44355} Committed: https://chromium.googlesource.com/v8/v8/+/cc74ea0bc4fe4a71fa53d08b62cc18d15e01fbb3 Review-Url: https://codereview.chromium.org/2785293002 Cr-Commit-Position: refs/heads/master@{#44416}
-
Ross McIlroy authored
Move the ToBoolean elision in the BytecodeGenerator instead of the peephole optimizer. Adds a TypeHint mechanism to the ExpressionResult to enable passing of type hints through the ast visitor. BUG=v8:6194 Change-Id: Ic55506ba11b213f7459250004d3f18cab04ee9b3 Reviewed-on: https://chromium-review.googlesource.com/467208 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#44415}
-
Michael Starzinger authored
This fixes a corner case which allowed warnings during the asm.js instantiation to be promoted to actual exceptions. Even instantiation attempts that fail are not allowed to throw exceptions observable by JavaScript, but need to fall back to JavaScript execution. R=clemensh@chromium.org TEST=mjsunit/regress/regress-6203 BUG=v8:6203 Change-Id: I86f5a3adda4bcfe63b5cddc42d8ae1c3dbb88147 Reviewed-on: https://chromium-review.googlesource.com/468808 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44414}
-
jyan authored
DCHECK disappears on release build. R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2803663002 Cr-Commit-Position: refs/heads/master@{#44413}
-
jkummerow authored
and out of the main library. This saves about 5% of binary size (800KB on x64, 373KB on android_arm). Only the GN build is supported; the GYP build is maintained working but does not support the feature. BUG=v8:6055 CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_nosnap_rel; Review-Url: https://codereview.chromium.org/2760233005 Cr-Commit-Position: refs/heads/master@{#44412}
-
Wiktor Garbacz authored
It enables jobs without a SharedFunctionInfo. BUG=v8:6093 Change-Id: I70e226638fdb5b3a0634cc4437d128771c838eee Reviewed-on: https://chromium-review.googlesource.com/468966Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#44411}
-
Marja Hölttä authored
There's no need to set it so early - it's only needed when the function has really been parsed. This way we don't need to produce and store it for skipped inner functions. BUG=v8:5516 Change-Id: Ibf59a8acb886ea3de9be140431a334a03b408f5b Reviewed-on: https://chromium-review.googlesource.com/461827 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44410}
-
Michael Starzinger authored
This extends the test coverage for source position tracking of ToNumber conversion to also test conversion to "double" type. It also fixes the discovered inconsistencies. Note that the conversion to "float" remains untested as imported functions are not allowed have "float" return type. R=clemensh@chromium.org TEST=mjsunit/wasm/asm-wasm-exception-in-tonumber BUG=v8:6127 Change-Id: I6c59b7a24456a585a814f19a86eb9447ac5098ab Reviewed-on: https://chromium-review.googlesource.com/467251 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44409}
-
bmeurer authored
When passing --trace-opt-verbose print more information about why we decide not to optimize certain functions. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2800623002 Cr-Commit-Position: refs/heads/master@{#44408}
-
Andreas Haas authored
R=jochen@chromium.org Change-Id: I34bc156c3c4911ba8511ba9720fb6cc2e3880d7e Reviewed-on: https://chromium-review.googlesource.com/468888Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44407}
-
Clemens Hammacher authored
In the C++ wasm interpreter, we decode LEB encoded immediates each time we execute the respective instruction. The whole instruction sequence was validated before, thus we know that all integers are valid. This CL refactors several Decoder methods to allow for either checked or unchecked decoding. In the checked case, an error is set if a check fails, in the unchecked case, a DCHECK will fail. This improves performance of the interpreter by 20.5%. R=ahaas@chromium.org BUG=v8:5822 Change-Id: If69efd4f6fbe19d84bfc2f4aa000f429a8e22bf5 Reviewed-on: https://chromium-review.googlesource.com/468786 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44406}
-
Clemens Hammacher authored
Both methods decoded a LEB128 encoded integer, but only consume_leb incremented the pc pointer accordingly. This CL implements consume_leb by using checked_read_leb. It also refactors a few things: 1) It removes error_pt, which was only avaible in checked_read_leb. 2) It renames the error method to errorf, since it receives a format string. This also avoids a name clash. 3) It implements sign extension directly in checked_read_leb instead of doing this in the caller. R=ahaas@chromium.org BUG=v8:5822 Change-Id: I8058f57418493861e5df26d4949041f6766d5138 Reviewed-on: https://chromium-review.googlesource.com/467150 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44405}
-
Michael Achenbach authored
This reverts commit 4bca9dc7. Reason for revert: Breaks mips builder: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/8600 Original change's description: > [compiler-dispatcher] Use an integer job id. > > It enables jobs without a SharedFunctionInfo. > > BUG=v8:6093 > > Change-Id: Icc5f01512c270a55349087d418b6be82ad5c6cb4 > Reviewed-on: https://chromium-review.googlesource.com/467148 > Commit-Queue: Wiktor Garbacz <wiktorg@google.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44402} TBR=rmcilroy@chromium.org,marja@chromium.org,jochen@chromium.org,rmcilroy@google.com,wiktorg@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6093 Change-Id: Ie8d26f4e2d42f67a1cfa91269e80e407ed3f0799 Reviewed-on: https://chromium-review.googlesource.com/468887Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44404}
-
Michael Achenbach authored
Bug: v8:6154 NOTRY=true TBR=yangguo@chromium.org Change-Id: I7acb31abd5571261740fd95eeb58f104c26b192e Reviewed-on: https://chromium-review.googlesource.com/468807Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44403}
-
Wiktor Garbacz authored
It enables jobs without a SharedFunctionInfo. BUG=v8:6093 Change-Id: Icc5f01512c270a55349087d418b6be82ad5c6cb4 Reviewed-on: https://chromium-review.googlesource.com/467148 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44402}
-
Michael Achenbach authored
Bug: chromium:706763 Change-Id: Iac91fa538ed61d1c47509f990ee9426b0b3bdc1d Reviewed-on: https://chromium-review.googlesource.com/467147Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44401}
-
Marja Hölttä authored
Broken by https://chromium-review.googlesource.com/c/467486/ R=vogelheim@chromium.org Bug: Change-Id: Id4353f880f80b48f61a6be1773ebfed16a25e85a Reviewed-on: https://chromium-review.googlesource.com/468806Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44400}
-
Michael Achenbach authored
Bug: v8:6154 NOTRY=true Change-Id: I7f18efaf2f86b9dfa43f249d817777f19ee29c9b Reviewed-on: https://chromium-review.googlesource.com/467427Reviewed-by: Franziska Hinkelmann <franzih@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44399}
-
mlippautz authored
This reverts commit eddf90c4. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2792063004 Cr-Commit-Position: refs/heads/master@{#44398}
-
Michael Achenbach authored
Bug: v8:6154 NOTRY=true TBR=yangguo@chromium.org Change-Id: I29e8fd8e12c43478086a35a28249f5f66cd30b6b Reviewed-on: https://chromium-review.googlesource.com/467429Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44397}
-
jgruber authored
IdentifierStart::Is and IdentifierContinue::Is both return true for '\'. The reason for this is lost to history. Special-case '\' in the regexp parser to handle this. BUG=v8:5437,v8:5868 Review-Url: https://codereview.chromium.org/2795093003 Cr-Commit-Position: refs/heads/master@{#44396}
-
mtrofin authored
Better demarcation between what's mutable because it is code- specialization specific, and what is provided at initialization. BUG= Review-Url: https://codereview.chromium.org/2784233004 Cr-Commit-Position: refs/heads/master@{#44395}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/58260ed..a312720 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/7726dac..b3c4635 Rolling v8/third_party/instrumented_libraries: https://chromium.googlesource.com/chromium/src/third_party/instrumented_libraries/+log/61065eb..05d5695 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I294769d63e0b53b73260ce824a5a9a4e59728fcb Reviewed-on: https://chromium-review.googlesource.com/468587Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#44394}
-
- 04 Apr, 2017 17 commits
-
-
Caitlin Potter authored
Remove destructuring assignments (parsed during arrow function formal parameters) from queue for rewriting if parsing a lazy top-level arrow function. Built ontop of https://chromium-review.googlesource.com/c/464769/ BUG=chromium:706234, chromium:706761, v8:6182 R=marja@chromium.org, adamk@chromium.org, vogelheim@chromium.org Change-Id: Ib35196b907350d1d78e4c3fcbf4cc971bf200948 Reviewed-on: https://chromium-review.googlesource.com/465415 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44393}
-
jyan authored
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com Review-Url: https://codereview.chromium.org/2795803003 Cr-Commit-Position: refs/heads/master@{#44392}
-
jbroman authored
This enables clients like IndexedDB to know when the data format version has decreased (i.e. the user has switched to an earlier version) and deal with the resulting incompatibility up front. BUG=chromium:704293 Review-Url: https://codereview.chromium.org/2772723005 Cr-Commit-Position: refs/heads/master@{#44391}
-
Adam Klein authored
Bug: v8:6186 Change-Id: If460313ee861f826a89bc7390a5e35d43d175622 Reviewed-on: https://chromium-review.googlesource.com/466549Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#44390}
-
Adam Klein authored
Also rename "Discard" for clarity. Bug: v8:6092 Change-Id: I8c299ded920e794418e0619b6958fbef35dfda4e Reviewed-on: https://chromium-review.googlesource.com/466591Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#44389}
-
kschimpf authored
After discussion with Chrome reviewers for UMA, it was decided that we would report array buffer allocation sizes in megabytes (not the log). They also wanted to wait until there is proof that small array buffer allocations would flood the histogram. Hence, all allocation sizes are sampled. There were several ways we could have added the notion of megabyte samples to V8 code. None of them are a great fit. This code simply provides a local function within the code that needs it. Other possible solutions but rejected were: a) Use a subclass of histogram to collect data at the megabyte level. It has it's own Add() method that converts the size from bytes to megabytes, and then call the generic add method AddSample(). This solution appears to follow the conventions of subclasses of class Histogram. b) Use Chrome macros - Rejected because it involves changing the counter representation of V8. c) Add a method AddMegabyteSample() to base class Histogram. Rejected because it may get confusing if a lot of different measures are added the the base class of histograms. d) Make method AddSample() virtual and override in the derived class. Rejected in that sampling is supposed to be fast, and adding a virtual call may be breaking that contract. d) Do not add a derived class. Rather just do the conversions at the call sites. Rejected because this duplicates code, and also makes it hard to change assumptions on how to calculate. For Chromes UMA changes see: CL: https://codereview.chromium.org/2795463002 BUG=chromium:704922 R=bbudge@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2795763002 Cr-Commit-Position: refs/heads/master@{#44388}
-
mtrofin authored
This reflects both the contract in blink, as well as what we plan to do in streamed compilation, where we'll want to lay out bytes received such that each section and each function body is contiguous, but they may all be separate - which entails a copy. BUG=chromium:697028 Review-Url: https://codereview.chromium.org/2797653002 Cr-Commit-Position: refs/heads/master@{#44387}
-
mlippautz authored
This reverts commit c766727a. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2793323002 Cr-Commit-Position: refs/heads/master@{#44386}
-
vogelheim authored
The past re-factoring inadvertently increased memory consumption for AstConsString. This implements a micro-optimization to revert and slightly improve beyond the original state. Example, Zone size for parsing closure.js: - 20,999,848 B (before refactoring) - 21,651,056 B (after refactoring patch; 3.1% regression) - 20,641,320 B (after this CL; 1.7% improvement over original) (Reason: ZoneLinkedList requires 4 pointers to support the std::list functionality (Zone*, head/tail ptr, payload ptr). But since we only append and iterate in order and have the Zone* available in the context, a super simple linked list (value + next ptr) saves a bit of memory, especially for the common case of having 0 or 1 string segments.) BUG=v8:6902, chromium:706935 Review-Url: https://codereview.chromium.org/2792353002 Cr-Commit-Position: refs/heads/master@{#44385}
-
pierre.langlois authored
When emitting a frame, we always push the old frame pointer at offset 0 relative to the new frame pointer. However, we didn't emit DWARF opcodes to inform perf of this. BUG= Review-Url: https://codereview.chromium.org/2795253002 Cr-Commit-Position: refs/heads/master@{#44384}
-
mlippautz authored
Revert of [heap] Fix CompactionSpace test and move to unittests (patchset #3 id:40001 of https://codereview.chromium.org/2796033002/ ) Reason for revert: Breaks https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20shared/builds/17291 Original issue's description: > [heap] Fix CompactionSpace test and move to unittests > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2796033002 > Cr-Commit-Position: refs/heads/master@{#44382} > Committed: https://chromium.googlesource.com/v8/v8/+/ce9a2db1e13131245d8adc2757b9d9202ba568e0 TBR=ulan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2793033004 Cr-Commit-Position: refs/heads/master@{#44383}
-
mlippautz authored
BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2796033002 Cr-Commit-Position: refs/heads/master@{#44382}
-
jgruber authored
This reverts 1c1edda7. I can't reproduce the flakes locally anymore, let's see if this sticks. BUG=v8:5619 Review-Url: https://codereview.chromium.org/2796053002 Cr-Commit-Position: refs/heads/master@{#44381}
-
Michael Achenbach authored
Bug: v8:5193 NOTRY=true TBR=hablich@chromium.org Change-Id: I54861956c1a7b3c3e5048946618ea98fbe0a7066 Reviewed-on: https://chromium-review.googlesource.com/467246Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44380}
-
vchigrin authored
This removes kDeoptTableSerializeEntryCount heuristic constant. Review-Url: https://codereview.chromium.org/2790573002 Cr-Commit-Position: refs/heads/master@{#44379}
-
pierre.langlois authored
The unwinding information we emit wrongly encodes code locations as relative offsets. If we look at the .eh_frame section of shared object generated by "perf inject" using "objdump -g": ~~~ 00000000 0000000000000018 00000000 CIE (snip) 0000001c 0000000000000028 00000020 FDE cie=00000000 pc=fffffffffffffee8..00000000000017f8 (snip) 00000048 ZERO terminator ~~~ We can see the range that the FDE entry covers is incorrect, it should point to where the .text section is, at address 0x40 on a 64-bit architecture. The reason for this was that the PerfJitLogger logs a code size that is different from the one we've used when encoding the unwinding information. The logger will ignore the safepoint table while the unwinding info assumes it is part of the code. BUG= Review-Url: https://codereview.chromium.org/2790403002 Cr-Commit-Position: refs/heads/master@{#44378}
-
machenbach authored
Revert of [heap] Refactor evacuation verifier (patchset #1 id:1 of https://codereview.chromium.org/2790373002/ ) Reason for revert: Speculative revert. Breaks https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/16112 and seems to lead to flakes. Original issue's description: > [heap] Refactor evacuation verifier > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2790373002 > Cr-Commit-Position: refs/heads/master@{#44375} > Committed: https://chromium.googlesource.com/v8/v8/+/396f1e242184b936c61dda7a14d1306d43b1863c TBR=ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2795903004 Cr-Commit-Position: refs/heads/master@{#44377}
-