- 24 May, 2017 15 commits
-
-
jarin authored
In particular, local variables should be allocated on stack (in bytecode register), and stored/loaded to the generator object on generator suspend/resume. The CL is based on @adamk's change to scoping/parsers (https://chromium-review.googlesource.com/c/498538/), I only made the debugger cope with this change. I should note that the CL changes the scope type of suspended generators from ScopeType.Closure to ScopeType.Local. In the future we might want to introduce ScopeType.SuspendedGenerator to make the distinction explicit. Some of the changes in the tests have been made because the debugger functions do not return scopes of closed generators anymore. Generators should be allowed to throw away their internal state when they finish. BUG=v8:6368 Review-Url: https://codereview.chromium.org/2898163002 Cr-Commit-Position: refs/heads/master@{#45515}
-
bmeurer authored
Add a protector cell for string bounds checks that is being used to protect speculative bounds for String.prototype.charCodeAt and String.prototype.charAt in TurboFan (and Crankshaft). This way we don't have the diamond in optimized code, which stands in the way of other optimizations for charCodeAt that are currently being worked on by petermarshall@. BUG=v8:6391 TBR=mlippautz@chromium.org R=petermarshall@chromium.org Review-Url: https://codereview.chromium.org/2905623003 Cr-Commit-Position: refs/heads/master@{#45514}
-
Michael Lippautz authored
- Create getters for number of tasks for all parallel stages - Count slots for the minor MC and limit tasks by the overall number of slots. - Cleanup existing getters. Bug: chromium:651354 Change-Id: I9f67cca4474cbe1800faff4a549fbec019b096ce Reviewed-on: https://chromium-review.googlesource.com/512862 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45513}
-
dusan.simicic authored
Add support for I8x16Add, I8x16AddSaturateS, I8x16Sub, I8x16SubSaturateS, I8x16Mul, I8x16MaxS, I8x16MinS, I8x16Eq, I8x16Ne, I8x16LtS, I8x16LeS, I8x16ShrU, I8x16AddSaturateU, I8x16SubSaturateU, I8x16MaxU, I8x16MinU, I8x16LtU, I8x16LeU, S128And, S128Or, S128Xor, S128Not for mips32 and mips64 architectures. BUG= Review-Url: https://codereview.chromium.org/2798853003 Cr-Commit-Position: refs/heads/master@{#45512}
-
Michael Starzinger authored
This removes the need for certain context scopes to skip popping the context register. For the {incoming_context} the flag was already obsolete, because its destructor would only run once the basic block ended with a return. For {local_function_context} the same holds now by moving handling of implicit returns into the body visitor. R=rmcilroy@chromium.org Change-Id: Icceaab1b30d7223b2b2f87a092a6580be7d7d675 Reviewed-on: https://chromium-review.googlesource.com/513963Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45511}
-
Michael Lippautz authored
This is safe since we already take the page lock. Bug: Change-Id: Id7797ef66c387be150064cda1213c1f2b75d31d3 Reviewed-on: https://chromium-review.googlesource.com/514003Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45510}
-
kozyatinskiy authored
There are two break locations at the same source location by desugaring: - call iterator.next, - before variable assignment. Additionally location for for..of loops is moved from before "of" to before each variable expression. We should not report first implicit call to avoid user confusion. User still able to go into .next function with both scenarios: - when this call is reached by stepOver or stepInto from previous line, - when this call is reached because of breakpoint at current line. BUG=v8:6425 R=dgozman@chromium.org,jgruber@chromium.org Review-Url: https://codereview.chromium.org/2893313002 Cr-Commit-Position: refs/heads/master@{#45509}
-
Peter Marshall authored
Add a sequential string type to the compiler, and transform charCodeAt on SeqString into SeqStringCharCodeAt. SeqStringCharCodeAt can handle one and two byte strings. Bug: v8:6391 Change-Id: I2785257522c28f3b268c9833f5313e9630cb982a Reviewed-on: https://chromium-review.googlesource.com/509573Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#45508}
-
Michael Starzinger authored
This avoids emitting redundant {PopContext} bytecode instructions when non-local control-flow leaves the method body. It also folds multiple such {PopContext} instructions into one, in case several scoping levels are crossed at one. Only the expected context of the target of a local control-flow transfer matters. R=rmcilroy@chromium.org TEST=debugger/regress/regress-crbug-724858 BUG=chromium:724858 Change-Id: Id4a47ae9fea25e75ae1af13619720b16a3975edf Reviewed-on: https://chromium-review.googlesource.com/512545Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45507}
-
Michael Achenbach authored
This reverts commit 589a4d1d. Reason for revert: Breaks webkit: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20predictable/builds/11714 Original change's description: > [test] Don't hide crashes in predictable mode > > Bug: v8:6426 > Change-Id: I278dda0d628732bb9c539c2648d2b27bcbc89bf0 > Reviewed-on: https://chromium-review.googlesource.com/512643 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45504} TBR=jkummerow@chromium.org,machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6426 Change-Id: I85c573fa332f436bb57f2747ad98c26e1c1f23bd Reviewed-on: https://chromium-review.googlesource.com/513866Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45506}
-
Michael Lippautz authored
NOTRY=true TBR=hpayer@chromium.org Bug: chromium:651354 Change-Id: Ibff438d987b07907b2c4463a42bef685864c1602 Reviewed-on: https://chromium-review.googlesource.com/513903Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45505}
-
Michael Achenbach authored
Bug: v8:6426 Change-Id: I278dda0d628732bb9c539c2648d2b27bcbc89bf0 Reviewed-on: https://chromium-review.googlesource.com/512643Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45504}
-
Toon Verwaest authored
There are only two users of hidden prototypes left and they both only have 1 level. This slightly simplifies the handcrafted code. Bug: v8:5561 Change-Id: I674e72f1465ccbe75c0bb63f7eea3525830145cb Reviewed-on: https://chromium-review.googlesource.com/512745Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#45503}
-
Michael Achenbach authored
This reverts commit 2869dd55. Reason for revert: Breaks: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15850 See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [wasm] Remove override-ability from async compile and instantiate. > > We're now using explicit APIs. > > Bug: > Change-Id: I4a4248e44543f6e7dfcbdc66456e610fb98ff5ee > Reviewed-on: https://chromium-review.googlesource.com/513406 > Commit-Queue: Brad Nelson <bradnelson@chromium.org> > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45500} TBR=bradnelson@chromium.org,mtrofin@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: Change-Id: Ie7c2db40279bd07c535c20afaa1cea51b680fe65 Reviewed-on: https://chromium-review.googlesource.com/513862Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45502}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/b19d8a0..5488ca8 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/08a6e0a..51b3178 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: Ic07c2cd8459688129791ac27e185e2e1308d5a48 Reviewed-on: https://chromium-review.googlesource.com/513445Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45501}
-
- 23 May, 2017 25 commits
-
-
Mircea Trofin authored
We're now using explicit APIs. Bug: Change-Id: I4a4248e44543f6e7dfcbdc66456e610fb98ff5ee Reviewed-on: https://chromium-review.googlesource.com/513406 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45500}
-
Mircea Trofin authored
This doesn't fix the bug, just avoids it. Bug: v8:6436 Change-Id: I06305a9baf892e4039f2aaf353fa7edf7b7e325d Reviewed-on: https://chromium-review.googlesource.com/513242Reviewed-by: Brad Nelson <bradnelson@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45499}
-
Clemens Hammacher authored
Drive-by: Add some comments. R=jarin@chromium.org, mtrofin@chromium.org BUG=v8:6434 Change-Id: If4ee8dfc68685429a91885a1c831709a4e31619c Reviewed-on: https://chromium-review.googlesource.com/513202 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45498}
-
georgia.kouveli authored
This patch also adds sharing of code target entries, which requires sharing the RelocInfo for those entries as well. The disassembler is also modified in order to print comments for the RelocInfo that is now shared. This improves the snapshot size for arm by about 4%. BUG= Review-Url: https://codereview.chromium.org/2869683004 Cr-Commit-Position: refs/heads/master@{#45497}
-
mattloring authored
Asynchronous context tracking mechanisms in Node.js need to store some state on all promise objects. This change will allow embedders to configure the number of internal fields on promises as is already done for ArrayBuffers. BUG=v8:6435 Review-Url: https://codereview.chromium.org/2889863002 Cr-Commit-Position: refs/heads/master@{#45496}
-
hpayer authored
Perf Sheriffs: This CL may change performance on various benchmarks. BUG=chromium:716032 Review-Url: https://codereview.chromium.org/2895473003 Cr-Commit-Position: refs/heads/master@{#45495}
-
Michael Lippautz authored
Bug: chromium:651354 Change-Id: If2a67a7166e412affad7e71eb06087cc1478892c Reviewed-on: https://chromium-review.googlesource.com/512825Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45494}
-
Miran.Karic authored
A number of improvements in mips64 load immediate macro is added per suggestions from MIPS ART team. Also fix Subu and Dsubu macro, add a test for Subu and Dsubu and make minor code adjustments. BUG= TEST=cctest/test-assembler-mips/li_macro cctest/test-assembler-mips/Subu cctest/test-assembler-mips/Dsubu Review-Url: https://codereview.chromium.org/2892163002 Cr-Commit-Position: refs/heads/master@{#45493}
-
Camillo Bruni authored
NOTRY=true Change-Id: Id2085b36ccbf5e039b725fad477c7292735a27b5 Reviewed-on: https://chromium-review.googlesource.com/512543Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45492}
-
Clemens Hammacher authored
Before emitting the safepoint table, remove consecutive identical entries (idential except for the pc of course). The lookup then searches for the last entry whose pc is <= the wanted pc. The lookup procedure can still be optimized to use binary search laster. This change decreases code size for wasm by 27.6% (on the unity benchmark). BUG=v8:6434 Change-Id: I03481721fe666cd2c50a383380c74b06edf39106 Reviewed-on: https://chromium-review.googlesource.com/512542 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45491}
-
Clemens Hammacher authored
PrintAlloctionsHash -> PrintAllocationsHash R=mlippautz@chromium.org Change-Id: I3b5067d5ea2ef1f4250e384b233cc4a85d8509c1 Reviewed-on: https://chromium-review.googlesource.com/512723Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45490}
-
Sathya Gunasekaran authored
Bug: v8:5717, v8:6354 Change-Id: I4be80eabcb0f98446e695a2ab1ad5804b7181ac7 Reviewed-on: https://chromium-review.googlesource.com/506818 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45489}
-
Michael Lippautz authored
Keep the live bytes counter in a local hashmap. Merge back the counts upon task destruction. Bug: chromium:651354 Change-Id: Idd30e8fde690739d769a34e4650d8c0179fb5a75 Reviewed-on: https://chromium-review.googlesource.com/512642 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45488}
-
Camillo Bruni authored
Change-Id: Ib6ee9d9ce827c2f9f42f09292b0caca922cfde1e Reviewed-on: https://chromium-review.googlesource.com/512663Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45487}
-
jgruber authored
BUG=v8:5402 Review-Url: https://codereview.chromium.org/2900713004 Cr-Commit-Position: refs/heads/master@{#45486}
-
bmeurer authored
Previously the inlining of accessors into try-blocks (i.e. try/catch, try/finally, for-of, etc.) was disabled in JSNativeContextSpecialization, which prevented a couple of interesting optimizations, i.e. we end up with a LOAD_IC in optimized code for this simple example: class A { get x() { return 1; } } function foo(a) { try { return a.x; } catch (e) { return 0; } } foo(new A) This is now fixed and the accessors are properly rewired into the handler chain. BUG=v8:6278,v8:6344,v8:6424 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2902533003 Cr-Commit-Position: refs/heads/master@{#45485}
-
Michael Lippautz authored
- Only mark a single bit (grey) - Increment live bytes after visiting, avoiding the map lookup for size in ObjectMarking Raw speed improvements should be around 20%-30%. Bug: chromium:651354 Change-Id: Ib58d1aee0b99d8e628a0191f90a2ffad9324b915 Reviewed-on: https://chromium-review.googlesource.com/509548 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45484}
-
machenbach authored
Revert of [es2015] Precompute the descriptive string for symbols. (patchset #3 id:40001 of https://codereview.chromium.org/2900703002/ ) Reason for revert: Speculative revert for: https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/8901 Original issue's description: > [es2015] Precompute the descriptive string for symbols. > > Previously the String constructor and the Symbol.prototype.toString > methods had to compute the descriptive string for a Symbol on the fly, > which can produce a lot of garbage when this happens a lot, i.e. when > the String representation of a Symbol is used often. Now instead of > doing this on-demand we can just do it upfront when creating the Symbol. > > That way we also ensure that we won't throw an exception when accessing > the descriptive string of a Symbol, due to potential String length > overflow, but have the exception during Symbol creation upfront, which > is a lot less surprising behavior. > > BUG=v8:6278,v8:6344,v8:6350 > TBR=mlippautz@chromium.org > R=ishell@chromium.org > > Review-Url: https://codereview.chromium.org/2900703002 > Cr-Commit-Position: refs/heads/master@{#45479} > Committed: https://chromium.googlesource.com/v8/v8/+/e87573822e1c0c041c03f2b60599b0ab9256422f TBR=ishell@chromium.org,mlippautz@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6278,v8:6344,v8:6350 Review-Url: https://codereview.chromium.org/2903533002 Cr-Commit-Position: refs/heads/master@{#45483}
-
Mostyn Bramley-Moore authored
BUG=v8:5203 Change-Id: I088145e83877fad1b15476757f528e5f1e9cdf54 Reviewed-on: https://chromium-review.googlesource.com/511442Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Cr-Commit-Position: refs/heads/master@{#45482}
-
Michael Starzinger authored
This makes sure that property lookups on the provided imports object are non-observable to JavaScript. It allows instantiation failures to fall back to JavaScript proper without accidentally calling accessors twice. Also accessors might invalidate previous checks done during linking or throw exceptions. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-719384 BUG=chromium:719384 Change-Id: I3db2672d2a496110f705d02b82878e70cd5d701f Reviewed-on: https://chromium-review.googlesource.com/509552Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45481}
-
Michael Lippautz authored
- Visitors are now part of the tasks. - There's one visitor extra for the main thread. Bug: chromium:651354 Change-Id: I6c1d109e9d2a2092c0f06fee5a158d101ac6bc2a Reviewed-on: https://chromium-review.googlesource.com/512302Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45480}
-
bmeurer authored
Previously the String constructor and the Symbol.prototype.toString methods had to compute the descriptive string for a Symbol on the fly, which can produce a lot of garbage when this happens a lot, i.e. when the String representation of a Symbol is used often. Now instead of doing this on-demand we can just do it upfront when creating the Symbol. That way we also ensure that we won't throw an exception when accessing the descriptive string of a Symbol, due to potential String length overflow, but have the exception during Symbol creation upfront, which is a lot less surprising behavior. BUG=v8:6278,v8:6344,v8:6350 TBR=mlippautz@chromium.org R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2900703002 Cr-Commit-Position: refs/heads/master@{#45479}
-
Clemens Hammacher authored
Validation normally happens while generating the turbofan graph of a wasm function. For lazy compilation (behind the flag --wasm-lazy-compilation), we skip this graph generation step during module generation. Thus we need to validate explicitely. R=ahaas@chromium.org BUG=chromium:724851 Change-Id: Ic70887c0d823460a272d0bb636dc98b2b7a7e55e Reviewed-on: https://chromium-review.googlesource.com/509574Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45478}
-
pierre.langlois authored
Add a new "v8_perf_prof_unwinding_info" option to gn that translates to building the snapshot with "--perf-prof-unwinding-info". It allows unwinding TF generated code from the snapshot. Additionally, add a warning if one uses the option along with a snapshot which was not build with unwinding information. Running tests in this configuration revealed an issue in the checks performed when accessing the stub cache. We would assume that the `Code::Flags` bitfield only contains the `Kind` and `ExtraICState` fields, when there is also a `HasUnwindingInfo` field which can now be set for stubs. BUG= Review-Url: https://codereview.chromium.org/2887783002 Cr-Commit-Position: refs/heads/master@{#45477}
-
Andreas Haas authored
The validation of utf8 strings in WebAssembly modules used the character kBadChar = 0xFFFD to indicate a validation error. However, this character can appear in a valid utf8 string. This CL fixes this problem by duplicating some of the code in {Utf8::CalculateValue} and inlining it directly into Utf8::Validate. Note that Utf8::Validate is used only for WebAssembly. Tests for this change are in the WebAssembly spec tests, which I will update in a separate CL. R=vogelheim@chromium.org Change-Id: I8697b9299f3e98a8eafdf193bff8bdff90efd7dc Reviewed-on: https://chromium-review.googlesource.com/509534Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45476}
-