- 24 Nov, 2016 40 commits
-
-
clemensh authored
Revert of [base] Define CHECK comparison for signed vs. unsigned (patchset #5 id:80001 of https://codereview.chromium.org/2526783002/ ) Reason for revert: Need to revert previous CL because of Android compile error, and this one depends in it. Original issue's description: > [base] Define CHECK comparison for signed vs. unsigned > > The current CHECK/DCHECK implementation fails statically if a signed > value is compared against an unsigned value. The common solution is to > cast on each caller, which is tedious and error-prone (might hide bugs). > This CL implements signed vs. unsigned comparisons by executing up to > two comparisons. For example, if i is int32_t and u is uint_32_t, a > DCHECK_LE(i, u) would create the check > i <= 0 || static_cast<uint32_t>(i) <= u. > For checks against constants, at least one of the checks can be removed > by compiler optimizations. > > The tradeoff we have to make is to sometimes silently execute an > additional comparison. And we increase code complexity of course, even > though the usage is just as easy (or even easier) as before. > > The compile time impact seems to be minimal: > I ran 3 full compilations for Optdebug on my local machine, one time on > the current ToT, one time with this CL plus http://crrev.com/2524093002. > Before: 143.72 +- 1.21 seconds > Now: 144.18 +- 0.67 seconds > > In order to check that the new comparisons are working, I refactored > some DCHECKs in wasm to use the new magic. > > R=bmeurer@chromium.org, titzer@chromium.org > > Committed: https://crrev.com/5925074a9dab5a8577766545b91b62f2c531d3dc > Cr-Commit-Position: refs/heads/master@{#41275} TBR=ishell@chromium.org,titzer@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/2531533003 Cr-Commit-Position: refs/heads/master@{#41277}
-
rmcilroy authored
This code is no longer used by full-codegen since all functions which use with statments, call eval or have lookup variable access now go through Ignition first. BUG=v8:5657 Review-Url: https://codereview.chromium.org/2514393002 Cr-Commit-Position: refs/heads/master@{#41276}
-
clemensh authored
The current CHECK/DCHECK implementation fails statically if a signed value is compared against an unsigned value. The common solution is to cast on each caller, which is tedious and error-prone (might hide bugs). This CL implements signed vs. unsigned comparisons by executing up to two comparisons. For example, if i is int32_t and u is uint_32_t, a DCHECK_LE(i, u) would create the check i <= 0 || static_cast<uint32_t>(i) <= u. For checks against constants, at least one of the checks can be removed by compiler optimizations. The tradeoff we have to make is to sometimes silently execute an additional comparison. And we increase code complexity of course, even though the usage is just as easy (or even easier) as before. The compile time impact seems to be minimal: I ran 3 full compilations for Optdebug on my local machine, one time on the current ToT, one time with this CL plus http://crrev.com/2524093002. Before: 143.72 +- 1.21 seconds Now: 144.18 +- 0.67 seconds In order to check that the new comparisons are working, I refactored some DCHECKs in wasm to use the new magic. R=bmeurer@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2526783002 Cr-Commit-Position: refs/heads/master@{#41275}
-
rmcilroy authored
If code is flushed on a SFI, we can still use the bytecode if it was compiled, since this never gets flushed. This fixes a DCHECK where we were trying to compile the bytecode multiple times after the baseline code was flushed. BUG=chromium:668133 Review-Url: https://codereview.chromium.org/2526243002 Cr-Commit-Position: refs/heads/master@{#41274}
-
clemensh authored
This not only potentially improves performance, but also avoids weird linker errors, like the one below, where I used Smi::kMinValue in a DCHECK_EQ. > [421/649] LINK ./mksnapshot > FAILED: mksnapshot > src/base/logging.h|178| error: undefined reference to 'v8::internal::Smi::kMinValue' R=bmeurer@chromium.org, ishell@chromium.org Review-Url: https://codereview.chromium.org/2524093002 Cr-Commit-Position: refs/heads/master@{#41273}
-
jkummerow authored
For dictionary-mode receivers, the KeyedStoreGeneric stub can store properties directly in most cases. Doing so avoids the need to have an entry in the stub cache for every map/property combination. Original review: https://codereview.chromium.org/2504403005/ Review-Url: https://codereview.chromium.org/2528883003 Cr-Commit-Position: refs/heads/master@{#41272}
-
verwaest authored
BUG=chromium:417697 Review-Url: https://codereview.chromium.org/2522223002 Cr-Commit-Position: refs/heads/master@{#41271}
-
jing.bao authored
BUG= Review-Url: https://codereview.chromium.org/2523263003 Cr-Commit-Position: refs/heads/master@{#41270}
-
bjaideep authored
The conversion instr was being called twice and the src register was not restored after the shift. R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2527873003 Cr-Commit-Position: refs/heads/master@{#41269}
-
cbruni authored
Make apply calls with double array arguments such as Math.min.apply(Math, [1.1, 2.2]) 1.6x faster. Drive-by-fix: pass in the isolate to ElementsAccessor::GetImpl. BUG=v8:4826 Review-Url: https://codereview.chromium.org/2521043005 Cr-Commit-Position: refs/heads/master@{#41268}
-
vogelheim authored
R=verwaest@chromium.org BUG=v8:5643 Review-Url: https://codereview.chromium.org/2524263003 Cr-Commit-Position: refs/heads/master@{#41267}
-
vogelheim authored
BUG=chromium:662388 Review-Url: https://codereview.chromium.org/2495533003 Cr-Commit-Position: refs/heads/master@{#41266}
-
machenbach authored
Revert of [heap] Use store buffer for writes coming from mutator. (patchset #6 id:100001 of https://codereview.chromium.org/2528563003/ ) Reason for revert: tsan problems: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/12860 Original issue's description: > Store buffer is used for writes that are coming from the mutator. Writes coming from the GC are directly added to the remembered set. > > BUG=chromium:648568 > > Committed: https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741 > Cr-Commit-Position: refs/heads/master@{#41263} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2528943002 Cr-Commit-Position: refs/heads/master@{#41265}
-
mstarzinger authored
This makes sure call-site rendering for certain {TypeError} messages is based on the correct underlying {JSFunction}, even when inlined frames are present. Only the {FrameSummary} knows the exact function. R=verwaest@chromium.org TEST=message/regress/regress-crbug-661579 BUG=chromium:661579 Review-Url: https://codereview.chromium.org/2521103005 Cr-Commit-Position: refs/heads/master@{#41264}
-
hpayer authored
Store buffer is used for writes that are coming from the mutator. Writes coming from the GC are directly added to the remembered set. BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2528563003 Cr-Commit-Position: refs/heads/master@{#41263}
-
neis authored
Because they sometimes are. R=rossberg@chromium.org BUG=v8:5648 Review-Url: https://codereview.chromium.org/2524333002 Cr-Commit-Position: refs/heads/master@{#41262}
-
machenbach authored
Revert of [test] Add performance test for closures. (patchset #1 id:1 of https://codereview.chromium.org/2525053002/ ) Reason for revert: Fails on perf. Original issue's description: > [test] Add performance test for closures. > > Short living closures are very common in Node.js. This benchmark tracks progress > as we move the optimizations that are currently only behind > --mark_shared_functions_for_tier_up to the default settings. > > BUG=v8:5512 > > Committed: https://crrev.com/f277da2a00cfd27d44a33a70213a65bd82d0bc95 > Cr-Commit-Position: refs/heads/master@{#41246} TBR=bmeurer@chromium.org,leszeks@chromium.org,franzih@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5512 Review-Url: https://codereview.chromium.org/2526163003 Cr-Commit-Position: refs/heads/master@{#41261}
-
jarin authored
This has two parts: - in redundancy elimination, if we see addition with left hand side that was bounds-checked, we reconnect the lhs to the bounds check if it has better type. - in representation inference, eliminate overflow checks if the input types guarantee no overflow. Review-Url: https://codereview.chromium.org/2527083002 Cr-Commit-Position: refs/heads/master@{#41260}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5510 Review-Url: https://codereview.chromium.org/2524323002 Cr-Commit-Position: refs/heads/master@{#41259}
-
bmeurer authored
BUG=v8:4586,v8:5633 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2512733003 Cr-Commit-Position: refs/heads/master@{#41258}
-
neis authored
In the ParseInfo constructor that takes a SharedFunctionInfo, we must set the module flag when the function represents a module. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2525013002 Cr-Commit-Position: refs/heads/master@{#41257}
-
yangguo authored
In most cases we can use the debug event listener as alternative. Multithreaded tests are obsolete. R=jgruber@chromium.org BUG=v8:5510 Review-Url: https://codereview.chromium.org/2529883002 Cr-Commit-Position: refs/heads/master@{#41256}
-
yangguo authored
The old algorithm produces unnecessary decimal digits. The new one converts the significand of the input double into an uint64_t to be just as precise as necessary. R=tebbi@chromium.org BUG=chromium:658712,chromium:666376 Review-Url: https://codereview.chromium.org/2520363002 Cr-Commit-Position: refs/heads/master@{#41255}
-
cbruni authored
RuntimeTimerScopes always subtract their own time from the parent timer's counter to properly account for the own time. Once a scope is destructed it adds it own timer to the current active counter. However, if the current counter is changed with CorrectCurrentCounterId we will attribute all the subtimers to the previous counter, and add the own time to the new counter. This way it is possible to end up with negative times in certain counters but the overall would still be correct. BUG= Review-Url: https://codereview.chromium.org/2511093002 Cr-Commit-Position: refs/heads/master@{#41254}
-
neis authored
The catch scopes were created with the wrong parent scope. R=littledan@chromium.org BUG=v8:5648 Committed: https://crrev.com/f385268d11d6da9508e481202b39f75f4b56afdd Review-Url: https://codereview.chromium.org/2520883002 Cr-Original-Commit-Position: refs/heads/master@{#41222} Cr-Commit-Position: refs/heads/master@{#41253}
-
hablich authored
Revert of [cleanup] Refactor builtins-number.cc (patchset #2 id:40001 of https://codereview.chromium.org/2517833005/ ) Reason for revert: Secondary dependency to revert https://codereview.chromium.org/2522393002/ Original issue's description: > [cleanup] Refactor builtins-number.cc > > Introducing a TF_BUILTIN macro that wraps CodeStubAssembler usage > into a convenient interface (using a subclass under the hood). > > Committed: https://crrev.com/cbf59c4c704e83a43b52c5ba6825df576fdaece8 > Cr-Commit-Position: refs/heads/master@{#41236} TBR=ishell@chromium.org,jkummerow@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/2529873002 Cr-Commit-Position: refs/heads/master@{#41252}
-
hablich authored
Revert of [stubs] KeyedStoreGeneric: inline dictionary property stores (patchset #2 id:10002 of https://codereview.chromium.org/2524943002/ ) Reason for revert: Blocks current roll: https://codereview.chromium.org/2526753003/ Bisect results: https://codereview.chromium.org/2531483002 Original issue's description: > Reland of [stubs] KeyedStoreGeneric: inline dictionary property stores > > For dictionary-mode receivers, the KeyedStoreGeneric stub can store > properties directly in most cases. Doing so avoids the need to have > an entry in the stub cache for every map/property combination. > > Original review: https://codereview.chromium.org/2504403005/ > > Committed: https://crrev.com/7a963deb85a0cc04623947a759534c48e2871901 > Cr-Commit-Position: refs/heads/master@{#41218} TBR=ishell@chromium.org,machenbach@chromium.org,jkummerow@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/2522393002 Cr-Commit-Position: refs/heads/master@{#41251}
-
hablich authored
Revert of [stubs] Fix AccessorInfo mixup in KeyedStoreGeneric (patchset #1 id:1 of https://codereview.chromium.org/2525913002/ ) Reason for revert: Needed to revert 2661b3e8 Original issue's description: > [stubs] Fix AccessorInfo mixup in KeyedStoreGeneric > > BUG=chromium:668101 > > Committed: https://crrev.com/2661b3e8a5447773a23a219ba085454c459b654b > Cr-Commit-Position: refs/heads/master@{#41223} TBR=ishell@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:668101 Review-Url: https://codereview.chromium.org/2525253002 Cr-Commit-Position: refs/heads/master@{#41250}
-
hablich authored
Revert of [cleanup] CodeStubAssembler: s/compiler::Node/Node/ (patchset #1 id:1 of https://codereview.chromium.org/2526803002/ ) Reason for revert: Needed to revert https://codereview.chromium.org/2522393002/ Original issue's description: > Reland of [cleanup] CodeStubAssembler: s/compiler::Node/Node/ > > Reducing visual clutter. > > No changes since previous attempt; this was only reverted because it blocked another revert. > Original review: https://codereview.chromium.org/2519093002/ > > TBR=ishell@chromium.org > > Committed: https://crrev.com/c28bee0fdd297d2ef4fc88b5fe289cc9dbd664f6 > Cr-Commit-Position: refs/heads/master@{#41235} TBR=ishell@chromium.org,jkummerow@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/2529863002 Cr-Commit-Position: refs/heads/master@{#41249}
-
machenbach authored
Presubmit on upload and on trybot will use the affected files as determined by the presubmit input_api. The continuously run presubmit will use the old method and search all files. BUG=v8:5603 NOTRY=true Review-Url: https://codereview.chromium.org/2523993003 Cr-Commit-Position: refs/heads/master@{#41248}
-
kozyatinskiy authored
We can't use "this" after calling agent code since agent code can destroy dispatcher. BUG=chromium:668358 TBR=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2526183002 Cr-Commit-Position: refs/heads/master@{#41247}
-
franzih authored
Short living closures are very common in Node.js. This benchmark tracks progress as we move the optimizations that are currently only behind --mark_shared_functions_for_tier_up to the default settings. BUG=v8:5512 Review-Url: https://codereview.chromium.org/2525053002 Cr-Commit-Position: refs/heads/master@{#41246}
-
bmeurer authored
The deprecated pipeline is used for asm.js only, where we forcibly disable inlining anyways (for performance reasons), so inlining via the AstGraphBuilder is essentially dead code by now, thus there's no point in trying to keep that around in the code base. Also nuke the test-run-inlining.cc file, which would require some heavy surgery (for probably little benefit), and move the useful tests for mjsunit tests instead. BUG=v8:2206,v8:5657 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2527053002 Cr-Commit-Position: refs/heads/master@{#41245}
-
jgruber authored
This exposes scopes for suspended generator objects by adding a [[Scopes]] internal property to generator objects, similar to how scopes for functions currently not on the stack are handled. BUG=chromium:667286 Review-Url: https://codereview.chromium.org/2516973003 Cr-Commit-Position: refs/heads/master@{#41244}
-
machenbach authored
Revert of Use parenthesis in descriptions for array/map/set lengths/sizes (patchset #3 id:40001 of https://codereview.chromium.org/2521853003/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/11595 https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > Use parenthesis in descriptions for array/map/set lengths/sizes > > Descriptions for (typed)arrays will use parenthesis instead of square brackets > "Array(10)" instead of "Array[10]". This CL also adds size hints to descriptions > of maps and sets. > > Related CL for DevTools: https://codereview.chromium.org/2524913002/ > > BUG=405845 > > Committed: https://crrev.com/92c77a57390e6a9ef726535b255a24359751992d > Cr-Commit-Position: refs/heads/master@{#41237} TBR=dgozman@chromium.org,kozyatinskiy@chromium.org,luoe@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=405845 Review-Url: https://codereview.chromium.org/2530803002 Cr-Commit-Position: refs/heads/master@{#41243}
-
bmeurer authored
Recognize Date.now() calls in the Typer and assign the proper integer type to them. See Node issue https://github.com/nodejs/node/issues/9729 for more information. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2528853003 Cr-Commit-Position: refs/heads/master@{#41242}
-
bmeurer authored
Also lower JSToBoolean(x) where x is either some detectable receiver or null, or any kind of receiver, null or undefined. Also fix a couple of minor issues with the JSToBoolean lowering and tests. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2530773002 Cr-Commit-Position: refs/heads/master@{#41241}
-
bmeurer authored
Recognize a couple of builtins on the RegExp.prototype in the Typer and assign useful types to them, so we can optimize various checks on their results. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2531463002 Cr-Commit-Position: refs/heads/master@{#41240}
-
tebbi authored
This fixes a bug where the re-creation of phi nodes leads to divergence. The fix makes sure that once a node created a phi node, it sticks to it and does not forget about it, even if the inputs suddenly agree again. The bug appeared on the trybots in https://codereview.chromium.org/2512733003/. Also I added a line to mark effect phi nodes on the queue. This is unrelated, but seems to be an obvious ommission. R=bmeurer@chromium.org BUG=v8:5633 Review-Url: https://codereview.chromium.org/2522253002 Cr-Commit-Position: refs/heads/master@{#41239}
-
jyan authored
BUG= R=joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com Review-Url: https://codereview.chromium.org/2522283003 Cr-Commit-Position: refs/heads/master@{#41238}
-