- 31 Jan, 2017 13 commits
-
-
mstarzinger authored
These counters were used during the initial implementation to gather statistics about comparative effectiveness of the two escape analysis approaches in practice. The counters are not thread-safe and cannot be used for the analysis any longer as it is now running off main thread. We deprecate the counters in question in favor of maintaining deferred statistics until the need for such statistics arises again. R=bmeurer@chromium.org BUG=chromium:685942 Review-Url: https://codereview.chromium.org/2667453003 Cr-Commit-Position: refs/heads/master@{#42808}
-
clemensh authored
This will be used for perf tests: https://chromereviews.googleplex.com/565327014/ R=titzer@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2663713003 Cr-Commit-Position: refs/heads/master@{#42807}
-
bmeurer authored
We cannot eliminate unused CheckFloat64Hole nodes, since loading from a holey array can have side-effects, i.e. triggering getters in the prototype chain. R=mvstanton@chromium.org BUG=chromium:686737 Review-Url: https://codereview.chromium.org/2665123002 Cr-Commit-Position: refs/heads/master@{#42806}
-
bmeurer authored
This is essentially a port of http://crrev.com/2403003002 to TurboFan, adding support for fast access to JSGlobalObject properties through the current native contexts' JSGlobalProxy. It's a slightly bigger change, since JSNativeContextSpecialization and JSGlobalObjectSpecialization needs merging for this to work, as due to different type feedback layout we cannot just turn a JSLoadNamed into JSLoadGlobal operator (and same for JSStoreNamed vs. JSStoreGlobal). This part of the change is mostly mechanical. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng R=ishell@chromium.org, jochen@chromium.org BUG=chromium:634276,v8:5267 Review-Url: https://codereview.chromium.org/2664853002 Cr-Commit-Position: refs/heads/master@{#42805}
-
jkummerow authored
Review-Url: https://codereview.chromium.org/2663713002 Cr-Commit-Position: refs/heads/master@{#42804}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/3dada45..02f71fd Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/c3f2575..986b4e8 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/0b3a445..960cc3e TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2661143002 Cr-Commit-Position: refs/heads/master@{#42803}
-
eholk authored
Previously this information was encoded in a FixedArray dangling off the Code object. This extra field seems to be responsible for increased memory usage, as seen in the linked bugs. In this change, we instead encode this in the RelocInfo and remove the field from the Code object. BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=678583 BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=671180 BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=670733 Review-Url: https://codereview.chromium.org/2651833003 Cr-Commit-Position: refs/heads/master@{#42802}
-
gdeepti authored
R=bradnelson@chromium.org, ahaas@chromium.org BUG=5553 Review-Url: https://codereview.chromium.org/2662153002 Cr-Commit-Position: refs/heads/master@{#42801}
-
jbroman authored
Dealing with this case requires a wire format change. It is possible that an element can be absent even in an array where the dense format was chosen (because the array initially had no holes), if the elements are modified while they are being serialized. In this case, a new tag for the "hole" is emitted. The logic to treat undefined in dense arrays as an absent property is restricted to versions of the wire format that this tag did not exist. BUG=chromium:686159,chromium:665820 Review-Url: https://codereview.chromium.org/2660093002 Cr-Original-Commit-Position: refs/heads/master@{#42784} Committed: https://chromium.googlesource.com/v8/v8/+/dc85f4c8338c1c824af4f7ee3274dc9f95d14e49 Review-Url: https://codereview.chromium.org/2660093002 Cr-Commit-Position: refs/heads/master@{#42800}
-
bbudge authored
- Uses macros for splat, extract lane, replace lane, unary ops and binary ops. - Renames ARM SIMD instruction codes to match machine operator names. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2652893013 Cr-Commit-Position: refs/heads/master@{#42799}
-
gsathya authored
This groups together all the promise related runtime functions. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2665983002 Cr-Commit-Position: refs/heads/master@{#42798}
-
jkummerow authored
The spec for String.split() requires loading "separator[@@split]". The KeyedLoadIC for this goes generic right away, but still requires a runtime call. To avoid that, reshuffle checks in the generic stub and do the primitive-string -> String-function translation inline. Review-Url: https://codereview.chromium.org/2654893003 Cr-Commit-Position: refs/heads/master@{#42797}
-
kozyatinskiy authored
Test just checks that all basic features are working correctly with modules. BUG=v8:1569 R=dgozman@chromium.org,alph@chromium.org,adamk@chromium.org Review-Url: https://codereview.chromium.org/2663743002 Cr-Commit-Position: refs/heads/master@{#42796}
-
- 30 Jan, 2017 27 commits
-
-
gdeepti authored
Issues with instance wrapper allocation and JS Api errata have been fixed over the last few weeks, test in the bug no longer fails - enabling tests for imported memory. BUG=5683 R=bradnelson@chromium.org, ahaas@chromium.org Review-Url: https://codereview.chromium.org/2666763002 Cr-Commit-Position: refs/heads/master@{#42795}
-
vogelheim authored
The existing unit test explicitly checked for this case, but was - under the right circumstances - defeated by the optimization to not re-run the whole position search if we were close enough. BUG=chromium:685618 Review-Url: https://codereview.chromium.org/2663883002 Cr-Commit-Position: refs/heads/master@{#42794}
-
bjaideep authored
Port ca8d3ba7 Original Commit Message: 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=ahaas@chromium.org, titzer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2666433002 Cr-Commit-Position: refs/heads/master@{#42793}
-
Aaron Gable authored
BUG=685318 Change-Id: I6654410beaca18f5d8e0791ed18d0daa46edcae0 Reviewed-on: https://chromium-review.googlesource.com/434177Reviewed-by: Aaron Gable <agable@chromium.org> Cr-Commit-Position: refs/heads/master@{#42792}
-
jyan authored
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2662963002 Cr-Commit-Position: refs/heads/master@{#42791}
-
marja authored
The bug used to show up when - we were streaming a script starting with 0xef 0xbb 0xbf - we aborted preparsing a function (and reset to a bookmark) BUG=chromium:685618 Review-Url: https://codereview.chromium.org/2663773002 Cr-Commit-Position: refs/heads/master@{#42790}
-
machenbach authored
BUG=chromium:685318 TBR=tandrii@chromium.org Review-Url: https://codereview.chromium.org/2666563002 Cr-Commit-Position: refs/heads/master@{#42789}
-
machenbach authored
Revert of ValueSerializer: Distinguish between 'undefined' and an absent property. (patchset #2 id:20001 of https://codereview.chromium.org/2660093002/ ) Reason for revert: Seems to break layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/13146 https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > ValueSerializer: Distinguish between 'undefined' and an absent property. > > Dealing with this case requires a wire format change. It is possible that an > element can be absent even in an array where the dense format was chosen > (because the array initially had no holes), if the elements are modified while > they are being serialized. In this case, a new tag for the "hole" is emitted. > > The logic to treat undefined in dense arrays as an absent property is restricted > to versions of the wire format that this tag did not exist. > > BUG=chromium:686159,chromium:665820 > > Review-Url: https://codereview.chromium.org/2660093002 > Cr-Commit-Position: refs/heads/master@{#42784} > Committed: https://chromium.googlesource.com/v8/v8/+/dc85f4c8338c1c824af4f7ee3274dc9f95d14e49 TBR=jkummerow@chromium.org,jbroman@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:686159,chromium:665820 Review-Url: https://codereview.chromium.org/2667553003 Cr-Commit-Position: refs/heads/master@{#42788}
-
jochen authored
R=mtrofin@chromium.org,verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2662883003 Cr-Commit-Position: refs/heads/master@{#42787}
-
bjaideep authored
On ia32/x64 when casting a sNan to double, the signalling bit is flipped to qNan. R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2660873003 Cr-Commit-Position: refs/heads/master@{#42786}
-
jkummerow authored
Performing lookups on the prototype chain in the stub avoids a bunch of slow-path runtime calls. For now, only receivers with dictionary-mode properties do this; fast-mode receivers will follow if it's beneficial. (previously landed as r42751 / 82e10f5f) Review-Url: https://codereview.chromium.org/2652213003 Cr-Commit-Position: refs/heads/master@{#42785}
-
jbroman authored
Dealing with this case requires a wire format change. It is possible that an element can be absent even in an array where the dense format was chosen (because the array initially had no holes), if the elements are modified while they are being serialized. In this case, a new tag for the "hole" is emitted. The logic to treat undefined in dense arrays as an absent property is restricted to versions of the wire format that this tag did not exist. BUG=chromium:686159,chromium:665820 Review-Url: https://codereview.chromium.org/2660093002 Cr-Commit-Position: refs/heads/master@{#42784}
-
jkummerow authored
BUG=chromium:685504 Review-Url: https://codereview.chromium.org/2660823002 Cr-Commit-Position: refs/heads/master@{#42783}
-
jkummerow authored
BUG=chromium:685965 Review-Url: https://codereview.chromium.org/2660123002 Cr-Commit-Position: refs/heads/master@{#42782}
-
gdeepti authored
When WebAssembly.Table initial size is greater than the declared initial size, table size references should be updated on instantiate for functions to be called at indices greater than the declared initial size. R=bradnelson@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2661773002 Cr-Commit-Position: refs/heads/master@{#42781}
-
kozyatinskiy authored
Without this CL we have only limit for amount of console messages and if user are dumping a huge messages we pretty soon run out of memory. So let's introduce limit for memory consumption it would help chromium and Node.js as well. BUG=chromium:671489 R=dgozman@chomium.org,alph@chromium.org, hpayer@chromium.org, ulan@chromium.org Review-Url: https://codereview.chromium.org/2653293003 Cr-Commit-Position: refs/heads/master@{#42780}
-
mvstanton authored
Compiles simply take too long, and such functions are liable to deopt quickly. BUG=chromium:686153 Review-Url: https://codereview.chromium.org/2667573002 Cr-Commit-Position: refs/heads/master@{#42779}
-
bjaideep authored
Port 93f05b64 Original Commit Message: They have the same lifetime. It's a match! Both structures are native context dependent and dealt with (creation, clearing, gathering feedback) at the same time. By treating the spaces used for literal boilerplates as feedback vector slots, we no longer have to keep track of the materialized literal count elsewhere. A follow-on CL removes even more parser infrastructure related to this count. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:5456 LOG=N Review-Url: https://codereview.chromium.org/2659413002 Cr-Commit-Position: refs/heads/master@{#42778}
-
jochen authored
BUG=v8:5904,chromium:639217 R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2660103002 Cr-Commit-Position: refs/heads/master@{#42777}
-
petermarshall authored
The graphs don't show any performance bump for https://codereview.chromium.org/2659623002, which I do see a much better result for locally. I suspect the function isn't being optimized in turbofan when the benchmarks run. Maybe this warmup flag will trigger that. BUG=v8:5895 Review-Url: https://codereview.chromium.org/2664783002 Cr-Commit-Position: refs/heads/master@{#42776}
-
bmeurer authored
We can constant-fold ReferenceEqual(a,b) to false, if the intersection of the types of a and b is empty. This also repairs a regression in the RestParameter performance test. R=petermarshall@chromium.org BUG=chromium:686668 Review-Url: https://codereview.chromium.org/2666543002 Cr-Commit-Position: refs/heads/master@{#42775}
-
danno authored
Review-Url: https://codereview.chromium.org/2657293002 Cr-Commit-Position: refs/heads/master@{#42774}
-
danno authored
Review-Url: https://codereview.chromium.org/2655023009 Cr-Commit-Position: refs/heads/master@{#42773}
-
machenbach authored
BUG=chromium:681236 NOTRY=true TBR=bradnelson@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2662823002 Cr-Commit-Position: refs/heads/master@{#42772}
-
mvstanton authored
They have the same lifetime. It's a match! Both structures are native context dependent and dealt with (creation, clearing, gathering feedback) at the same time. By treating the spaces used for literal boilerplates as feedback vector slots, we no longer have to keep track of the materialized literal count elsewhere. A follow-on CL removes even more parser infrastructure related to this count. BUG=v8:5456 Review-Url: https://codereview.chromium.org/2655853010 Cr-Commit-Position: refs/heads/master@{#42771}
-
jarin authored
Review-Url: https://codereview.chromium.org/2626013002 Cr-Original-Commit-Position: refs/heads/master@{#42229} Committed: https://chromium.googlesource.com/v8/v8/+/30176976e857d4eb84a93fface84849c44bab793 Review-Url: https://codereview.chromium.org/2626013002 Cr-Commit-Position: refs/heads/master@{#42770}
-
tebbi authored
R=bmeurer@chromium.org BUG=chromium:682570 Review-Url: https://codereview.chromium.org/2664683003 Cr-Commit-Position: refs/heads/master@{#42769}
-