- 06 Oct, 2017 1 commit
-
-
Benedikt Meurer authored
Make calls like new Array(n) new A(n) (where A is a subclass of Array) inlinable into TurboFan. We do this by speculatively checking that n is an unsigned integer that is not greater than JSArray::kInitialMaxFastElementArray, and then lowering the backing store allocation to a builtin call. The speculative optimization is either protected by the AllocationSite for the Array constructor invocation (if we have one), or by a newly introduced global protector cell that is used for Array constructor invocations that don't have an AllocationSite, i.e. the ones from Array#map, Array#filter, or from subclasses of Array. Next step will be to implement the backing store allocations inline in TurboFan, but that requires Loop support in the GraphAssembler, so it's done as a separate CL. This should further boost the performance. This boosts the ARES6 ML benchmark by up to 8% on the steady state, and also improves monomorphic Array#map calls by around 20-25% on the initial setup. Bug: v8:6399 Tbr: ulan@chromium.org Change-Id: I7c8bdecf7c814ce52db6ee3051c3206a4f7d4bb6 Reviewed-on: https://chromium-review.googlesource.com/704639 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#48348}
-
- 10 Aug, 2017 1 commit
-
-
Michael Starzinger authored
This is in preparation to the removal of the FullCodeGenerator, we no longer need the ability to stress the underlying implementation. R=rmcilroy@chromium.org BUG=v8:6409 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Iad3177d6de4a68b57c12a770b6e85ed7a9710254 Reviewed-on: https://chromium-review.googlesource.com/584747Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47276}
-
- 13 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Removes the --ignition flag which is now on by default. Adds a --stress-fullcodegen flag which enables running all functions supported by fullcodegen to be compiled by fullcodegen. This will enable moving parser internalization later when we are not stressing fullcodegen or compiling asm.js functions. BUG=v8:5203, v8:6409, v8:6589 Change-Id: I7fa68016d4e734755434ec0b4e749ef65ffa7f4e Reviewed-on: https://chromium-review.googlesource.com/565569 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46635}
-
- 10 Jul, 2017 1 commit
-
-
Benedikt Meurer authored
This improves the general Array constructor call performance (w/o usable AllocationSite feedback) in TurboFan by ~2x, i.e. for example invoking the Array constructor like this var a = Array.call(undefined, n); instead of var a = Array(n); such that the CallIC doesn't know that it's eventually calling the Array constructor. It also thus changes the single argument Array constructor to always return holey arrays. Previously the single argument case for the Array constructor was somehow trying to dynamically detect 0 and in that case returned a packed array instead of a holey one. That adds quite a lot of churn, and doesn't seem to be very useful, especially since this might lead to unnecessary feedback pollution later. R=mvstanton@chromium.org Bug: v8:2229, v8:5269, v8:6399 Change-Id: I3d7cb9bd975ec0e491e3cdbcf1230185cfd1e3de Reviewed-on: https://chromium-review.googlesource.com/565721Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46538}
-
- 03 Jul, 2017 1 commit
-
-
Mathias Bynens authored
Commit 26c00f4a improved the names of most FAST_* elements kinds in the enum. This patch updates the matching Has*Elements and Is*ElementsKind method names accordingly. - HasFastSmiElements => HasSmiElements - IsFastSmiElementsKind => IsSmiElementsKind - HasFastObjectElements => HasObjectElements - IsFastObjectElementsKind => IsObjectElementsKind - HasFastSmiOrObjectElements => HasSmiOrObjectElements - IsFastSmiOrObjectElementsKind => IsSmiOrObjectElementsKind - HasFastDoubleElements => HasDoubleElements - IsFastDoubleElementsKind => IsDoubleElementsKind - HasFastHoleyElements => HasHoleyElements - IsFastHoleyElementsKind => IsHoleyElementsKind Additionally, FastHoleyElementsUsage is renamed to HoleyElementsUsage. BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie8f3d01eb43e909cbc6c372d88c5fbc4dfc2ac04 Reviewed-on: https://chromium-review.googlesource.com/558356Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46376}
-
- 28 Apr, 2017 1 commit
-
-
Mythri authored
1. Replaces --crankshaft with --opt in tests. 2. Also fixes presubmit to check for --opt flag when assertOptimized is used. 3. Updates testrunner/local/variants.py and v8_foozie.py to use --opt flag. This would mean, nooptimize variant means there are no optimizations. Not even with %OptimizeFunctionOnNextCall. Bug:v8:6325 Change-Id: I638e743d0773a6729c6b9749e2ca1e2537f12ce6 Reviewed-on: https://chromium-review.googlesource.com/490206 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44985}
-
- 18 Apr, 2017 1 commit
-
-
bmeurer authored
BUG=v8:6262 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2821273002 Cr-Commit-Position: refs/heads/master@{#44688}
-
- 26 Jan, 2017 3 commits
-
-
ishell authored
This CL adds --crankshaft and --no-always-opt flags to the tests that use assertOptimized() and assertUnoptimized() respectively. This CL also adds presubmit checks that ensure that tests have the proper flags set. BUG=v8:5890 Review-Url: https://codereview.chromium.org/2653753007 Cr-Commit-Position: refs/heads/master@{#42709}
-
machenbach authored
Revert of [tests] Make assertOptimized()/assertUnoptimized() great again. (patchset #6 id:130042 of https://codereview.chromium.org/2654733004/ ) Reason for revert: Mac gc stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/11195 There's also this flake, but maybe unrelated: https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/15422 Original issue's description: > [tests] Make assertOptimized()/assertUnoptimized() great again. > > The mentioned asserts did not work properly with interpreted and turbofanned functions. > > To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value. > > This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(), > isOptimized(fun), etc. > > BUG=v8:5890 > > Review-Url: https://codereview.chromium.org/2654733004 > Cr-Commit-Position: refs/heads/master@{#42703} > Committed: https://chromium.googlesource.com/v8/v8/+/d1ddec785725a184fe6d01bd0813262e3ba24966 TBR=mstarzinger@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5890 Review-Url: https://codereview.chromium.org/2655223003 Cr-Commit-Position: refs/heads/master@{#42704}
-
ishell authored
The mentioned asserts did not work properly with interpreted and turbofanned functions. To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value. This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(), isOptimized(fun), etc. BUG=v8:5890 Review-Url: https://codereview.chromium.org/2654733004 Cr-Commit-Position: refs/heads/master@{#42703}
-
- 06 Jul, 2016 1 commit
-
-
mvstanton authored
And in so doing, enable a handful of excluded tests. BUG= Review-Url: https://codereview.chromium.org/2127713003 Cr-Commit-Position: refs/heads/master@{#37559}
-
- 15 Apr, 2015 1 commit
-
-
mvstanton authored
Calling new Array(JSObject::kInitialMaxFastElementArray) in optimized code makes a stub call that bails out due to the length. Currently, the bailout code a) doesn't have the allocation site, and b) wouldn't use it if it did because the length is perceived to be too high. This CL passes the allocation site to the stub call (rather than undefined), and alters the bailout code to utilize the feedback. BUG= Review URL: https://codereview.chromium.org/1086873003 Cr-Commit-Position: refs/heads/master@{#27857}
-
- 14 Apr, 2015 1 commit
-
-
jkummerow authored
Review URL: https://codereview.chromium.org/1086923002 Cr-Commit-Position: refs/heads/master@{#27822}
-
- 28 Jul, 2014 1 commit
-
-
danno@chromium.org authored
Also explicit length setting with a.length = N should remain in fast mode. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/416403002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jul, 2014 2 commits
-
-
danno@chromium.org authored
Due to failures in mjsunit/array-functions-prototype-misc TBR=verwaest@chromium.org Review URL: https://codereview.chromium.org/417953004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Also explicit length setting with a.length = N should remain in fast mode. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/397593008 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jul, 2014 1 commit
-
-
danno@chromium.org authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/397253002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 May, 2014 2 commits
-
-
mvstanton@chromium.org authored
Comparing one CallIC::State to another was not done correctly, leading to a failure to patch a CallIC when transitioning from monomorphic Array to megamorphic. BUG=chromium:377198,chromium:377290 LOG=Y R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/305493003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
This reverts r21429, r21434, r21435, r21440, r21445. BUG=chromium:377198 LOG=y R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/300693002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 May, 2014 1 commit
-
-
mvstanton@chromium.org authored
Gather transition feedback on array calls, and inline the Array function call when it makes sense. R=danno@chromium.org Review URL: https://codereview.chromium.org/279423005 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2014 1 commit
-
-
mvstanton@chromium.org authored
When FLAG_pretenure_call_new is on, we emit mementos on new object creation in full code, and consume the feedback in crankshaft. A key difference in the generated code for stubs is the allocation of an additional type vector slot for the CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub considerably. Some performance tuning still needs to be addressed, therefore the flag is off at this moment, though fully functional. The goal is to remove the flag as soon as possible, which allows much code deletion (yay). R=hpayer@chromium.org Review URL: https://codereview.chromium.org/132963012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Feb, 2014 2 commits
-
-
mvstanton@chromium.org authored
This reverts commit r19402 R=verwaest@chromium.org Review URL: https://codereview.chromium.org/169713002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
From a CL by kasperl: https://codereview.chromium.org/162903004/ R=verwaest@chromium.org Review URL: https://codereview.chromium.org/163413003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2014 1 commit
-
-
machenbach@chromium.org authored
Also move the GC stress configuration from the buildbot to the test runner. BUG= R=jkummerow@chromium.org, mvstanton@chromium.org Review URL: https://codereview.chromium.org/141653008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jan, 2014 1 commit
-
-
mvstanton@chromium.org authored
The flag has been on in the build for ~9 months, and we aren't likely to turn it off. The only customer of the flag is a set of tests that want to verify transitioning behavior in isolation. This CL removes the flag and updates those tests to get what they want without the flag. R=verwaest@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=18385 Review URL: https://codereview.chromium.org/104923010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Dec, 2013 2 commits
-
-
hpayer@chromium.org authored
This reverts commit 6c430da40efe388035504d3603756aa8c46ed1dc. BUG= Review URL: https://codereview.chromium.org/109303006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
The flag has been on in the build for ~9 months, and we aren't likely to turn it off. The only customer of the flag is a set of tests that want to verify transitioning behavior in isolation. This CL removes the flag and updates those tests to get what they want without the flag. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/104923010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Nov, 2013 1 commit
-
-
mvstanton@chromium.org authored
patch from issue 54583003 (dependent code). Zero arguments - very easy 1 argument - three special cases: a) If length is a constant in valid array length range, no need to check it at runtime. b) respect DoNotInline feedback on the AllocationSite for cases that the argument is not a smi or is an integer with a length that should create a dictionary. c) if kind feedback is non-holey, and length is non-constant, we'd have to generate a lot of code to be correct. Don't inline this case. N arguments - one special case: a) If a deopt ever occurs because an input argument isn't compatible with the elements kind, then set the DoNotInline flag. BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/55933002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jul, 2013 1 commit
-
-
yangguo@chromium.org authored
R=mvstanton@chromium.org BUG= Review URL: https://codereview.chromium.org/19807002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jul, 2013 1 commit
-
-
mvstanton@chromium.org authored
The reason is that an AllocationMemento associated with an array only lives for one gc (it is unrooted). So an excess of garbage collections in these tests cause the Memento to be lost, and expected behavior can't be guaranteed. BUG= R=hpayer@chromium.org Review URL: https://codereview.chromium.org/19544002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jun, 2013 1 commit
-
-
mvstanton@chromium.org authored
* Cleanup of LCallNewArray::PrintDataTo() method * Created HCallNewArray::PrintDataTo() * Created many more tests in array-constructor-feedback.js * Removed redundant instructions in GenerateRecordCallTarget * Bugfix in CreateArrayDispatchOneArgument: on a call to new Array(0), we'd like to set the type feedback cell to a packed elements kind, but we shouldn't do it if the cell contains the megamorphic sentinel. * When used from crankshaft, ArrayConstructorStubs can avoid verifying that the function being called is the array function from the current native context, relying instead on the fact that crankshaft issues an HCheckFunction to protect the constructor call. (this new minor key is used in LCodeGen::DoCallNewArray(), and influences code generation in CodeStubGraphBuilderBase::BuildArrayConstructor()). * Optimization: the array constructor specialized for FAST_SMI_ELEMENTS can save some instructions by looking up the correct map on the passed in constructor, rather than indexing into the array of cached maps per element kind. BUG= R=danno@chromium.org Review URL: https://codereview.chromium.org/17091002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Jun, 2013 1 commit
-
-
mvstanton@chromium.org authored
This eliminates a large amount of hand-written assembly in the platforms. BUG= R=danno@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/16453002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jun, 2013 1 commit
-
-
mvstanton@chromium.org authored
crankshafted code. BUG= R=danno@chromium.org Review URL: https://codereview.chromium.org/16944006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2013 1 commit
-
-
mvstanton@chromium.org authored
Fix for bug 245480. Calling new Array(a) with a single argument could result in creating a holey array with a packed elements kind. BUG=245480 R=verwaest@chromium.org Review URL: https://codereview.chromium.org/16341004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Apr, 2013 1 commit
-
-
yangguo@chromium.org authored
Currently, when a long series of removable simulates are merged, we do this by merging them one by one as we find them. As we merge the value value lists of the simulates, those lists snowball so that we get a quadratic complexity wrt runtime and memory consumption. Instead, we gather simulates that need to be merged, and merge them backwards starting from the last simulate. R=jkummerow@chromium.org BUG=v8:2612 Review URL: https://chromiumcodereview.appspot.com/13649003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/12488006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Mar, 2013 1 commit
-
-
yangguo@chromium.org authored
This includes: - actually release handles kept by compilation info when compilation completes. - do not use parallel recompilation on single core CPUs. - artificially delay parallel recompilation for debugging. - fix outdated assertions wrt optimization status. - add "parallel" option to %OptimizeFunctionOnNextCall. R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/12442002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Feb, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG=v8:2451 Review URL: https://chromiumcodereview.appspot.com/12342037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Feb, 2013 1 commit
-
-
verwaest@chromium.org authored
BUG=chromium:173974 Review URL: https://chromiumcodereview.appspot.com/12178017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jan, 2013 1 commit
-
-
verwaest@chromium.org authored
This is necessary for monomorphic stubs that rely on instance types, such as ArrayLength, StringLength and FunctionPrototype. BUG=chromium:172345 Review URL: https://chromiumcodereview.appspot.com/12082023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-