- 19 Mar, 2019 1 commit
-
-
Benedikt Meurer authored
This change significantly improves the performance of string concatenation in optimized code for the case where the resulting string is represented as a ConsString. On the relevant test cases we go from serializeNaive: 10762 ms. serializeClever: 7813 ms. serializeConcat: 10271 ms. to serializeNaive: 10278 ms. serializeClever: 5533 ms. serializeConcat: 10310 ms. which represents a 30% improvement on the "clever" benchmark, which tests specifically the ConsString creation performance. This was accomplished via a couple of different steps, which are briefly outlined here: 1. The empty_string gets its own map, so that we can easily recognize and handle it appropriately in the TurboFan type system. This allows us to express (and assert) that the inputs to NewConsString are non-empty strings, making sure that TurboFan no longer creates "crippled ConsStrings" with empty left or right hand sides. 2. Further split the existing String types in TurboFan to be able to distinguish between OneByte and TwoByte strings on the type system level. This allows us to avoid having to dynamically lookup the resulting ConsString map in case of ConsString creation (i.e. when we know that both input strings are OneByte strings or at least one of the input strings is TwoByte). 3. We also introduced more finegrained feedback for the Add bytecode in the interpreter, having it collect feedback about ConsStrings, specifically ConsOneByteString and ConsTwoByteString. This feedback can be used by TurboFan to only inline the relevant code for what was seen so far. This allows us to remove the Octane/Splay specific magic in JSTypedLowering to detect ConsString creation, and instead purely rely on the feedback of what was seen so far (also making it possible to change the semantics of NewConsString to be a low-level operator, which is only introduced in SimplifiedLowering by looking at the input types of StringConcat). 4. On top of the before mentioned type and interpreter changes we added new operators CheckNonEmptyString, CheckNonEmptyOneByteString, and CheckNonEmptyTwoByteString, which perform the appropriate (dynamic) checks. There are several more improvements that are possible based on this, but since the change was already quite big, we decided not to put everything into the first change, but do some follow up tweaks to the type system, and builtin optimizations later. Tbr: mstarzinger@chromium.org Bug: v8:8834, v8:8931, v8:8939, v8:8951 Change-Id: Ia24e17c6048bf2b04df966d3cd441f0edda05c93 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Doc: https://bit.ly/fast-string-concatenation-in-javascript Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499497 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60318}
-
- 07 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Some windows toolchains contain a macro name 'FormatMessage', making compilation fail, see e.g. https://ci.chromium.org/p/v8/builders/try/v8_win64_msvc_compile_rel/b8919741418899023808. Hence rename {MessageFormatter::FormatMessage} to {MessageFormatter::Format}. R=sigurds@chromium.org Change-Id: I51bd444838be2449bbe848aa0f7f85d73a0a713b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505456Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60098}
-
- 15 Feb, 2019 1 commit
-
-
Jakob Kummerow authored
This takes heap-inl.h out of the "Giant Include Cluster". Naturally, that means adding a bunch of explicit includes in a bunch of places that relied on transitively including them before. As of this patch, no header file outside src/heap/ includes heap-inl.h. Bug: v8:8562,v8:8499 Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4 Reviewed-on: https://chromium-review.googlesource.com/c/1459659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59617}
-
- 12 Feb, 2019 1 commit
-
-
Ulan Degenbaev authored
Most of the users of InNewSpace actually mean InYoungGeneration. Subsequent CL will remove InNewSpace to avoid confusion. Bug: chromium:852420 Tbr: mlippautz@chromium.org Change-Id: I6234d162d51c215787972e7ada1cd5b804b60fda Reviewed-on: https://chromium-review.googlesource.com/c/1463521Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59523}
-
- 18 Dec, 2018 1 commit
-
-
Yang Guo authored
Since we always flatten the string upfront, we don't need to implement the the UTF8 conversion as a string visitor anymore. R=petermarshall@chromium.org Bug: v8:6780, v8:8605 Change-Id: I27946551d7c3742f47ac36d5c909c19a7f2b0371 Reviewed-on: https://chromium-review.googlesource.com/c/1371828 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58312}
-
- 11 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
and non-recursive in order to let Clang inline it. Bonus: Drop IsTwoByteRepresentationUnderneath, which was dead code except for one test, and is semantically redundant. Bug: chromium:910573 Change-Id: I86f1c312e93ab875b4b42101ac65ddc94b1c9518 Reviewed-on: https://chromium-review.googlesource.com/c/1369086Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58171}
-
- 04 Dec, 2018 1 commit
-
-
Mike Stanton authored
Building on https://chromium-review.googlesource.com/c/v8/v8/+/1349243, which asserted on calls to GetChars() that weren't in a DisallowHeapAllocation scope, this CL takes a reference to the scope in order to provide static protection in all builds. Bug: v8:8238 Change-Id: I481a1dbbd3ae57eb35c5f828c5e242691635be27 Reviewed-on: https://chromium-review.googlesource.com/c/1354038Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#58022}
-
- 27 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I4da6404aa968adca1fbb49029fc304622101d6c3 Reviewed-on: https://chromium-review.googlesource.com/c/1349112 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57853}
-
- 26 Nov, 2018 1 commit
-
-
Mike Stanton authored
R=jkummerow@chromium.org Bug: v8:8238 Change-Id: Ie28326ebe6c69e194857aed7b5d49cb8e5a40a29 Reviewed-on: https://chromium-review.googlesource.com/c/1349243Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#57821}
-
- 11 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
The primary purpose of this is to untangle a circular dependency objects.h -> handles.h -> objects.h. Most compilation units only need message-template.h, without the rest of messages.h. Bonus: change the enum to an enum class for improved type safety. Bug: v8:3770 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8102c55197a450811de2588a68a08e7f99ea6b9e Reviewed-on: https://chromium-review.googlesource.com/c/1272193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56583}
-
- 03 Oct, 2018 1 commit
-
-
Mathias Bynens authored
The proposal is currently at Stage 3 of the TC39 process. Repository: https://github.com/tc39/proposal-well-formed-stringify Bug: v8:7782 Change-Id: Ice2125ffd3dbc5381c81193eb64d460e0d5485cd Reviewed-on: https://chromium-review.googlesource.com/c/1255728Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#56349}
-
- 02 Oct, 2018 1 commit
-
-
Ulan Degenbaev authored
Bug: chromium:876759 Change-Id: I9ea3c84b477e03f96cbef79a4a0b546a53a674ce Reviewed-on: https://chromium-review.googlesource.com/1256771Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56339}
-
- 17 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I6bd8e0c8c1965f22a3429fda12bc70ae454c39c2 Reviewed-on: https://chromium-review.googlesource.com/1226978Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55930}
-
- 14 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I4236a2cf85a414f9d7d1fbdaaaaf1c72a84f02e3 Reviewed-on: https://chromium-review.googlesource.com/1224093Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55912}
-
- 31 Jul, 2018 1 commit
-
-
Dan Elphick authored
This new method only compares Strings and so doesn't need a Context. It also can't throw so it returns bool. Can be used in place of the deprecated Equals method and many Equals call currently taking a Context. Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I4cfe7747aa140e5a55d9513681ee4704414e1545 Reviewed-on: https://chromium-review.googlesource.com/1151321 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54812}
-
- 26 Jul, 2018 1 commit
-
-
Rodrigo Bruno authored
This CL depends on Reland^2 "Avoiding re-externalization of strings" (Idb1b6d1b29499f66bf8cd704977c40b027f99dbd).. Previously landed as Ied341ec6268000343d2a577b22f2a483460b01f5 and I3fe2b294f6e038d77787cf0870d244ba7cc20550 Previously reviewed at https://chromium-review.googlesource.com/1121736 and https://chromium-review.googlesource.com/1118164 Bug: chromium:845409 Change-Id: Ied50bbcaa22a90ecaf15dca19dbc9aaec1737223 Reviewed-on: https://chromium-review.googlesource.com/1147227Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Rodrigo Bruno <rfbpb@google.com> Cr-Commit-Position: refs/heads/master@{#54712}
-
- 23 Jul, 2018 2 commits
-
-
Stephan Herhut authored
api.h had an implicit dependency on objects-inl.h. Bug: v8:7490 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I56ef7abefed7205bdbff2aa5f451f1a843bef9f9 Reviewed-on: https://chromium-review.googlesource.com/1145191Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#54616}
-
Ross Mcilroy authored
Replace with isolate version. BUG=v8:7754 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Iac7091b983960d22b892074c5fd0a97dee9025c9 Reviewed-on: https://chromium-review.googlesource.com/1146332 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54604}
-
- 18 Jul, 2018 1 commit
-
-
Dan Elphick authored
Strictly speaking there are some left in api.cc, but they are in deprecated functions with non-deprecated alternatives. Apart from changes made using tooling, this also modifies FieldType::AsClass to return Map* rather than Handle<Map> and converts its call sites to create the Handle when they need it - currently several sites immediately dereference the Handle. Also marks WasmDebugInfo as NeverReadOnlySpaceObject so GetIsolate and GetHeap remain usable. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I7ea5048f97f140c757f651712b8c33a5c7e0ebc1 Reviewed-on: https://chromium-review.googlesource.com/1140302Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54513}
-
- 16 Jul, 2018 1 commit
-
-
Dan Elphick authored
Deprecate String::Utf8Length in favor of a new, similar function that takes the Isolate used for the String::Flatten call as an argument. BUG: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Icaf04b272679fd853e9cdbe6c7088f63e9aacb95 Reviewed-on: https://chromium-review.googlesource.com/1124724 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54476}
-
- 13 Jul, 2018 1 commit
-
-
Michael Lippautz authored
This reverts commit 7bff339e. Reason for revert: Breaks autoroll, see bug. Bug: v8:7944 Original change's description: > Reland "[heap] Added External Strings to external memory accounting." > > This is a reland of 5863c0b6 > > Original change's description: > > [heap] Added External Strings to external memory accounting. > > > > Bug: chromium:845409 > > Change-Id: I3fe2b294f6e038d77787cf0870d244ba7cc20550 > > Reviewed-on: https://chromium-review.googlesource.com/1118164 > > Commit-Queue: Rodrigo Bruno <rfbpb@google.com> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#54110} > > Bug: chromium:845409 > Change-Id: Ied341ec6268000343d2a577b22f2a483460b01f5 > Reviewed-on: https://chromium-review.googlesource.com/1121736 > Commit-Queue: Rodrigo Bruno <rfbpb@google.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54410} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,petermarshall@chromium.org,rfbpb@google.com Change-Id: Ie55586e84f44a2d83c7f97110d60abb86f0730c5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:845409 Reviewed-on: https://chromium-review.googlesource.com/1136312Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#54428}
-
- 12 Jul, 2018 2 commits
-
-
Rodrigo Bruno authored
This is a reland of 5863c0b6 Original change's description: > [heap] Added External Strings to external memory accounting. > > Bug: chromium:845409 > Change-Id: I3fe2b294f6e038d77787cf0870d244ba7cc20550 > Reviewed-on: https://chromium-review.googlesource.com/1118164 > Commit-Queue: Rodrigo Bruno <rfbpb@google.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54110} Bug: chromium:845409 Change-Id: Ied341ec6268000343d2a577b22f2a483460b01f5 Reviewed-on: https://chromium-review.googlesource.com/1121736 Commit-Queue: Rodrigo Bruno <rfbpb@google.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54410}
-
Dan Elphick authored
Uses Heap::FromWritableHeapObject where the object must be mutable and otherwise pass Isolate in. String and subclasses should now be free of GetIsolate/GetHeap. Bug: v8:7786 Change-Id: Ic9d55250ea4afebbebda87be9415ccdaa4fc8779 Reviewed-on: https://chromium-review.googlesource.com/1131736Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54395}
-
- 10 Jul, 2018 1 commit
-
-
Dan Elphick authored
Heap::InNewSpace only needs to access the heap for a DCHECK and the part that uses the heap only needs it if the object is in NEW_SPACE, in which case getting it via pointer magic is fine. Bug: v8:7786 Change-Id: Iaac237a3b8bcc9d55e436e3f972475e04b97f1f8 Reviewed-on: https://chromium-review.googlesource.com/1127798 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54345}
-
- 04 Jul, 2018 2 commits
-
-
Rodrigo Bruno authored
Bug: chromium:845409 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2ab1ca18a900828e4e116f1b087925319d41bf97 Reviewed-on: https://chromium-review.googlesource.com/1124845Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Rodrigo Bruno <rfbpb@google.com> Cr-Commit-Position: refs/heads/master@{#54203}
-
Dan Elphick authored
In future the RO_SPACE root accessors in Heap will become private, so instead convert them all to use ReadOnlyRoots. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2f2c031c03d56d360ef940fc925e0583e6ae31dc Reviewed-on: https://chromium-review.googlesource.com/1125720Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54202}
-
- 21 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I98ac4de406630c14280927240e9471049af3e790 Reviewed-on: https://chromium-review.googlesource.com/1108118Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#53920}
-
- 09 May, 2018 1 commit
-
-
Dan Elphick authored
This is a reland of 40f1aaf3 Put back padding clearing into the SerializeObject method but only when the String is not in RO_SPACE. For RO_SPACE strings, if required iterate over the space before serialization clearing the strings. Original change's description: > [heap] Mark RO_SPACE as read-only after deserialization > > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter > is only usable with ReadOnlySpace::WritableScope to avoid the space > being left writable). MarkAsReadOnly updates the high water mark and > makes several previously mutating methods into no-ops. > > Moves some writes to immutable objects out of the bootstrapper to > setup-heap-internal so they don't write to a read-only page. > > Also avoid writing hashes to strings that already have the value set as > that invariably means writing to the "0" and "1" constant strings in > RO_SPACE. > > Before serialization, it makes RO_SPACE writable again so that any > padding can be cleared before writing it. > > Bug: v8:7464 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3 > Reviewed-on: https://chromium-review.googlesource.com/1014128 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52943} Bug: v8:7464 Change-Id: Ia8386c4ff5f5df3207f584caf7a9b1ff1e405f25 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1042145Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#53087}
-
- 03 May, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 40f1aaf3. Reason for revert: https://luci-milo.appspot.com/buildbot/client.v8/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/21000 Original change's description: > [heap] Mark RO_SPACE as read-only after deserialization > > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter > is only usable with ReadOnlySpace::WritableScope to avoid the space > being left writable). MarkAsReadOnly updates the high water mark and > makes several previously mutating methods into no-ops. > > Moves some writes to immutable objects out of the bootstrapper to > setup-heap-internal so they don't write to a read-only page. > > Also avoid writing hashes to strings that already have the value set as > that invariably means writing to the "0" and "1" constant strings in > RO_SPACE. > > Before serialization, it makes RO_SPACE writable again so that any > padding can be cleared before writing it. > > Bug: v8:7464 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3 > Reviewed-on: https://chromium-review.googlesource.com/1014128 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52943} TBR=yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org Change-Id: Id4770c0fdb21cd9eea2f62a019f44a6bdea8f0a7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7464 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1041948Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52944}
-
Dan Elphick authored
Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter is only usable with ReadOnlySpace::WritableScope to avoid the space being left writable). MarkAsReadOnly updates the high water mark and makes several previously mutating methods into no-ops. Moves some writes to immutable objects out of the bootstrapper to setup-heap-internal so they don't write to a read-only page. Also avoid writing hashes to strings that already have the value set as that invariably means writing to the "0" and "1" constant strings in RO_SPACE. Before serialization, it makes RO_SPACE writable again so that any padding can be cleared before writing it. Bug: v8:7464 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3 Reviewed-on: https://chromium-review.googlesource.com/1014128 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52943}
-
- 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}
-
- 18 Apr, 2018 1 commit
-
-
Leszek Swirski authored
Since external strings are used for things like source strings, we should tenure them from creation. Change-Id: I226ab9036836d76d8c17ed168ad97d7f0f824278 Reviewed-on: https://chromium-review.googlesource.com/1006961 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52677}
-
- 09 Apr, 2018 2 commits
-
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Original review: https://chromium-review.googlesource.com/c/v8/v8/+/959533 Originally landed as r52416 / f9a2e24b Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Id072cbe6b3ed30afd339c7e502844b99ca12a647 Reviewed-on: https://chromium-review.googlesource.com/1000540 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52492}
-
Michael Lippautz authored
gn flag: v8_enable_minor_mc The default is 'true' until infra is updated to be able to build and test with it using this flag. Bug: v8:7638 Change-Id: I7946eb9bf4087c528d1a844b156a726a1c0671bf Reviewed-on: https://chromium-review.googlesource.com/1000777 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52485}
-
- 06 Apr, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit f9a2e24b. Reason for revert: gc stress failures not all fixed by follow up. Original change's description: > [cleanup] Refactor the Factory > > There is no good reason to have the meat of most objects' initialization > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, > this CL changes the protocol between Heap and Factory to be AllocateRaw, > and all object initialization work after (possibly retried) successful > raw allocation happens in the Factory. > > This saves about 20KB of binary size on x64. > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca > Reviewed-on: https://chromium-review.googlesource.com/959533 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52416} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52420}
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca Reviewed-on: https://chromium-review.googlesource.com/959533 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52416}
-
- 20 Feb, 2018 1 commit
-
-
Justin Ridgewell authored
Too many files know how to deal with decoding, counting, and splitting UTF-8 into uc16 chars. This consolidates several callers who deal with full (Vector<char>, not streaming) bytes by using a UTF-8 Iterator to decode bytes into individual uc16 chars. R=marja@chromium.org Bug: Change-Id: Ia36df3e8c1abd0398415ad23a474557c71c19a01 Reviewed-on: https://chromium-review.googlesource.com/831093Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Justin Ridgewell <jridgewell@google.com> Cr-Commit-Position: refs/heads/master@{#51405}
-
- 13 Feb, 2018 1 commit
-
-
Sigurd Schneider authored
This is a reland of 6d5b54df82e27a82811a836dcdbbfe26829f0e6d Original change's description: > [cleanup] Harden the SubString CSA/Runtime implementations. > > Remove the self-healing for invalid parameters in the > CodeStubAssembler::SubString helper and the %SubString runtime function, > which is used as a fallback for the CodeStubAssembler implementation. > All call sites must do appropriate parameter validation anyways now that > the self-hosted JavaScript builtins using these helpers are gone, and we > have proper contracts with the uses. > > Also remove the context parameter from the CodeStubAssembler::SubString > method, which is unnecessary, since this can no longer throw an > exception. > > Bug: v8:5269, v8:6936, v8:7109, v8:7137 > Change-Id: I19d93bad5f41faa0561c4561a48f78fcba99a549 > Reviewed-on: https://chromium-review.googlesource.com/795720 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49702} Bug: v8:5269, v8:6936, v8:7109, v8:7137 Change-Id: I5e84998a2dd3990d7981505b401ffc770e0b7ac5 Reviewed-on: https://chromium-review.googlesource.com/913130Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#51265}
-
- 06 Feb, 2018 1 commit
-
-
Yang Guo authored
Bug: v8:6703 Change-Id: I225cd78bedf2c0c123aedd3deeb1cd6d442f7697 Reviewed-on: https://chromium-review.googlesource.com/901522Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#51114}
-