- 20 Sep, 2016 24 commits
-
-
jochen authored
R=verwaest@chromium.org,marja@chromium.org Review-Url: https://codereview.chromium.org/2351823005 Cr-Commit-Position: refs/heads/master@{#39546}
-
leszeks authored
Removes some unnecessary probing in TemplateHashMapImpl, in particular probing a second time in LookupOrInsert after the first probe came up with an empty value. Review-Url: https://codereview.chromium.org/2349163002 Cr-Commit-Position: refs/heads/master@{#39545}
-
ulan authored
BUG= Review-Url: https://codereview.chromium.org/2347073003 Cr-Commit-Position: refs/heads/master@{#39544}
-
ishell authored
... because the latter automatically respects the desired calling convention. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2350423002 Cr-Commit-Position: refs/heads/master@{#39543}
-
rmcilroy authored
BUG= Review-Url: https://codereview.chromium.org/2357563002 Cr-Commit-Position: refs/heads/master@{#39542}
-
rmcilroy authored
BUG=chromium:642111 Review-Url: https://codereview.chromium.org/2358523003 Cr-Commit-Position: refs/heads/master@{#39541}
-
bmeurer authored
Extract String feedback on Add operation and utilize to lower ConsString creation in JSTypedLowering when we know that a String addition will definitely result in the creation of a ConsString. Note that Crankshaft has to guard the potential length overflow of the resulting string with an eager deoptimization exit, while we can safely throw an exception in that case. Also note that the bytecode pipeline does not currently provide the String feedback for the addition, which has to be added. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2354853002 Cr-Commit-Position: refs/heads/master@{#39540}
-
bmeurer authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2357573002 Cr-Commit-Position: refs/heads/master@{#39539}
-
leszeks authored
Moves the hashmap's allocator from being a parameter in the various hashmap functions, to being a field in the hashmap itself. This 1. Protects against incorrectly passed allocators, and 2. Cleans up the API so that e.g. callers don't have to store their allocator This is part of a wider set of changes discussed in: https://groups.google.com/forum/#!topic/v8-dev/QLsC0XPYLeM Review-Url: https://codereview.chromium.org/2345233003 Cr-Commit-Position: refs/heads/master@{#39538}
-
leszeks authored
Adds a fast path for loading DYNAMIC_GLOBAL variables, which are lookup variables that can be globally loaded, without calling the runtime, as long as there was no context extension by a sloppy eval along their context chain. BUG=v8:5263 Review-Url: https://codereview.chromium.org/2347143002 Cr-Commit-Position: refs/heads/master@{#39537}
-
verwaest authored
Internalize the ast-value-factory before tracing in trace-parse. Otherwise the string-handle isn't available yet BUG= Review-Url: https://codereview.chromium.org/2348373004 Cr-Commit-Position: refs/heads/master@{#39536}
-
ishell authored
... because the latter automatically respects the desired calling convention. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2358533002 Cr-Commit-Position: refs/heads/master@{#39535}
-
bmeurer authored
When an allocation for a parent object is pretenured, also propagate that to all allocations for objects that are (potentially) stored into the parent object. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2348293003 Cr-Commit-Position: refs/heads/master@{#39534}
-
vogelheim authored
BUG=v8:4947 Review-Url: https://codereview.chromium.org/2347883002 Cr-Commit-Position: refs/heads/master@{#39533}
-
marja authored
This would've caught the "preparser tracking only unresolved variables but no declarations is not enough" bug. BUG= Review-Url: https://codereview.chromium.org/2350683002 Cr-Commit-Position: refs/heads/master@{#39532}
-
rmcilroy authored
Avoid internalizing on-the-fly now that scope analysis and natives syntax runtime calls no longer require internalized AST values. This should be more efficient by avoiding extra branches on every AST value creation. BUG=v8:5215, chromium:634953 Review-Url: https://codereview.chromium.org/2328593002 Cr-Commit-Position: refs/heads/master@{#39531}
-
leszeks authored
Adds template parameters for the TemplateHashMapImpl for the key and value type, to allow them to be something other than pointers. To keep the impact of this patch low, uses of TemplateHashMapImpl set these types to void* to emulate the previous behaviour. This is part of a wider set of changes discussed in: https://groups.google.com/forum/#!topic/v8-dev/QLsC0XPYLeM Review-Url: https://codereview.chromium.org/2343123002 Cr-Commit-Position: refs/heads/master@{#39530}
-
jyan authored
R=vogelheim@chromium.org BUG= Review-Url: https://codereview.chromium.org/2354683003 Cr-Commit-Position: refs/heads/master@{#39529}
-
jgruber authored
R=littledan@chromium.org BUG=v8:5339 Review-Url: https://codereview.chromium.org/2332333002 Cr-Commit-Position: refs/heads/master@{#39528}
-
jochen authored
Also remove obsolete oom_dump sources. R=machenbach@chromium.org BUG= Review-Url: https://codereview.chromium.org/2343423002 Cr-Commit-Position: refs/heads/master@{#39527}
-
machenbach authored
Revert of [d8] Fix the shared-library build (patchset #12 id:20002 of https://codereview.chromium.org/2342563002/ ) Reason for revert: Unblocking roll Original issue's description: > [d8] Fix the shared-library build > > This commit ensures that the d8 shared library build uses the same logic as > the standard static build by exporting relevant functions and classes. > > BUG=chromium:646337 > > Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65 > Cr-Commit-Position: refs/heads/master@{#39503} TBR=jochen@chromium.org,vogelheim@chromium.org,bmeurer@chromium.org,titzer@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:646337 Review-Url: https://codereview.chromium.org/2356703003 Cr-Commit-Position: refs/heads/master@{#39526}
-
bmeurer authored
Crankshaft just unconditionally deoptimizes the code when the length of a string addition result would overflow. In order to protect against deopt loops we insert a global protector cell. We will use the same mechanism for inlining certain string additions into TurboFan as well, and protecting against overflow (we will also extend this to deal with String.prototype.concat and friends once we get there). BUG=v8:5404 R=jarin@chromium.org,hpayer@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_msan_rel Committed: https://crrev.com/cb19257a926a55209a6d6858ce26d51a0447ba71 Review-Url: https://codereview.chromium.org/2348293002 Cr-Original-Commit-Position: refs/heads/master@{#39511} Cr-Commit-Position: refs/heads/master@{#39525}
-
v8-autoroll authored
Rolling v8/build to dfb08d9b315caad762d458ff3ed828e792913df3 Rolling v8/tools/clang to 6b75002bcce135ecacc1ff5a7fdb2f0647212198 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2354613004 Cr-Commit-Position: refs/heads/master@{#39524}
-
littledan authored
Revert of Async/await Promise dependency graph (patchset #30 id:550001 of https://codereview.chromium.org/2317383002/ ) Reason for revert: Need to break up test into smaller tests to avoid timeouts Original issue's description: > Async/await Promise dependency graph > > This patch knits together Promises returned by async/await such that when > one async function awaits the result of another one, catch prediction works > across the boundaries, whether the exception comes synchronously or > asynchronously. Edges are added in three places: > - When a locally uncaught await happens, if the value passed into await > is a Promise, from the awaited value to the Promise under construction > in the broader async function > - From a "throwaway" Promise, which may be found on the Promise debug > stack, to the Promise under construction in the async function that > surrounds it > - When a Promise is resolved with another Promise (e.g., when returning a > Promise from an async function) > > BUG=v8:5167 > > Committed: https://crrev.com/7265fdde7c76b9f875b40b0b139515936d491d64 > Cr-Commit-Position: refs/heads/master@{#39522} TBR=adamk@chromium.org,jgruber@chromium.org,kozyatinskiy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5167 Review-Url: https://codereview.chromium.org/2351953002 Cr-Commit-Position: refs/heads/master@{#39523}
-
- 19 Sep, 2016 16 commits
-
-
littledan authored
This patch knits together Promises returned by async/await such that when one async function awaits the result of another one, catch prediction works across the boundaries, whether the exception comes synchronously or asynchronously. Edges are added in three places: - When a locally uncaught await happens, if the value passed into await is a Promise, from the awaited value to the Promise under construction in the broader async function - From a "throwaway" Promise, which may be found on the Promise debug stack, to the Promise under construction in the async function that surrounds it - When a Promise is resolved with another Promise (e.g., when returning a Promise from an async function) BUG=v8:5167 Review-Url: https://codereview.chromium.org/2317383002 Cr-Commit-Position: refs/heads/master@{#39522}
-
bradnelson authored
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5406 LOG=N R=mstarzinger@chromium.org,machenbach@chromium.org Review-Url: https://codereview.chromium.org/2309833003 Cr-Commit-Position: refs/heads/master@{#39521}
-
littledan authored
Reland of Fix async/await memory leak (patchset #1 id:1 of https://codereview.chromium.org/2348403003/ ) This patch closes a memory leak in async/await where the desugaring was creating a situation analagous to that described in v8:5002. Intermediate Promises were being kept alive, so a long-running loop would cause linear memory usage on the heap. This patch returns undefined to the 'then' callback passed into PerformPromiseThen in order to avoid this hazard. Test expectations are fixed to remove expecting extraneous events which occurred on Promises that are now not given unnecessarily complex resolution paths before being thrown away. This patch is a reland; originally, tests which exercised the memory exhaustion were checked in. Although it's possible to find good parameters for running such tests locally, it is difficult to automate the tests between the rock of timeouts and the hard place of too-small heaps causing memory exhaustion in some modes even when there is no leak. BUG=v8:5390 Review-Url: https://codereview.chromium.org/2352933002 Cr-Commit-Position: refs/heads/master@{#39520}
-
neis authored
We must keep track of the exact order in which modules are requested. To do so, maintain a map from module specifiers to position while parsing (in ModuleDescriptor). Descriptor entries now refer to that position rather than the string. When generating the ModuleInfo, turn this map into an array of specifiers. We don't need the map anymore later on, so we do not reconstruct it when deserializing again. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2353633002 Cr-Commit-Position: refs/heads/master@{#39519}
-
machenbach authored
Revert of [crankshaft] Protect against deopt loops from string length overflows. (patchset #1 id:1 of https://codereview.chromium.org/2348293002/ ) Reason for revert: Mean https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/10910 Original issue's description: > [crankshaft] Protect against deopt loops from string length overflows. > > Crankshaft just unconditionally deoptimizes the code when the length of > a string addition result would overflow. In order to protect against > deopt loops we insert a global protector cell. > > We will use the same mechanism for inlining certain string additions > into TurboFan as well, and protecting against overflow (we will also > extend this to deal with String.prototype.concat and friends once we > get there). > > BUG=v8:5404 > R=jarin@chromium.org,hpayer@chromium.org > > Committed: https://crrev.com/cb19257a926a55209a6d6858ce26d51a0447ba71 > Cr-Commit-Position: refs/heads/master@{#39511} TBR=hpayer@chromium.org,jarin@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:5404 Review-Url: https://codereview.chromium.org/2357433002 Cr-Commit-Position: refs/heads/master@{#39518}
-
lkelvin authored
Port: 2ab3fcf4 Original commit message: To make better inlining decisions, it's good to have call counts for poly/mega-morphic cases. This CL makes it work for calls, and another will follow to better unify the code between constructor calls and normal calls (and thence, to record megamorphic call counts there as well). R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= Review-Url: https://codereview.chromium.org/2356483002 Cr-Commit-Position: refs/heads/master@{#39517}
-
machenbach authored
Revert of [cq] Temporarily make failing chromium trybot experimental (patchset #1 id:1 of https://codereview.chromium.org/2352573002/ ) Reason for revert: Real fix landed by now. Original issue's description: > [cq] Temporarily make failing chromium trybot experimental > > BUG=chromium:648153 > NOTRY=true > NOPRESUBMIT=true > TBR=emso@chromium.org > > Committed: https://crrev.com/bb6fa481b6e8e643cb86d66cfa5b8bb35d1dd320 > Cr-Commit-Position: refs/heads/master@{#39494} TBR=emso@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648153 Review-Url: https://codereview.chromium.org/2353713002 Cr-Commit-Position: refs/heads/master@{#39516}
-
bradnelson authored
Handle the case of asm.js modules that return a single function instead of a collection of them. R=mtrofin@chromium.org TEST=mjsunit/asm/asm-wasm BUG=v8:4203 BUG=v8:5356 Review-Url: https://codereview.chromium.org/2348383003 Cr-Commit-Position: refs/heads/master@{#39515}
-
verwaest authored
BUG=v8:5209 Review-Url: https://codereview.chromium.org/2349193002 Cr-Commit-Position: refs/heads/master@{#39514}
-
alph authored
Introduce TraceStateObserver interface along with add/remove methods to the platform. BUG=chromium:406277 Review-Url: https://codereview.chromium.org/2344893005 Cr-Commit-Position: refs/heads/master@{#39513}
-
littledan authored
Revert of Fix async/await memory leak (patchset #5 id:160001 of https://codereview.chromium.org/2348403002/ ) Reason for revert: Still causes issues on bot (sometimes!) Original issue's description: > Reland of Fix async/await memory leak (patchset #1 id:1 of https://codereview.chromium.org/2354473002/ ) > > Reason for revert: > Relanding with faster-running test > > Original issue's description: > > Revert of Fix async/await memory leak (patchset #5 id:80001 of https://codereview.chromium.org/2334323006/ ) > > > > Reason for revert: > > newly introduced test async-await-loop times out: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/10894/steps/Ignition%20-%20turbofan%20%28flakes%29/logs/async-await-loop > > > > Original issue's description: > > > Fix async/await memory leak > > > > > > This patch closes a memory leak in async/await where the desugaring > > > was creating a situation analagous to that described in v8:5002. > > > Intermediate Promises were being kept alive, so a long-running loop > > > would cause linear memory usage on the heap. This patch returns > > > undefined to the 'then' callback passed into PerformPromiseThen > > > in order to avoid this hazard. Test expectations are fixed to remove > > > expecting extraneous events which occurred on Promises that are > > > now not given unnecessarily complex resolution paths before being > > > thrown away. > > > > > > BUG=v8:5390 > > > > > > Committed: https://crrev.com/a0ba18e9634c5e2d439033ab61a77cff54f9af35 > > > Cr-Commit-Position: refs/heads/master@{#39479} > > > > TBR=adamk@chromium.org,caitp@igalia.com,littledan@chromium.org > > NOTRY=true > > BUG=v8:5390 > > > > Committed: https://crrev.com/196db1999da130019bbf8e3bd65977f840e8afaf > > Cr-Commit-Position: refs/heads/master@{#39493} > > TBR=adamk@chromium.org,caitp@igalia.com,hablich@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > BUG=v8:5390 > > Committed: https://crrev.com/e51482f01f26e0013e6377e85c4d2c41900e403c > Cr-Commit-Position: refs/heads/master@{#39508} TBR=adamk@chromium.org,caitp@igalia.com,hablich@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5390 Review-Url: https://codereview.chromium.org/2348403003 Cr-Commit-Position: refs/heads/master@{#39512}
-
bmeurer authored
Crankshaft just unconditionally deoptimizes the code when the length of a string addition result would overflow. In order to protect against deopt loops we insert a global protector cell. We will use the same mechanism for inlining certain string additions into TurboFan as well, and protecting against overflow (we will also extend this to deal with String.prototype.concat and friends once we get there). BUG=v8:5404 R=jarin@chromium.org,hpayer@chromium.org Review-Url: https://codereview.chromium.org/2348293002 Cr-Commit-Position: refs/heads/master@{#39511}
-
lpy authored
Previously we didn't implement TRACE_STR_COPY when we write trace events to file, which causes us to allocate a growing independent memory chunk for dumped runtime call stats table. Since we now have a fully functional TRACE_STR_COPY, this memory allocation can be avoided, this patch removes it. BUG=v8:5089 Committed: https://crrev.com/e1997bb7d780d12e3a89078e8dd652dcf1d90039 Review-Url: https://codereview.chromium.org/2342643004 Cr-Original-Commit-Position: refs/heads/master@{#39462} Cr-Commit-Position: refs/heads/master@{#39510}
-
mtrofin authored
This CL avoids relying on signed/unsigned implicit conversions when re-computing wasm mem sizes. BUG= Review-Url: https://codereview.chromium.org/2349053002 Cr-Commit-Position: refs/heads/master@{#39509}
-
littledan authored
Reland of Fix async/await memory leak (patchset #1 id:1 of https://codereview.chromium.org/2354473002/ ) Reason for revert: Relanding with faster-running test Original issue's description: > Revert of Fix async/await memory leak (patchset #5 id:80001 of https://codereview.chromium.org/2334323006/ ) > > Reason for revert: > newly introduced test async-await-loop times out: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/10894/steps/Ignition%20-%20turbofan%20%28flakes%29/logs/async-await-loop > > Original issue's description: > > Fix async/await memory leak > > > > This patch closes a memory leak in async/await where the desugaring > > was creating a situation analagous to that described in v8:5002. > > Intermediate Promises were being kept alive, so a long-running loop > > would cause linear memory usage on the heap. This patch returns > > undefined to the 'then' callback passed into PerformPromiseThen > > in order to avoid this hazard. Test expectations are fixed to remove > > expecting extraneous events which occurred on Promises that are > > now not given unnecessarily complex resolution paths before being > > thrown away. > > > > BUG=v8:5390 > > > > Committed: https://crrev.com/a0ba18e9634c5e2d439033ab61a77cff54f9af35 > > Cr-Commit-Position: refs/heads/master@{#39479} > > TBR=adamk@chromium.org,caitp@igalia.com,littledan@chromium.org > NOTRY=true > BUG=v8:5390 > > Committed: https://crrev.com/196db1999da130019bbf8e3bd65977f840e8afaf > Cr-Commit-Position: refs/heads/master@{#39493} TBR=adamk@chromium.org,caitp@igalia.com,hablich@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. BUG=v8:5390 Review-Url: https://codereview.chromium.org/2348403002 Cr-Commit-Position: refs/heads/master@{#39508}
-
vogelheim authored
This is in preparation for upcmoming scanner + bookmarking cleanups. Also, drive-by fix for setting a bookmark close to the end of the stream, when the look-ahead character (c0_) is kEndOfInput, which the bookmarking logic also used as kNoBookmark. R=marja@chomium.org BUG=v8:4947 Review-Url: https://codereview.chromium.org/2345053003 Cr-Commit-Position: refs/heads/master@{#39507}
-