- 25 May, 2018 1 commit
-
-
Dan Elphick authored
Removes use of HeapObject::GetIsolate() from Object::BooleanValue in preparation for removing the method. Requires adding Isolate parameter to CommonOperatorReducer constructor. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: If735e71df3288bf1eb11576605c2d95a19472181 Reviewed-on: https://chromium-review.googlesource.com/1071653Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#53361}
-
- 08 May, 2018 1 commit
-
-
Marja Hölttä authored
- Make FeedbackVector backing store a WeakFixedArray. - "feedback" is always strong but "extra" might be weak. - Whenever the handler stored in FeedbackVector is a WeakCell to a transition Map, replace it with an in-place weak reference. For a more detailed description of the changes, see the design doc https://docs.google.com/document/d/1P8cIme2wKszdYt64ObAiuh6pXgLnrrn80Hpl1ejJbOU/edit#heading=h.ijx1oculrikp BUG=v8:7308 Change-Id: I72c5cf6597ef24d4c22a1fe8e25b67ca196d4ec8 Reviewed-on: https://chromium-review.googlesource.com/1027855 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53051}
-
- 02 May, 2018 1 commit
-
-
Leszek Swirski authored
This reverts commit 2df5e7a7. Reason for revert: Mystery crashes https://bugs.chromium.org/p/chromium/issues/detail?id=838805 Original change's description: > [parser] Slice the source string where possible > > When internalizing string literals (for quoted strings or property names), > try to create a sliced string of the source string rather than allocating > a copy of the bytes. > > This will not work for string literals that contain escapes (e.g. unicode > escapes), and currently does not support two-byte strings. > > Bug: chromium:818642 > Change-Id: I686e5ad36baecd1a84ce5e124118431249b6c980 > Reviewed-on: https://chromium-review.googlesource.com/1010282 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52898} TBR=marja@chromium.org,yangguo@chromium.org,jarin@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,verwaest@chromium.org Change-Id: I598b6668c43a3e843e2dd8e60852b2b2f3461954 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1039885 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52919}
-
- 01 May, 2018 1 commit
-
-
Leszek Swirski authored
When internalizing string literals (for quoted strings or property names), try to create a sliced string of the source string rather than allocating a copy of the bytes. This will not work for string literals that contain escapes (e.g. unicode escapes), and currently does not support two-byte strings. Bug: chromium:818642 Change-Id: I686e5ad36baecd1a84ce5e124118431249b6c980 Reviewed-on: https://chromium-review.googlesource.com/1010282Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52898}
-
- 10 Apr, 2018 1 commit
-
-
Matheus Marchini authored
Before Turbofan/Ignition it was possible to use external profilers to sample running V8/Node.js processes and generate reports/FlameGraphs from that. It's still possible to do so, but non-optimized JavaScript functions appear in the stack as InterpreterEntryTrampoline. This commit adds a runtime flag which makes interpreted frames visible on the process' native stack as distinguishable functions, making the sampled data gathered by external profilers such as Linux perf and DTrace more useful. R=bmeurer@google.com, franzih@google.com, jarin@google.com, yangguo@google.com Bug: v8:7155 Change-Id: I3dc8876aa3cd9f1b9766624842a7cc354ccca415 Reviewed-on: https://chromium-review.googlesource.com/959081 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52533}
-
- 12 Dec, 2017 2 commits
-
-
Georg Neis authored
R=jkummerow@chromium.org Bug: v8:6791 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I2b04e4d5c2f8dd8c7e57662c81778a3a77376cb5 Reviewed-on: https://chromium-review.googlesource.com/819271 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#50034}
-
Georg Neis authored
R=jkummerow@chromium.org Bug: v8:6791 Change-Id: I6664ce5b9d208f2cb1e8320c9cc9a67a682316a7 Reviewed-on: https://chromium-review.googlesource.com/817316 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#50022}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 15 Nov, 2017 1 commit
-
-
Ross McIlroy authored
Removes Isolate from compilation info and instead threads isolate through function calls. This ensures that we can't access the isolate from background thread compilations. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I9a4e1cd67c4736e36f609360b996fb55166a1c50 Reviewed-on: https://chromium-review.googlesource.com/751745 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49386}
-
- 08 Nov, 2017 1 commit
-
-
jgruber authored
There's three common situations in which we need to create JSFunction objects. 1) from the compiler, 2) from tests, and 3) everything else (mostly during bootstrapping). This is an attempt to simplify case 3), which previously relied on several Factory::NewFunction overloads where it was not clear how the semantics of each overload differed. This CL removes all but one overload, and packs arguments into a new NewFunctionArgs helper class. It also removes the hacks around SFI::set_lazy_deserialization_builtin_id by explicitly passing builtin_id into Factory::NewSharedFunctionInfo. Drive-by-fix: Properly set is_constructor hint in SimpleCreateSharedFunctionInfo. Bug: v8:6624 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ica94d95e72e443055db5e7ff9e8cdf4115201ef1 Reviewed-on: https://chromium-review.googlesource.com/757094 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49224}
-
- 27 Oct, 2017 1 commit
-
-
Adam Klein authored
This eliminates the AstValue class, effectively moving its implementation into the Literal AstNode. This should cause no difference in behavior, but it does signal some shifts in the underlying system. Biggest changes include: - Reduction in AST memory usage - No duplicate HeapNumbers in Ignition constant pools - Non-String values are allocated either at constant pool creation time (or at boilerplate creation time for literals), rather than at AstValueFactory::Internalize() time. There are a variety of test-only/debug-only changes due to these switches as well. Bug: v8:6984 Change-Id: I5f178040ce2796d4e7370c24d1063419e1c843a1 Reviewed-on: https://chromium-review.googlesource.com/731111 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49013}
-
- 24 Oct, 2017 1 commit
-
-
Adam Klein authored
This removes all but one caller of Literal::raw_value(), thus hiding AstValue from the rest of the codebase. This is in preparation to move much of AstValue's implementation up into Literal itself, thus avoiding the overhead of the underling ZoneObjects and allowing us to remove complexity such as the cache of Smi-valued AstValues. Bug: v8:6984 Change-Id: I1b90aa64b9d26db36ef486afe73cda4473ef866e Reviewed-on: https://chromium-review.googlesource.com/731109Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48884}
-
- 23 Oct, 2017 1 commit
-
-
Benedikt Meurer authored
This adds a new InstanceOfIC where the TestInstanceOf bytecode collects constant feedback about the right-hand side of instanceof operators, including both JSFunction and JSBoundFunction instances. TurboFan then uses the feedback to optimize instanceof in places where the right-hand side is not a known constant (known to TurboFan). This addresses the odd performance cliff that we see with instanceof in functions with multiple closures. It was discovered as one of the main bottlenecks on the uglify-es test in the web-tooling-benchmark. The uglify-es test (run in separation) is ~18% faster with this change. On the micro-benchmark in the tracking bug we go from instanceofSingleClosure_Const: 69 ms. instanceofSingleClosure_Class: 246 ms. instanceofMultiClosure: 246 ms. instanceofParameter: 246 ms. to instanceofSingleClosure_Const: 70 ms. instanceofSingleClosure_Class: 75 ms. instanceofMultiClosure: 76 ms. instanceofParameter: 73 ms. boosting performance by roughly 3.6x and thus effectively removing the performance cliff around instanceof. Bug: v8:6936, v8:6971 Change-Id: Ib88dbb9eaef9cafa4a0e260fbbde73427a54046e Reviewed-on: https://chromium-review.googlesource.com/730686 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48820}
-
- 19 Oct, 2017 1 commit
-
-
Ross McIlroy authored
Moves the feedback vector slot allocation out of ast-numbering and into bytecode generation directly. This has a couple of benifits, including reduced AST size, avoid code duplication and reduced feedback vector sizes in many cases due to only allocating slots when needed. Also removes AstProperties since this is no longer needed. AstNumbering is now only used to allocate suspend ids for generators. BUG=v8:6921 Change-Id: I103e8593c94ef5b2e56c34ef4f77bd6e7d64796f Reviewed-on: https://chromium-review.googlesource.com/722959 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48757}
-
- 16 Oct, 2017 1 commit
-
-
Leszek Swirski authored
Bug: v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3294568a550b829b0ec90147a4cdaefe169bb7cb Reviewed-on: https://chromium-review.googlesource.com/718206Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#48587}
-
- 12 Sep, 2017 1 commit
-
-
Adam Klein authored
This continues to move the "desugaring" of unary operators further down the pipeline, in this case into the bytecode handlers for new bytecodes `Negate` and `BitwiseNot` and the corresponding TF code in BytecodeGraphBuilder. Bug: v8:6971 Tbr: yangguo@chromium.org Change-Id: If6b5d6b239a09ef8b4dbde49321614503c0f5beb Reviewed-on: https://chromium-review.googlesource.com/661146 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47980}
-
- 28 Aug, 2017 1 commit
-
-
Georg Neis authored
This reverts commit 1169f55b. Reason for revert: http://crbug.com/758994 Original change's description: > Remove obsolete kNumber binop feedback. > > With the removal of Crankshaft, kNumber has become obsolete as > BinaryOperationFeedback. Turbofan uses kNumberOrOddball. > > Bug: > Change-Id: If577f5efcc81d7c08f43908f2764ff0ec6f8747c > Reviewed-on: https://chromium-review.googlesource.com/628376 > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Mythri Alle <mythria@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47555} TBR=jkummerow@chromium.org,jarin@chromium.org,neis@chromium.org,mythria@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I1b33f572f3e6865e00d2468bffcce2ea466814b3 Reviewed-on: https://chromium-review.googlesource.com/637711Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#47642}
-
- 23 Aug, 2017 1 commit
-
-
Georg Neis authored
With the removal of Crankshaft, kNumber has become obsolete as BinaryOperationFeedback. Turbofan uses kNumberOrOddball. Bug: Change-Id: If577f5efcc81d7c08f43908f2764ff0ec6f8747c Reviewed-on: https://chromium-review.googlesource.com/628376Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#47555}
-
- 11 Aug, 2017 1 commit
-
-
Benedikt Meurer authored
For Divide operations like r = a / b where r has only truncated uses (i.e. only used in bitwise operations), we used to generate a Float64Div unless we statically knew something about a and b, even if a and b have always been integers so far. Crankshaft was able to generate an integer division here, because Fullcodegen collected feedback independently for inputs and outputs of binary operations. This adds new BinaryOperationFeedback::kSignedSmallInputs, which is used specifically for Divide to state that we have seen only SignedSmall inputs thus far, but the outputs weren't always in the SignedSmall range. The issue was discovered in a WebGL Triangulation library and reported via https://twitter.com/mourner/status/895708603117518848 after Node 8.3.0 was released with I+TF. R=jarin@chromium.org Bug: v8:6698 Change-Id: I830e421a3bf91fc8fa3665cbb706bc13675a6d2b Reviewed-on: https://chromium-review.googlesource.com/612063 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47302}
-
- 19 Jul, 2017 1 commit
-
-
Ross McIlroy authored
There remained a few of regressions and we didn't see any significant improvement in the real world with this turned on. This CL reverts all the StringConcat bytecode work which landed. BUG=v8:6243 Change-Id: I832eb72e880ad41411dbec8fe29f71ef0f2025c8 Reviewed-on: https://chromium-review.googlesource.com/575130 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46769}
-
- 13 Jul, 2017 1 commit
-
-
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}
-
- 10 Jul, 2017 1 commit
-
-
jgruber authored
This adds a convenience method for the common Smi to int conversion pattern. Bug: Change-Id: I7d7b171c36cfec5f6d10c60f1d9c3e06e3aed0fa Reviewed-on: https://chromium-review.googlesource.com/563205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46516}
-
- 30 Jun, 2017 1 commit
-
-
Mathias Bynens authored
The `FAST_` prefix doesn’t make much sense — they’re all just different cases with their own optimizations. Packedness being implicit (e.g. `FAST_ELEMENTS` vs. `FAST_HOLEY_ELEMENTS`) is not ideal, either. This patch renames the FAST elements kinds as follows: - e.g. FAST_ELEMENTS => PACKED_ELEMENTS - e.g. FAST_HOLEY_ELEMENTS => HOLEY_ELEMENTS The following exceptions are left intact, for lack of a better name: - FAST_SLOPPY_ARGUMENTS_ELEMENTS - SLOW_SLOPPY_ARGUMENTS_ELEMENTS - FAST_STRING_WRAPPER_ELEMENTS - SLOW_STRING_WRAPPER_ELEMENTS This makes it easier to reason about elements kinds, and less confusing to explain how they’re used. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie7c6bee85583c3d84b730f7aebbd70c1efa38af9 Reviewed-on: https://chromium-review.googlesource.com/556032Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46361}
-
- 08 Jun, 2017 1 commit
-
-
Ross McIlroy authored
Add the ability for the typer to track whether a string could be the empty string. This is needed for typed lowering of JSStringConcat since we can't create cons string chain with the empty string in arbitrary positions. The ToPrimitiveToString bytecode handler is modified to collect feedback on whether it has ever seen the empty string, which is used by SpeculativeToPrimitiveToString to ensure that the output is non-empty (or depot) which will subsiquently be used to enable inline cons-string creation for the JSStringConcat operator in typed lowering in a subsiquent CL. BUG=v8:6243 Change-Id: I41b99b59798993f756aada8cff90fb137d65ea52 Reviewed-on: https://chromium-review.googlesource.com/522122 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45786}
-
- 07 Jun, 2017 1 commit
-
-
Ross McIlroy authored
Adds support for Speculatively lower ToPrimitiveToString to CheckString where the type hint shows the value has always been a string. BUG=v8:6243 Change-Id: I7f36deb8c2bc309e6d0546e099c76ac518c6be09 Reviewed-on: https://chromium-review.googlesource.com/521123 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45760}
-
- 24 May, 2017 1 commit
-
-
Ross McIlroy authored
Rather than trying to pre-calculate the number of contexts required during scope analysis, instead just allocate context registers in the register allocator. This reduces frame size a bit due to reusing of registers when the context isn't pushed. BUG=v8:6322, chromium:716265 Change-Id: I145e38fcb3797a3b86c91e90ea9326a6e55b9b89 Reviewed-on: https://chromium-review.googlesource.com/514087Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45522}
-
- 22 May, 2017 2 commits
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
Ross McIlroy authored
Special cases addition expressions where one of the sides is known to be a string to enable chains of string additions to be transformed into a series of ToPrimitiveToString operations followed by a single string concatenation at the end of the chain of additions. This should avoid creating temporary strings for each of the string additions (in essence this is an automated string builder). BUG=v8:6243 Change-Id: I44977d6dad00ee906f251c4bd9cab27e160c09d1 Reviewed-on: https://chromium-review.googlesource.com/493966 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45453}
-
- 02 May, 2017 1 commit
-
-
Mythri authored
BytecodeRegisterOptimizer had special handling for the case when parameters is 0. This is not possible from valid javascript. It exists because some tests do not take this into account. Fixed tests and removed the special handling. Also removed a TODO, which is already done here: https://codereview.chromium.org/2227203002/ Bug: v8:4280,v8:6325 Change-Id: Idc17af12ad9292c13a6677aa4c8b88d21f4adf81 Reviewed-on: https://chromium-review.googlesource.com/490308 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45036}
-
- 11 Apr, 2017 2 commits
-
-
Leszek Swirski authored
Adds a collection of call bytecodes which have an implicit undefined receiver argument, for cases such as global calls where we know that the receiver has to be undefined. This way we can skip an LdaUndefined, decrease bytecode register pressure, and set a more accurate ConvertReceiverMode on the interpreter and TurboFan call. As a side effect, the "normal" Call bytecode now becomes a rare case (only with calls and super property calls), so we get rid of its 0-2 argument special cases and modify CallProperty[N] to use the NotNullOrUndefined ConvertReceiverMode. Reland of https://chromium-review.googlesource.com/c/463287 after fixing tests in https://codereview.chromium.org/2813873002. Change-Id: I314d69c7643ceec6a5750ffdab60dad38dad09e5 Reviewed-on: https://chromium-review.googlesource.com/474752Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#44582}
-
Michael Achenbach authored
This reverts commit 751e8935. Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/14885 See: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [ignition] Add call bytecodes for undefined receiver > > Adds a collection of call bytecodes which have an implicit undefined > receiver argument, for cases such as global calls where we know that the > receiver has to be undefined. This way we can skip an LdaUndefined, > decrease bytecode register pressure, and set a more accurate > ConvertReceiverMode on the interpreter and TurboFan call. > > As a side effect, the "normal" Call bytecode now becomes a rare case > (only with calls and super property calls), so we get rid of its 0-2 > argument special cases and modify CallProperty[N] to use the > NotNullOrUndefined ConvertReceiverMode. > > Change-Id: I9374a32fefd66fc0251b5193bae7a6b7dc31eefc > Reviewed-on: https://chromium-review.googlesource.com/463287 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44530} TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,leszeks@chromium.org,v8-reviews@googlegroups.com,v8-mips-ports@googlegroups.com,v8-ppc-ports@googlegroups.com,v8-x87-ports@googlegroups.com,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I7629dec609d0ec938ce7105d6c1c74884e5f9272 Reviewed-on: https://chromium-review.googlesource.com/474744 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44548}
-
- 10 Apr, 2017 1 commit
-
-
Leszek Swirski authored
Adds a collection of call bytecodes which have an implicit undefined receiver argument, for cases such as global calls where we know that the receiver has to be undefined. This way we can skip an LdaUndefined, decrease bytecode register pressure, and set a more accurate ConvertReceiverMode on the interpreter and TurboFan call. As a side effect, the "normal" Call bytecode now becomes a rare case (only with calls and super property calls), so we get rid of its 0-2 argument special cases and modify CallProperty[N] to use the NotNullOrUndefined ConvertReceiverMode. Change-Id: I9374a32fefd66fc0251b5193bae7a6b7dc31eefc Reviewed-on: https://chromium-review.googlesource.com/463287 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44530}
-
- 05 Apr, 2017 1 commit
-
-
Ross McIlroy authored
Move the ToBoolean elision in the BytecodeGenerator instead of the peephole optimizer. Adds a TypeHint mechanism to the ExpressionResult to enable passing of type hints through the ast visitor. BUG=v8:6194 Change-Id: Ic55506ba11b213f7459250004d3f18cab04ee9b3 Reviewed-on: https://chromium-review.googlesource.com/467208 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#44415}
-
- 30 Mar, 2017 1 commit
-
-
Franziska Hinkelmann authored
The parameter indices are shifted by 1 in BytecodeArrayBuilder because the receiver is variable at index 0 and not -1. Split BytecodeArrayBuilder::Parameter(index) method into Receiver() (same as Parameter(-1)) and Parameter(index). This way we avoid confusing (index+1) counting in BytecodeGenerator(). BUG= Change-Id: Id87ec7c708cecfc3108011994f3177f483772bcc Reviewed-on: https://chromium-review.googlesource.com/461904Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#44262}
-
- 29 Mar, 2017 1 commit
-
-
Mythri authored
Compare bytecode handlers does several checks to collect feedback and repeats these checks when actually performing the operation. This cl changes it perform the actual comparison for smi / number along with collecting feedback. BUG=v8:4280 Change-Id: If0954b68dd232461e08e94a90ccc17604c235b27 Reviewed-on: https://chromium-review.googlesource.com/458420 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#44216}
-
- 22 Mar, 2017 1 commit
-
-
Mythri authored
Some of the StrictEquality comparisons do not require feedback (for ex: in try-finally, generators). This cl introduces StrictEqualityNoFeedback bytecode to be used in such cases. With this change, we no longer have to check if the type feedback slot is valid in compare bytecode handlers. This is the first step in reworking the compare bytecode handler to avoid duplicate checks when collecting feedback and when performing the operation. BUG=v8:4280 Change-Id: Ia650fd43c0466b8625d3ce98c39ed1073ba42a6b Reviewed-on: https://chromium-review.googlesource.com/455778 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#44020}
-
- 17 Mar, 2017 1 commit
-
-
jgruber authored
Default to the chromium-internal build config (instead of the more permissive no_chromium_code config). BUG=v8:5878 Review-Url: https://codereview.chromium.org/2758563002 Cr-Commit-Position: refs/heads/master@{#43909}
-
- 15 Mar, 2017 1 commit
-
-
Ross McIlroy authored
Adds a TestTypeof bytecode to deal with comparisons of the form: typeof(object) === 'string'; Also adds support to Turbofan to perform these comparisons without inserting checkpoints. BUG=v8:4280,v8:5267 Change-Id: Ib5cc1c6816dfe70a4120838d8eada2fc0267750f Reviewed-on: https://chromium-review.googlesource.com/454837Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43832}
-
- 07 Mar, 2017 1 commit
-
-
Michael Starzinger authored
The parser already changes all negative equality comparison operations to their positive pendants in {ParserBase::ParseBinaryExpression}. No other source of the Token::NE exists in the system. We can remove all handling from the compiler and interpreter backends. R=bmeurer@chromium.org Change-Id: I58722c08dd8e498f20c65886fce86b8172737b10 Reviewed-on: https://chromium-review.googlesource.com/449716Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43627}
-
- 10 Feb, 2017 1 commit
-
-
Leszek Swirski authored
Removes handles from bytecode generation, instead storing un-internalized AstValues (and other, similar values such as Scopes and AstRawStrings) in the constant array builder. This will allow us in the future to generate the bytecode before internalizing the AST. BUG=v8:5832 Change-Id: I3b8be8f7329a484eb1e5d12808b001d3475239da Reviewed-on: https://chromium-review.googlesource.com/439326 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43115}
-