- 15 May, 2017 24 commits
-
-
Clemens Hammacher authored
Speed up LEB decoding by forcing the decoding loop to be unrolled. Even though the compiler was free to unroll the loop before, clang did not do so. We now manually unroll by using a template function which calls itself recursively, passing the byte index to be decoded next. For efficient execution, we still depend on the compiler to inline the recursive calls (which clang does). This optimization speeds up interpreted execution of the Jetstream benchmarks by 15 percent. Speedup on module decoding is negligible though. Drive-by: Change "unsigned" to "uint32_t". R=ahaas@chromium.org BUG=v8:5822 Change-Id: I06d4230f92bfb2a80cdc5029d965fc3bf84ca1cc Reviewed-on: https://chromium-review.googlesource.com/506188 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45308}
-
Marja Hölttä authored
This reverts commit 7be0159e. Reason for revert: Broke node by generating a broken debug-support.cc Original change's description: > [objects.h splitting] Move Map and related classes. > > BUG=v8:5402 > > Change-Id: I64fae0a0271eb0f1b71f4ec5d9bd5d22deb1cf59 > Reviewed-on: https://chromium-review.googlesource.com/502808 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45305} TBR=marja@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,ishell@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5402 Change-Id: Ifa65537447eb0a1ef947b9d0dae6f07a8b150968 Reviewed-on: https://chromium-review.googlesource.com/506011Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45307}
-
Caitlin Potter authored
Introduces CodeStubAssembler helpers for common Iterator operations (GetIterator, IteratorStep, IteratorClose). Moves the Promise.all resolveElement closure and it's caller to builtins-promise-gen.cc. Instead of creating an internal array (and copying its elements into a result array), a single JSArray is allocated, and appended with BuildAppendJSArray(), falling back to %CreateDataProperty(), and elements are updated in the resolve closure the same way. This should always be unobservable. This CL increases the size of snapshot_blob.bin on an x64.debug build by 11.44kb BUG=v8:5343 R=cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org Change-Id: Id69b7f76866b29caccd97f35870154c4be85f418 Reviewed-on: https://chromium-review.googlesource.com/497974 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45306}
-
Marja Hölttä authored
BUG=v8:5402 Change-Id: I64fae0a0271eb0f1b71f4ec5d9bd5d22deb1cf59 Reviewed-on: https://chromium-review.googlesource.com/502808Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45305}
-
Ross McIlroy authored
BUG=chromium:721078,v8:6246 Change-Id: I10f20d9cc2c7cabff8a3fba02aff351fcecc0ce2 Reviewed-on: https://chromium-review.googlesource.com/505611Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45304}
-
Marja Hölttä authored
- Default constructor scopes won't need the scope data for deciding the scope allocation of variables inside them. Also, PreParser doesn't construct them. So they should be just skipped when applying the scope data. - PreParser needs to declare the class name + have a proper end position for the class scope. - This makes all mjsunit tests pass with --experimental-preparser-scope-analysis. - Also added several DCHECKs which were useful for debugging. BUG=v8:5516 Change-Id: I5b3e6c60ed79efe25f33576a3547d707c700c6dd Reviewed-on: https://chromium-review.googlesource.com/503208 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45303}
-
Michael Lippautz authored
Bug: chromium:651354 Change-Id: Ie940c8715a33e5fc8e8859c4660ab14ecc6f9233 Reviewed-on: https://chromium-review.googlesource.com/505488Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45302}
-
Wiktor Garbacz authored
Change-Id: Ie141097c12ad578c752f51393bd5a5df176b3cad Reviewed-on: https://chromium-review.googlesource.com/504528 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45301}
-
Clemens Hammacher authored
This timer is disabled since the switch to the new validator. This CL brings it back. R=mstarzinger@chromium.org Change-Id: Ie454af72205564d6fec05dd4b7b44c1e3d0c37d6 Reviewed-on: https://chromium-review.googlesource.com/505610Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45300}
-
Michael Starzinger authored
This makes sure that the evaluation result of the first expression in for-statements is properly dropped, to leave the stack in a balanced state after the statement. It also makes sure validation failures in said expression are handled correctly. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-721835 BUG=chromium:721835 Change-Id: I7e6cff4cea0bbf5aad6a3459e27a08ea814dbdbe Reviewed-on: https://chromium-review.googlesource.com/506148 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45299}
-
Mythri authored
Crankshaft flag and opt flag mostly serve the same purpose. Using crankshaft to mean use optimizing compiler is a bit confusing. This cl: https://chromium-review.googlesource.com/c/490206/ fixes the tests to use opt instead of crankshaft flag. One difference between --no-crankshaft and --no-opt would be that --no-opt would mean no optimizations at all where as with --no-crankshaft would mean we can force optimizations using %OptimizeFunctionOnNextCall. Bug: v8:6325 Change-Id: If17393ac5b6af4ea6e9a98e092f0261c2e0899c5 Reviewed-on: https://chromium-review.googlesource.com/490307Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45298}
-
georgia.kouveli authored
BUG= Review-Url: https://codereview.chromium.org/2871863003 Cr-Commit-Position: refs/heads/master@{#45297}
-
Mythri authored
This is the last in the series of simplifying the logic to collect feedback in compare bytecode handlers. This cl inlines the type feedback collection for the relational compare (lessthan, lessthan or equal, greater than, gerater than or equal) bytecode handlers. Bug: v8:4280 Change-Id: I4a896c9cbe5628c76785882c0632bfa07b18b099 Reviewed-on: https://chromium-review.googlesource.com/500309Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45296}
-
Camillo Bruni authored
- Add BasicBlock::Print method for easier inspection in gdb - Print detailed error message in InstructionSelector::VisitControl instead of just a check failure Change-Id: Ice9d70567114f014b244c1b4e41e450900030994 Reviewed-on: https://chromium-review.googlesource.com/504388 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45295}
-
bmeurer authored
For a polymorphic access to o.x we would only merge it into a single PropertyAccessInfo so far, if x is at the same offset in all maps and the property index of x (in the descriptor arrays) is the same. But that doesn't matter for code generation and blocks optimizations even. BUG=v8:6278,v8:6344,v8:6396 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2883883002 Cr-Commit-Position: refs/heads/master@{#45294}
-
jing.bao authored
instr(xmm, xmm/mem) vinstr(xmm, xmm/mem) BUG= Review-Url: https://codereview.chromium.org/2870253003 Cr-Commit-Position: refs/heads/master@{#45293}
-
jarin authored
BUG=chromium:718820 Review-Url: https://codereview.chromium.org/2878343003 Cr-Commit-Position: refs/heads/master@{#45292}
-
bmeurer authored
Introduce a flag --max_inlined_nodes_small (defaults to 10), which gives the upper limit of AST nodes for a function to be considered "small" by the inlining heuristic. These functions will always be inlined immediately, independent of the budget. R=jarin@chromium.org BUG=v8:6395,v8:6278,v8:6344,v8:6394 Review-Url: https://codereview.chromium.org/2883853002 Cr-Commit-Position: refs/heads/master@{#45291}
-
jgruber authored
No semantic changes, just a readability refactoring that removes a couple of unnecessary variables and labels. BUG=v8:6371 Review-Url: https://codereview.chromium.org/2881763003 Cr-Commit-Position: refs/heads/master@{#45290}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I616a972283cc85ccaf63c46d0cc11ccbb7563a46 Reviewed-on: https://chromium-review.googlesource.com/504527Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45289}
-
jgruber authored
250K was probably still too generous and 80K leads to improvements locally. BUG=v8:6348 Review-Url: https://codereview.chromium.org/2876413002 Cr-Commit-Position: refs/heads/master@{#45288}
-
jgruber authored
Smis can easily be handled outside the stub call without adding much to code size. The ToString inlining adds overhead of repeated instance type loads and checks, but under the assumption that it is called with mostly string values it should speed things up (a local RegExp.p[@@replace] microbenchmark shows consistent 1.6% improvements). Drive-by-fix: Remove duplication in ToString implementations. BUG= Review-Url: https://codereview.chromium.org/2874423003 Cr-Commit-Position: refs/heads/master@{#45287}
-
Camillo Bruni authored
With this CL SloppyArguments immediately go to dictionary elements on deletion, keeping the arguments backing store packed. Bug: v8:6251 Change-Id: I90d1972179447bf6810e7fe2b8e0bc8703b38d9d Reviewed-on: https://chromium-review.googlesource.com/486921Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45286}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/cb040e9..63fb52b Rolling v8/third_party/icu: https://chromium.googlesource.com/chromium/deps/icu/+log/4b06aad..87232d8 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: Ie82d5813078e93ce03eb5161199971efef264b7e Reviewed-on: https://chromium-review.googlesource.com/505712Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45285}
-
- 14 May, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/3639cca..cb040e9 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/ff3b45d..37015fb TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I8fa21ea36bec3f6f235b6c0a82eef358abceeb82 Reviewed-on: https://chromium-review.googlesource.com/505868Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45284}
-
- 13 May, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/00764a8..3639cca Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/1ff6ffc..ff3b45d Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/4dfb853..162cac4 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: Ia06ca0b5c6f911d86fc6e6fdae197a79a84675a3 Reviewed-on: https://chromium-review.googlesource.com/505707Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45283}
-
- 12 May, 2017 14 commits
-
-
Eric Holk authored
This is almost identical to V8's default array buffer allocator. The only difference is that 0 byte allocations are changed into 1 byte allocations. We do not seem to need this behavior, so it does not seem worth maintaining yet another allocator. Bug: Change-Id: I94f45f1276958791be9a6f2405fcfba8fa6eaa38 Reviewed-on: https://chromium-review.googlesource.com/505199Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45282}
-
Adam Klein authored
This lets us avoid allocating the "this" variable for every generator, since the BytecodeGenerator can directly read the receiver via BytecodeArrayBuilder::Receive() when passing it into %_CreateJSGeneratorObject. Bug: v8:6351 Change-Id: Ib5e1f3303b6b5d5fc051ce76ea62129fd6afac65 Reviewed-on: https://chromium-review.googlesource.com/500507 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#45281}
-
Michael Lippautz authored
Remove FinalizePageSequentially as it had only a single use case that was tied to the full collector. Bug: chromium:651354 Change-Id: I03299ddbd439ea273e02dd33f12c005371694130 Reviewed-on: https://chromium-review.googlesource.com/504508Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45280}
-
ivica.bogosavljevic authored
TEST=wasm-spec-tests/tests/set_local,wasm-spec-tests/tests/imports BUG= Review-Url: https://codereview.chromium.org/2859223004 Cr-Commit-Position: refs/heads/master@{#45279}
-
Ross McIlroy authored
We make assumptions that baseline code exists if we run the optimized code (e.g., to deopt to the baseline code). If the baseline code has been cleared by code flushing (only full-codegen) then it might not exist but there is still optimized code in the map. BUG=v8:6389 Change-Id: Id4db664afee96c2da3a36a177f425293aae9a0a3 Reviewed-on: https://chromium-review.googlesource.com/503010Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45278}
-
Michael Starzinger authored
This makes sure that the order of exports as they appear in asm.js modules is maintained globally (not just per function) while being translated to a WASM module. R=clemensh@chromium.org TEST=mjsunit/asm/asm-validation BUG=chromium:720586 Change-Id: I8b26d717ae2f88467d41670bced901f196c7b3fc Reviewed-on: https://chromium-review.googlesource.com/503708 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45277}
-
jgruber authored
No need to call through ConstructJS -> ArrayCode -> ArrayConstructorStub -> AllocateJSArray if we can call AllocateJSArray directly. This also moves ArraySpeciesCreate to builtins-array-gen to free up space in the binary. BUG=v8:6354 Review-Url: https://codereview.chromium.org/2874833004 Cr-Commit-Position: refs/heads/master@{#45276}
-
mvstanton authored
BUG=v8:6370 Review-Url: https://codereview.chromium.org/2870013004 Cr-Commit-Position: refs/heads/master@{#45275}
-
mvstanton authored
I just tried a local mac build, and the assert seems to be okay. Let's see what the waterfall thinks. R=mlippautz@chromium.org BUG= Review-Url: https://codereview.chromium.org/2875273002 Cr-Commit-Position: refs/heads/master@{#45274}
-
ivica.bogosavljevic authored
Add Miran Karic and Dusan Simicic Remove Paul Lind, Gergely Kis, Akos Palfi, Balasz Kilvady and Dusan Milosavljevic NOTRY=true Review-Url: https://codereview.chromium.org/2881493003 Cr-Commit-Position: refs/heads/master@{#45273}
-
Loo Rong Jie authored
Compilers don't flatten os << const char* for you. Save a bit binary size. Bug:NO Change-Id: Iabe0de83fdf6394f223d0423e63bd5aadf1453b3 Reviewed-on: https://chromium-review.googlesource.com/503829Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Loo Rong Jie <loorongjie@gmail.com> Cr-Commit-Position: refs/heads/master@{#45272}
-
Clemens Hammacher authored
The current implementation failed when comparing an integral type to a reference to an integral type of different signedness (see updated unittest). This CL fixes the checks to actually test the std::decay<T>::type, i.e. with all references, const or volatile modifiers stripped. R=jochen@chromium.org, ishell@chromium.org TEST=unittests/LoggingTest.CompareWithReferenceType Change-Id: Ib0ac077a91e0409ada7a80b68150cb98cbdd32f1 Reviewed-on: https://chromium-review.googlesource.com/502814Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45271}
-
Mircea Trofin authored
Bug: Change-Id: Ic5b96bfb6b8b468434c06aed5e12b4ddb278dd08 Reviewed-on: https://chromium-review.googlesource.com/503440 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45270}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/2e68430..00764a8 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/27f7008..1ff6ffc Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/ae881aa..4dfb853 Rolling v8/tools/swarming_client: https://chromium.googlesource.com/external/swarming.client/+log/e6fc938..a941a08 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I5a68e9bc325e394b618e0f5605b3c4b13a80f263 Reviewed-on: https://chromium-review.googlesource.com/503869Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45269}
-