- 21 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Removes the SharedFunctionInfo field from the ParseInfo structure. Instead require a SharedFunctionInfo to be explicitly passed to ParseFunction. Also renames GetUnoptimizedCode to CompileUnoptimizedFunction to make it clear it should only be called for non-top-level code. BUG=v8:5203 Change-Id: Ibce016e6a5290c3685f7f0a2f5fb1eb2df2ffc3b Reviewed-on: https://chromium-review.googlesource.com/574589 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46814}
-
- 19 Jul, 2017 1 commit
-
-
Daniel Ehrenberg authored
Async functions and generator declarations are only permitted as StatementListItems, not as ExpressionStatements, and therefore not as the entire body of an if statement, etc. Previously, they were incorrectly permitted. However, ChakraCore and SpiderMonkey seem to ban them in this context, and the feature was introduced relatively recently, so it is likely to be web-compatible to ship the prohibition. This patch also unifies the error message wording of async functions and generators to ordinary functions, explaining more clearly what the issue is. Bug: v8:4483 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I31ed7818d6ab3e7e325031bfabb933dbf4512143 Reviewed-on: https://chromium-review.googlesource.com/568979 Commit-Queue: Daniel Ehrenberg <littledan@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46770}
-
- 14 Jul, 2017 6 commits
-
-
Alexey Kozyatinskiy authored
Goal of this CL: explicit return from non-async function has position after return expression as return position (will unblock [1]). BytecodeArrayBuilder has SetStatementPosition and SetExpressionPosition methods. If one of these methods is called then next generated bytecode will get passed position. It's general treatment for most cases. Unfortunately it doesn't work for Returns: - debugger requires source positions exactly on kReturn bytecode in stepping implementation, - BytecodeGenerator::BuildReturn and BytecodeGenerator::BuildAsyncReturn generates more then one bytecode and general solution will put return position on first generated bytecode, - it's not easy to split BuildReturn function into two parts to allow something like following in BytecodeGenerator::VisitReturnStatement since generated bytecodes are actually controlled by execution_control(). ..->BuildReturnPrologue(); ..->SetReturnPosition(stmt); ..->Return(); In this CL we pass ReturnStatement through ExecutionControl and use it for position when we emit return bytecode right here. So this CL only will improve return position for returns inside of non-async functions, I'll address async functions later. [1] https://chromium-review.googlesource.com/c/543161/ Change-Id: Iede512c120b00c209990bf50c20e7d23dc0d65db Reviewed-on: https://chromium-review.googlesource.com/560738 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46687}
-
Caitlin Potter authored
SuspendFlags was originally used by the suspend operation to determine which field to record the bytecode offset of a suspended generator, and the value the generator was resumed with. For async generators, await operations would use a separate field, in order to preserve the previous yield input value. This was important to ensure `function.sent` continued to function correctly. As function.sent is being retired, this allows the removal of support for that. Given that this was the only real need for SuspendFlags in the first place (with other uses tacked on as a hack), this involves several other changes as well: - Modification of MacroAssembler AssertGeneratorObject. No longer accepts a SuspendFlags parameter to determine which type of check to perform. - Removal of `flags` operand from SuspendGenerator bytecode, and the GeneratorStore js-operator. - Removal of `flags` parameter from ResumeGeneratorTrampoline builtins. - Removal of Runtime functions, interpreter intrinsics and AccessBuilders associated with the [[await_input_or_debug_pos]] field in JSAsyncGeneratorObject, as this field no longer exists. - Addition of a new `Yield` AST node (subclass of Suspend) in order to prevent the need for the other SuspendFlag values. BUG=v8:5855 TBR=bmeurer@chromium.org Change-Id: Iff2881e4742497fe5b774915e988c3d9d8fbe487 Reviewed-on: https://chromium-review.googlesource.com/570485 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46683}
-
jgruber authored
Bug: v8:6000 Change-Id: I8c068383300ba869a87f836504c84ea08fcff87e Reviewed-on: https://chromium-review.googlesource.com/568307Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46675}
-
Caitlin Potter authored
This includes several changes. From most to least interesting: - No longer implement AwaitExpressions using a do-expression. - Reduces frame-size of async generators by not allocating temporary variables to hold results of Await epxressions. - Streamline and reduce generated bytecodes for Await. - Debugger no longer emits a debug::kCallBreakLocation breakpoint for the JS-builtin call performed for Await, and instead only emits such a breakpoint if the operand of Await is actually a call. - Push fewer parameters to Await* builtins, using the receiver for the first parameter (possible now that the CallRuntime invocation not part of the AST). - Adds a new Await AST node. No new members or anything, but it seemed palatable to avoid having `if (is_await())` in a number of VisitSuspend functions. BUG=v8:5855, v8:5099, v8:4483 R=rmcilroy@chromium.org, kozyatinskiy@chromium.org, yangguo@chromium.org TBR=bmeurer@chromium.org Change-Id: I9cd3fda99cd40295c04fdf1aea01b5d83fac6caf Reviewed-on: https://chromium-review.googlesource.com/558806 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46666}
-
jgruber authored
Bug: v8:6000 Change-Id: Ia50108ebbf838e210d95cb268858394e6a66c88d Reviewed-on: https://chromium-review.googlesource.com/567990 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46658}
-
Sathya Gunasekaran authored
Only allow BindingIdentifier in BindingRestPattern and ValidReferenceExpression in AssignmentRestPattern. Also updated to a better, actionable error message. Bug: v8:6500, v8:6513 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ifaba2f85c20bc20e263267e8c76d50a27075b87d Reviewed-on: https://chromium-review.googlesource.com/550559 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46653}
-
- 13 Jul, 2017 4 commits
-
-
Adam Klein authored
The tail call implementation is hidden behind the --harmony-tailcalls flag, which is off-by-default (and has been unstaged since February). It is known to be broken in a variety of cases, including clusterfuzz security issues (see sample Chromium issues below). To avoid letting the implementation bitrot further on trunk, this patch removes it. Bug: v8:4698, chromium:636914, chromium:724746 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I9cb547101456a582374fdf7b1a3f044a9ef33e5c Reviewed-on: https://chromium-review.googlesource.com/569069 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46651}
-
Adam Klein authored
Commit f37d7264 limited inner function parsing to function declarations, to allow function expressions to be eagerly-compiled if the parser discovered that they are immediately invoked. But it's not only declarations that won't be immediately invoked: methods and accessors are in the same boat, and should be treated the same. This patch reverses the logic to exclude function expressions from inner lazy treatment, thus making both function declarations and methods/accessors inner-lazy-parseable. Bug: v8:5501 Change-Id: I71a57667e52fcb917362ba629667c4c84ae29011 Reviewed-on: https://chromium-review.googlesource.com/569180Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46650}
-
jgruber authored
Both labeled blocks: l0: { break l0; } and blocks containing jump statements (break, return, continue) require a continuation counter to correctly display coverage. Bug: v8:6000 Change-Id: I3ae8ddd3d9f6c087622482b86014dd583b774b71 Reviewed-on: https://chromium-review.googlesource.com/568024Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46644}
-
Igor Sheludko authored
... that have computed name and/or require home object. This should give us the opportunity to implement initialization of name and home object values in a stub. Bug: v8:6459 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I47a1a2c185e120e86c793733cce737811f895291 Reviewed-on: https://chromium-review.googlesource.com/512802Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46638}
-
- 12 Jul, 2017 2 commits
-
-
jgruber authored
This CL moves collected source range information out of AST nodes and into a side table stored on ParseInfo. The side table is only created if block coverage is enabled, so there's almost no memory overhead in the standard case. Change-Id: I41871b8425ebbc6217d82d3ad26b5fc9e5d68ecb Reviewed-on: https://chromium-review.googlesource.com/566808 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46590}
-
Daniel Ehrenberg authored
This patch teaches the parser that async functions are not valid destructuring targets so that it can cleanly exit with a SyntaxError. Previously, async functions used in the wrong position would lead to a check failure. Bug: chromium:740366 Change-Id: Ie5b0cf50326c3f96174c6b29d0ccedb5da4f75a2 Reviewed-on: https://chromium-review.googlesource.com/567002Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Caitlin Potter <caitp@igalia.com> Commit-Queue: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46587}
-
- 11 Jul, 2017 2 commits
-
-
jgruber authored
Switch statements generate a counter for each clause plus a continuation counter. Bug: v8:6000 Change-Id: Ic55a7efda54de1152bd5283d753119aa2764afbd Reviewed-on: https://chromium-review.googlesource.com/558249Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46550}
-
Igor Sheludko authored
Bug: chromium:734395 Change-Id: Ieb45948f6efd2ccecd3d1ed761eb9e4614903480 Reviewed-on: https://chromium-review.googlesource.com/563661Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46546}
-
- 10 Jul, 2017 2 commits
-
-
Alexey Kozyatinskiy authored
This is a reland of 5b44ba0e Original change's description: > (Reland) [parser] moved load property position after dot > > Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. > It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. > > R=jgruber@chromium.org > TBR=marja@chromium.org > > Bug: v8:6425 > Change-Id: I05c21ca5e018da9c432c6bc963c7a96799336d1c > Reviewed-on: https://chromium-review.googlesource.com/562879 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46484} TBR=marja@chromium.org,jgruber@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Bug: v8:6425 Change-Id: I5eba5fe43ad31c5c781ffcc8c604cd9c98baa57e Reviewed-on: https://chromium-review.googlesource.com/565907Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46542}
-
Caitlin Potter authored
In https://chromium-review.googlesource.com/c/472247/, I avoided running DesugarLexicalBindingsInForStatement() if there were no lexical loop variables, the function was not resumable, and the variables are not captured by eval or a function declaration. I think it's now possible to limit this further, and only do the more extensive desugaring if there's a function declaration / eval() call in the loop body. `yield` and `await` are not an issue as those loop variables are written to the register file and not lost. This change just removes the `is_resumable()` condition. If it passes tests, I think it's safe. BUG=v8:4762, v8:5460, v8:6579 Change-Id: I92d0308ad9401c1338411bc9ae9021f978803d3a Reviewed-on: https://chromium-review.googlesource.com/563587 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46536}
-
- 08 Jul, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 5b44ba0e. Reason for revert: Layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/16841 Original change's description: > (Reland) [parser] moved load property position after dot > > Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. > It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. > > R=jgruber@chromium.org > TBR=marja@chromium.org > > Bug: v8:6425 > Change-Id: I05c21ca5e018da9c432c6bc963c7a96799336d1c > Reviewed-on: https://chromium-review.googlesource.com/562879 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46484} TBR=kozyatinskiy@chromium.org,jgruber@chromium.org Change-Id: If9d5fa5f46ed10a407559e9cf10d2a6a54dbe163 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6425 Reviewed-on: https://chromium-review.googlesource.com/564418Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46491}
-
- 07 Jul, 2017 2 commits
-
-
Alexey Kozyatinskiy authored
Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. R=jgruber@chromium.org TBR=marja@chromium.org Bug: v8:6425 Change-Id: I05c21ca5e018da9c432c6bc963c7a96799336d1c Reviewed-on: https://chromium-review.googlesource.com/562879 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46484}
-
jgruber authored
This adds support for exception control flow by adding a counter behind throw statements (never incremented), as well as a counter for catch and finally blocks. Bug: v8:6000 Change-Id: I3959772c889b543ab5e186ad7cd710e55a8aec23 Reviewed-on: https://chromium-review.googlesource.com/558993 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46476}
-
- 06 Jul, 2017 1 commit
-
-
Sathya Gunasekaran authored
Print the object that is being destructured and update the error message. Previously, d8> var [a] = {} (d8):1: TypeError: [Symbol.iterator] is not a function Now, d8> var [a] = {} (d8):1: TypeError: {} is not iterable Bug: v8:6513, v8:5532 Change-Id: I5cbfe7c7e20632bce1a48bd38a1b0c98d0ff0660 Reviewed-on: https://chromium-review.googlesource.com/557370 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46457}
-
- 03 Jul, 2017 1 commit
-
-
Marja Hölttä authored
(The test that catches the bug was test-bytecode-generator/LookupSlot) BUG=v8:5516 Change-Id: I00a02c5326b2a132383a9d72b5b894fade53bbf2 Reviewed-on: https://chromium-review.googlesource.com/558864 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46374}
-
- 30 Jun, 2017 2 commits
-
-
Marja Hölttä authored
This way, each lazy function needs to handle only the data relevant to itself. This reduced data handling overheads. Other changes: 1) Don't deserialize the data; once it's on the heap, it can stay there. Lazy function compilation is only done in the main thread. 2) Separate ProducedPreParsedScopeData and ConsumedPreParsedScopeData. It's clearer, because: - The data looks fundamentally different when we're producing it and when we're consuming it. - Cleanly separates the operations we can do in the "producing phase" and in the "consuming phase". Bug: v8:5516 Change-Id: I6985a6621f71b348a55155724765624b5d5f7c33 Reviewed-on: https://chromium-review.googlesource.com/528094 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46347}
-
Leszek Swirski authored
Change-Id: I2ee0ff9db1bbc8c17a1ad3dea1de1ad996895852 Reviewed-on: https://chromium-review.googlesource.com/474807Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46338}
-
- 29 Jun, 2017 1 commit
-
-
Daniel Ehrenberg authored
This reverts commit 96698b55. Reason for revert: This patch was correct when it landed, but later, the spec was changed to V8's old behavior in https://github.com/tc39/ecma262/pull/885 . Original change's description: > [parser] allow ASI when "await" or "yield" follows "let" > > Per https://github.com/tc39/test262/pull/956, André believes that ASI > should be permitted in these situations. > > BUG= > R=marja@chromium.org, adamk@chromium.org, littledan@chromium.org > > Change-Id: I5602d8a507576607750ffa9e873e1bfa53dd3523 > Reviewed-on: https://chromium-review.googlesource.com/472568 > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Cr-Commit-Position: refs/heads/master@{#44585} TBR=adamk@chromium.org,marja@chromium.org,littledan@chromium.org,caitp@igalia.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I2c5bf709867da539ccd4cd82f3be98c8a0301f31 Reviewed-on: https://chromium-review.googlesource.com/553617Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46317}
-
- 28 Jun, 2017 1 commit
-
-
Michael Starzinger authored
R=marja@chromium.org Change-Id: I957ba8c228aff2c17af8d629af86911f7b5366ec Reviewed-on: https://chromium-review.googlesource.com/552126Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46281}
-
- 26 Jun, 2017 2 commits
-
-
hans authored
This is towards closing the perf gap between the MSVC build (which uses link- time optimization) and Clang (where LTO isn't ready on Windows yet). We did a study (see bug) to see which non-inlined functions are hit a lot during render start-up, and which would be inlined during LTO. This should benefit performance in all builds which currently don't use LTO (Android, Linux, Mac) as well as the Win/Clang build. The binary size of chrome_child.dll increases by 2KB with this. BUG=chromium:728324 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.mac:mac_chromium_compile_dbg_ng Review-Url: https://codereview.chromium.org/2950993002 Cr-Commit-Position: refs/heads/master@{#46229}
-
Michael Starzinger authored
R=marja@chromium.org BUG=v8:6408 Change-Id: Ied0c4d1aba18ec84d5feb02c3522b77759be216e Reviewed-on: https://chromium-review.googlesource.com/548636Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46226}
-
- 25 Jun, 2017 1 commit
-
-
machenbach authored
Revert of Make some functions that are hit during renderer startup available for inlining (patchset #3 id:40001 of https://codereview.chromium.org/2950993002/ ) Reason for revert: Blocks roll: https://codereview.chromium.org/2954833002/ E.g.: https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/449680 https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_ng/builds/324953 Please include those chromium trybots on reland. Maybe missing symbol export? Original issue's description: > Make some functions that are hit during renderer startup available for inlining > > This is towards closing the perf gap between the MSVC build (which uses link- > time optimization) and Clang (where LTO isn't ready on Windows yet). We did > a study (see bug) to see which non-inlined functions are hit a lot during render > start-up, and which would be inlined during LTO. This should benefit performance > in all builds which currently don't use LTO (Android, Linux, Mac) as well as > the Win/Clang build. > > The binary size of chrome_child.dll increases by 2KB with this. > > BUG=chromium:728324 > > Review-Url: https://codereview.chromium.org/2950993002 > Cr-Commit-Position: refs/heads/master@{#46191} > Committed: https://chromium.googlesource.com/v8/v8/+/d00d52be1fce9c1bf5558c8b26bf984efd09e65b TBR=jochen@chromium.org,mstarzinger@chromium.org,rmcilroy@chromium.org,vogelheim@chromium.org,marja@chromium.org,mlippautz@chromium.org,thakis@chromium.org,hans@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:728324 NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2955793002 Cr-Commit-Position: refs/heads/master@{#46195}
-
- 23 Jun, 2017 6 commits
-
-
hans authored
This is towards closing the perf gap between the MSVC build (which uses link- time optimization) and Clang (where LTO isn't ready on Windows yet). We did a study (see bug) to see which non-inlined functions are hit a lot during render start-up, and which would be inlined during LTO. This should benefit performance in all builds which currently don't use LTO (Android, Linux, Mac) as well as the Win/Clang build. The binary size of chrome_child.dll increases by 2KB with this. BUG=chromium:728324 Review-Url: https://codereview.chromium.org/2950993002 Cr-Commit-Position: refs/heads/master@{#46191}
-
Michael Achenbach authored
This reverts commit 217d654c. Reason for revert: Changes layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/16520 Original change's description: > [parser] moved load property position after dot > > Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. > It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. > > R=jgruber@chromium.org > > Bug: v8:6425 > Change-Id: I528c5007de52215beba80851ab04693ecec038e2 > Reviewed-on: https://chromium-review.googlesource.com/543047 > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46163} TBR=marja@chromium.org,kozyatinskiy@chromium.org,jgruber@chromium.org Change-Id: I94543526f39f0a20452fbce1a7bc6744cac66621 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6425 Reviewed-on: https://chromium-review.googlesource.com/544993Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46171}
-
Marja Hölttä authored
Make PreParser match what Parser does. BUG=v8:5516 Change-Id: I2801206fd17b9a5047bc43c6112f4945971596b7 Reviewed-on: https://chromium-review.googlesource.com/544949 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46169}
-
jgruber authored
Drive-by-fixes: Singleton ranges past EOF, disable optimization for block count mode. Bug: v8:6000 Change-Id: I718891f8821285ce3d7d8360faaa91a43de5b93d Reviewed-on: https://chromium-review.googlesource.com/541300Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46168}
-
Tobias Tebbi authored
Async generator yield* is still desugared in the parser, to be moved to the BytecodeGenerator in a future CL. Bug: v8:6472 Change-Id: I8b33e2f9e931949f7375540099cd8ec3a6b27cf1 Reviewed-on: https://chromium-review.googlesource.com/539335 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46165}
-
Alexey Kozyatinskiy authored
Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. R=jgruber@chromium.org Bug: v8:6425 Change-Id: I528c5007de52215beba80851ab04693ecec038e2 Reviewed-on: https://chromium-review.googlesource.com/543047Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46163}
-
- 22 Jun, 2017 3 commits
-
-
Marja Hölttä authored
In the failing case (see test), the loop variable (which should be context allocated) is in a hidden scope, so we need to save and restore data for hidden scopes too. The !is_hidden() check was overly limiting - NeedsScopeData already handles the "hidden leaf scope" case which is the one we want to avoid. (Btw, this also means that the previous assumption "variables in hidden scopes are not context allocated" was wrong.) BUG=v8:5516 Change-Id: I1c6116654b19ef0cfd64e8a743b46af683a9fcd5 Reviewed-on: https://chromium-review.googlesource.com/544938 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46136}
-
Marja Hölttä authored
The DCHECKs were checking that the data we stored about a Scope (param count etc) matches the Scope where we're restoring the data to. But for skipped functions, this data is not in the Scope, so it doesn't make sense to DCHECK them. BUG=v8:5516 Change-Id: I6ad66ec4dd5fe31da52c0d5b533b336e3956ee1d Reviewed-on: https://chromium-review.googlesource.com/544300 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46134}
-
Marja Hölttä authored
let f = function g() { ... } declares "g" inside the function. This CL makes the preparser declare it too, and saves + restores the scope data for it. BUG=v8:5516 Change-Id: Id4c64f446d30f5252038cfb0f0f473b85ba24a9b Reviewed-on: https://chromium-review.googlesource.com/544816 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46133}
-
- 21 Jun, 2017 1 commit
-
-
bakkot authored
(Reland: NeedsManualRebaseline'd newly-fixed layout test in Chromium.) This was never legal; the spec only allows '\0' in strict-mode strings or templates when not followed by a decimal digit. Previously we were only enforcing that it not be followed by an _octal_ digit. This was already fixed for numeric literals, but not for escape sequences in strings. BUG=v8:6504 Review-Url: https://codereview.chromium.org/2948903002 Cr-Commit-Position: refs/heads/master@{#46106}
-