- 03 Aug, 2017 4 commits
-
-
Jakob Gruber authored
This reverts commit 062bb7d4. Reason for revert: <INSERT REASONING HERE> Original change's description: > [regexp] Limit ATOM regexps to single-character patterns > > There's an inherent trade-off when deciding between ATOM and IRREGEXP > regexps: IRREGEXP is faster at runtime for all but trivial single-character > patterns, while ATOM regexps have a lower memory overhead. > > This CL is intended to help investigate impact on benchmarks and real-world > code - if something tanks, it's easy to revert, otherwise it can be a first > step towards a possible removal of ATOM regexps. > > Bug: v8:6633 > Change-Id: Ia41d8eb28d33952735562d3d4127202746a6ac4e > Reviewed-on: https://chromium-review.googlesource.com/589435 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47081} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: I8655bc4055af5d593f507e16918b434ff45f5379 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6633 Reviewed-on: https://chromium-review.googlesource.com/599547Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47106}
-
Benedikt Meurer authored
Previously TryToName bailed out for Oddball keys (i.e. when passing true or false as the key), which meant that for example the generic KeyedLoadIC would always bail out to the %KeyedGetProperty runtime function. But handling Oddball keys is fairly easy, since every oddball value carries it's unique string representation. Adding just this case to the CodeStubAssembler::TryToName method boosts this simple micro-benchmark by a factor of 4x: const n = 1e7; const obj = {}; const key = true; console.time('foo'); for (let i = 0; i < n; ++i) { if (obj[key] === undefined) { obj[key] = key; } } console.timeEnd('foo'); It also shows on the ARES-6 ML benchmark and on several Speedometer tests, where objects are being used as dictionaries and the developers rely on the implicit ToString conversions on the property accesses. In the ARES-6 ML benchmark, the number of calls to %KeyedGetProperty is reduced by 137,758. Bug: v8:6278, v8:6344, v8:6670 Change-Id: Iaa965e30be4c247682a67ec09543655df9b761d2 Reviewed-on: https://chromium-review.googlesource.com/599527Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47105}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/c15e746..6a89d4e Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/3ec5781..c8c5d6b Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/b18e402..ec00334 TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I8897f39489ce90bc0fa99b3e6294f5f262f48427 Reviewed-on: https://chromium-review.googlesource.com/599455Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#47104}
-
Alexey Kozyatinskiy authored
It's important in multi-session case, each agent should cleanup own breakpoints on disabled. R=dgozman@chromium.org Bug: none Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I1b2182aa01e74c7e9f36addf998c779d1d32feef Reviewed-on: https://chromium-review.googlesource.com/594272 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#47103}
-
- 02 Aug, 2017 36 commits
-
-
Deepti Gandluri authored
- Decode logic for atomic operations - Implementations for I32AtomicAdd, I32AtomicAdd8U, I32AtomicAdd16U, I32AtomicSub, I32AtomicSub8U, I32AtomicSub16U - cctest value helpers for Uint16/Uint8 types R=binji@chromium.org, bbudge@chromium.org, bradnelson@chromium.org BUG=v8:6532 Change-Id: I710ee8ef566c5e33866afdf5b47375c2ea6fdbe6 Reviewed-on: https://chromium-review.googlesource.com/595241Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#47102}
-
Ulan Degenbaev authored
Bug: chromium:751825 No-Tree-Checks: true Change-Id: I8e9e5c030dca001a8dc881d8fdeefa5c140f3792 Reviewed-on: https://chromium-review.googlesource.com/599047Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47101}
-
Karl Schimpf authored
This is a reland of 470a1001 Original change's description: > Start migration of try/throw/catch to match proposal. > > This CL does the first baby steps on moving the current (experimental) > exception handling to match that of the WebAssembly proposal. > > It does the following: > > 1) Use exception tags instead of integers. > > 2) Only handle empty exception signatures (i.e. no values associated > with the exception tag. > > 3) Only handle one catch clause. > > 4) Be sure to rethrow the exception if the exception tag does not match. > > Note: There are many things that need to be fixed, and are too > numerous to list here. However, the code should have TODO's on each > missing parts of the implementation. > > Also note that the code currently doesn't handle nested catch blocks, > nor does it change the throw value being an integer. Rather, the > integer value is still being thrown, and currently is the exception > tag. Therefore, we don't build an exception object. This is the reason > why this CL doesn't handle exceptions that pass values. > > Also, the current implementation still can't handle multiple modules > because tag resolution (between) modules has not be implemented yet. > > Bug: v8:6577 > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114 > Reviewed-on: https://chromium-review.googlesource.com/591910 > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Commit-Queue: Karl Schimpf <kschimpf@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47087} Bug: v8:6577 Change-Id: I41c3309827c292cb787681a95aaef7cf9b931835 Reviewed-on: https://chromium-review.googlesource.com/598968Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#47100}
-
Jeremy Roman authored
There is an API check failure if values larger than i::Smi::kMaxValue are provided, but it is inconvenient for API users to know what this value is (and SIZE_MAX and INT_MAX are both incorrect). This is analogous to v8::String::kMaxLength. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Bug: chromium:750788 Change-Id: Ic3e0da62aeacfeb996122595232aa0ea8744517e Reviewed-on: https://chromium-review.googlesource.com/594677Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jeremy Roman <jbroman@chromium.org> Cr-Commit-Position: refs/heads/master@{#47099}
-
Adam Klein authored
This behavior has been staged successfully without a bug report, and has been shipped in the latest versions of Firefox and Safari. Bug: v8:5070 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I084cae2cc303d6a213bd6789297b91656e162d6b Reviewed-on: https://chromium-review.googlesource.com/595129Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47098}
-
Alexey Kozyatinskiy authored
If objectGroup is console we should correctly save last evaluated result to expose for next console call in $_ variable. R=dgozman@chromium.org Bug: none Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ie0ba2d302606b1c9f096a9a3a107a51a80556c49 Reviewed-on: https://chromium-review.googlesource.com/598936Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47097}
-
Junliang Yan authored
both arches don't support push anything to stack except registers R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com Bug: Change-Id: I5682fc1634bc66c8aa28889abe5b977092b004f6 Reviewed-on: https://chromium-review.googlesource.com/598644Reviewed-by: Jaideep Bajwa <bjaideep@ca.ibm.com> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#47096}
-
Jaideep Bajwa authored
Port 266be35b Minor fix to the original CL. R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I10a4d64aa010118b669374e604fe8ed0104ec77f Reviewed-on: https://chromium-review.googlesource.com/598808Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#47095}
-
Ulan Degenbaev authored
This reverts commit 35c923cc. Reason for revert: speculative revert for GC stress failure Original change's description: > [heap] Add support for atomic access to page flags. > > This patch renames AsAtomicWord to AsAtomicPointer and > adds new AsAtomicWord that works with intptr_t. > > Slot recording uses atomic page flag accessors. > > BUG=chromium:694255 > > Change-Id: I1c692813244b41320182e9eea50462d1802fcd98 > Reviewed-on: https://chromium-review.googlesource.com/597688 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47086} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Id77ce7970c54a55646c072787e88311f6f3e6e91 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:694255 Reviewed-on: https://chromium-review.googlesource.com/598967Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47094}
-
Michael Achenbach authored
This reverts commit 470a1001. Reason for revert: Speculative: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/14520 Also flaked later: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/11953 Original change's description: > Start migration of try/throw/catch to match proposal. > > This CL does the first baby steps on moving the current (experimental) > exception handling to match that of the WebAssembly proposal. > > It does the following: > > 1) Use exception tags instead of integers. > > 2) Only handle empty exception signatures (i.e. no values associated > with the exception tag. > > 3) Only handle one catch clause. > > 4) Be sure to rethrow the exception if the exception tag does not match. > > Note: There are many things that need to be fixed, and are too > numerous to list here. However, the code should have TODO's on each > missing parts of the implementation. > > Also note that the code currently doesn't handle nested catch blocks, > nor does it change the throw value being an integer. Rather, the > integer value is still being thrown, and currently is the exception > tag. Therefore, we don't build an exception object. This is the reason > why this CL doesn't handle exceptions that pass values. > > Also, the current implementation still can't handle multiple modules > because tag resolution (between) modules has not be implemented yet. > > Bug: v8:6577 > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114 > Reviewed-on: https://chromium-review.googlesource.com/591910 > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Commit-Queue: Karl Schimpf <kschimpf@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47087} TBR=bradnelson@chromium.org,eholk@chromium.org,kschimpf@chromium.org Change-Id: I91709105fb066c08b43766b0bc76db8a3af5c9d9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6577 Reviewed-on: https://chromium-review.googlesource.com/598947Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#47093}
-
Jaideep Bajwa authored
Port 895c3219 Original Commit Message: Replacing pc with trampoline on stack This CL is the follow up of https://chromium-review.googlesource.com/c/586707/ which used to crash when running the gc-stress bots. It seems to be working now. We now keep the trampoline PC in the Safepoint table and use that information to find SafepointEntries. There's some refactoring that can be done, such as changing the code for exceptions in a similar way and removing the trampoline from the DeoptimizationInputData. Will take care of this in the next CL. R=jupvfranco@google.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I9871d110dcf7e390cf5fb2819ae1fa159c58ae84 Reviewed-on: https://chromium-review.googlesource.com/598768 Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#47092}
-
Alexey Kozyatinskiy authored
My goal was to move breakpoint API to native with minimal changes around, so on inspector side we use v8::debug::BreakpointId instead of String16, on v8::internal::Debug we use i::BreakPoint object instead of break point object created inside of debug.js. There are a lot of opportunities how we can improve breakpoints (at least we can avoid some of linear lookups to speedup implementation) but I think that as first step we need to remove mirrors/debug.js APIs. Drive by: debugger-script.js and usage of debugger context in inspector code base. R=yangguo@chromium.org,jgruber@chromium.org,clemensh@chromium.org Bug: v8:5510,chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0b17972c39053dd4989bbe26db2bb0b88ca378f7 Reviewed-on: https://chromium-review.googlesource.com/593156Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47091}
-
Ulan Degenbaev authored
This reverts commit 470a1001. Reason for revert: GC stress bot failures. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/14522 Original change's description: > Start migration of try/throw/catch to match proposal. > > This CL does the first baby steps on moving the current (experimental) > exception handling to match that of the WebAssembly proposal. > > It does the following: > > 1) Use exception tags instead of integers. > > 2) Only handle empty exception signatures (i.e. no values associated > with the exception tag. > > 3) Only handle one catch clause. > > 4) Be sure to rethrow the exception if the exception tag does not match. > > Note: There are many things that need to be fixed, and are too > numerous to list here. However, the code should have TODO's on each > missing parts of the implementation. > > Also note that the code currently doesn't handle nested catch blocks, > nor does it change the throw value being an integer. Rather, the > integer value is still being thrown, and currently is the exception > tag. Therefore, we don't build an exception object. This is the reason > why this CL doesn't handle exceptions that pass values. > > Also, the current implementation still can't handle multiple modules > because tag resolution (between) modules has not be implemented yet. > > Bug: v8:6577 > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114 > Reviewed-on: https://chromium-review.googlesource.com/591910 > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Commit-Queue: Karl Schimpf <kschimpf@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47087} TBR=bradnelson@chromium.org,eholk@chromium.org,kschimpf@chromium.org Change-Id: I01dc8c40cc1057333a988c1d275ce5f457b0cb64 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6577 Reviewed-on: https://chromium-review.googlesource.com/598847Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47090}
-
Michael Lippautz authored
Use separate visitors for roots visitation: - A general RootVisitor for all regular roots - An ObjectVisitor that is able to process contents of the string table and code hanging of the top optimized frame Bug: chromium:750084 Change-Id: I21aaa18760dede8a9419de2890a47c6dcf7efa3b Reviewed-on: https://chromium-review.googlesource.com/598239Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47089}
-
Deepti Gandluri authored
R=ahaas@chromium.org BUG=v8:6546 Change-Id: I2808b78cd047d875d4530c86cc079488a78e5ea1 Reviewed-on: https://chromium-review.googlesource.com/557355 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#47088}
-
Karl Schimpf authored
This CL does the first baby steps on moving the current (experimental) exception handling to match that of the WebAssembly proposal. It does the following: 1) Use exception tags instead of integers. 2) Only handle empty exception signatures (i.e. no values associated with the exception tag. 3) Only handle one catch clause. 4) Be sure to rethrow the exception if the exception tag does not match. Note: There are many things that need to be fixed, and are too numerous to list here. However, the code should have TODO's on each missing parts of the implementation. Also note that the code currently doesn't handle nested catch blocks, nor does it change the throw value being an integer. Rather, the integer value is still being thrown, and currently is the exception tag. Therefore, we don't build an exception object. This is the reason why this CL doesn't handle exceptions that pass values. Also, the current implementation still can't handle multiple modules because tag resolution (between) modules has not be implemented yet. Bug: v8:6577 Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114 Reviewed-on: https://chromium-review.googlesource.com/591910Reviewed-by: Brad Nelson <bradnelson@chromium.org> Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Cr-Commit-Position: refs/heads/master@{#47087}
-
Ulan Degenbaev authored
This patch renames AsAtomicWord to AsAtomicPointer and adds new AsAtomicWord that works with intptr_t. Slot recording uses atomic page flag accessors. BUG=chromium:694255 Change-Id: I1c692813244b41320182e9eea50462d1802fcd98 Reviewed-on: https://chromium-review.googlesource.com/597688 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47086}
-
Michael Lippautz authored
They were only limited to 32 bit when using the internal Hashmap. Since this has changed alreay some time ago, we can switch to 64 bit ids and check that we never overflow. Bug: Change-Id: Ia6c6d02d6b5e555c6941185a79427dc4aa2a1d62 Reviewed-on: https://chromium-review.googlesource.com/598229 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47085}
-
Ulan Degenbaev authored
This reverts commit 0a9d5150. Reason for revert: another gc-stress failure Original change's description: > Reland^2 "[heap] Add mechanism for tracking invalidated slots per memory chunk." > > This reverts commit 6fde541d. > > Bug: chromium:694255 > Change-Id: I4670d0de3d2749afbb3bdb8dc5418822a885330c > Reviewed-on: https://chromium-review.googlesource.com/597850 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47083} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Iaabf4586e0297dccb1ab4ef180b6f1eea173273b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:694255 Reviewed-on: https://chromium-review.googlesource.com/598094Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47084}
-
Ulan Degenbaev authored
This reverts commit 6fde541d. Bug: chromium:694255 Change-Id: I4670d0de3d2749afbb3bdb8dc5418822a885330c Reviewed-on: https://chromium-review.googlesource.com/597850 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47083}
-
Yang Guo authored
This is to ensure the snapshot is deterministic. R=mstarzinger@chromium.org Bug: v8:4886, v8:3645 Change-Id: I79c8e54ba6b4810f005bc1ece61890790c815cea Reviewed-on: https://chromium-review.googlesource.com/595740 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47082}
-
jgruber authored
There's an inherent trade-off when deciding between ATOM and IRREGEXP regexps: IRREGEXP is faster at runtime for all but trivial single-character patterns, while ATOM regexps have a lower memory overhead. This CL is intended to help investigate impact on benchmarks and real-world code - if something tanks, it's easy to revert, otherwise it can be a first step towards a possible removal of ATOM regexps. Bug: v8:6633 Change-Id: Ia41d8eb28d33952735562d3d4127202746a6ac4e Reviewed-on: https://chromium-review.googlesource.com/589435Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47081}
-
Leszek Swirski authored
By representing "optimization disabled" with a kNoReason bailout reason, we have enough spare bits to merge the bailout reason field into compiler hints. This decreases SFI size by one word. Change-Id: I0169c91dfbfa443128b060a83e483717ed31a166 Reviewed-on: https://chromium-review.googlesource.com/595980 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47080}
-
jgruber authored
Consider: function f() { return; } This CL ensures that the closing brace is considered as covered by introducing a special case for open-ended range rewrites when the parent range is the function range itself. Bug: v8:6000, v8:6661 Change-Id: I0be307759967e9f4df245a4f367326a37dda86fd Reviewed-on: https://chromium-review.googlesource.com/597651Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47079}
-
Ulan Degenbaev authored
This reverts commit d4a742fd. Reason for revert: gc-stress failures Original change's description: > Reland "[heap] Add mechanism for tracking invalidated slots per memory chunk." > > This reverts commit c59b81d7. > > Original change's description: > > [heap] Add mechanism for tracking invalidated slots per memory chunk. > > > For correct slots recording in concurrent marker, we need to resolve > > the race that happens when > > 1) the mutator is invalidating slots for double unboxing or string > > conversions > > 2) and the concurrent marker is recording these slots. > > > This patch adds a data-structure for tracking the invalidated objects. > > Thus we can allow the concurrent marker to record slots without > > worrying about clearing them. During old-to-old pointer updating phase > > we re-check all slots that belong to the invalidated objects. > > BUG=chromium:694255 > > Change-Id: Idf8927d162377a7bbdff34f81a87e52db27d6a9f > Reviewed-on: https://chromium-review.googlesource.com/596868 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47068} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I81c6059a092cc5834acd799c51fd30dc0ecf5b27 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:694255 Reviewed-on: https://chromium-review.googlesource.com/597787Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47078}
-
Leszek Swirski authored
Some bailout reasons are never referenced. Removing these allows us to decrease the size of bailout reason bit-fields to 7 bits. Change-Id: Ib5e884d224c12313e06493ed05a18a22b3951665 Reviewed-on: https://chromium-review.googlesource.com/596128 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47077}
-
Leszek Swirski authored
Use some less-known grep flags to avoid the for loop in check-unused-bailouts.sh, speeding it up considerably. Before: $ time tools/check-unused-bailouts.sh >/dev/null real 0m14.717s user 0m6.968s sys 0m7.128s After: $ time tools/check-unused-bailouts.sh >/dev/null real 0m0.514s user 0m0.480s sys 0m0.028s Change-Id: I2178e2adaf60282865cf18272246a77bcff9d140 Reviewed-on: https://chromium-review.googlesource.com/597690Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#47076}
-
Benedikt Meurer authored
This fixes a corner case of rewriting the transition trees, where the "interesting symbols" bit was not properly forwarded. Drive-by-fix: Introduce additional checking in Map::ConnectTransition to make it easier for clusterfuzz to detect cases we might have missed. R=mstarzinger@chromium.org Bug: chromium:751109 Change-Id: I3f1a1e6232db9b3694064b3d4e9f37255b018acc Reviewed-on: https://chromium-review.googlesource.com/597669Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47075}
-
Alexandre Talon authored
This CL adds a DCHECK to make the uses() function safer: we store what the next pointer should be to comparing with the next use (from the current element in the linked list). This helps detect code which invalidates the use-list iterator, which would otherwise cause hard-to-debug errors. Bug: Change-Id: I3875361809ffd55fb8be2cbb15af3250e3fd4c12 Reviewed-on: https://chromium-review.googlesource.com/596030Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Alexandre Talon <alexandret@google.com> Cr-Commit-Position: refs/heads/master@{#47074}
-
Ilija Pavlovic authored
Port for https://chromium-review.googlesource.com/c/571011/ In macro-assembler-mips64.*, function StubPrologue is left intentionally. (See: https://codereview.chromium.org/2467513002) TEST= BUG= Change-Id: I95de571c636cce88fc2c40e5d8c60162004634a6 Reviewed-on: https://chromium-review.googlesource.com/591127 Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#47073}
-
Julien Brianceau authored
Bug: chromium:750830 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Icab7b5a1c469d5e77d04df8bfca8319784e92af4 Reviewed-on: https://chromium-review.googlesource.com/595655 Commit-Queue: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47072}
-
Georg Neis authored
Apparently it can happen that Blink calls Evaluate on a module that has errored dependencies. R=adamk@chromium.org Bug: v8:1569, chromium:750024 Change-Id: I44b6dde2d5fe5ca25ca2b8c44ede2683d1be944d Reviewed-on: https://chromium-review.googlesource.com/596055Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#47071}
-
Ulan Degenbaev authored
These tests perform GC manually which does not work well with concurrent marking and stress incremental marking flags. BUG=chromium:694255 Change-Id: I43e32957bf37053e0d3af07afa00b8bb40935ebd Reviewed-on: https://chromium-review.googlesource.com/596887Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47070}
-
Yang Guo authored
R=mlippautz@chromium.org Change-Id: Ic8628a2f9648a662447f4a6350f1466fe9ec69f2 Reviewed-on: https://chromium-review.googlesource.com/596969Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#47069}
-
Ulan Degenbaev authored
This reverts commit c59b81d7. Original change's description: > [heap] Add mechanism for tracking invalidated slots per memory chunk. > For correct slots recording in concurrent marker, we need to resolve > the race that happens when > 1) the mutator is invalidating slots for double unboxing or string > conversions > 2) and the concurrent marker is recording these slots. > This patch adds a data-structure for tracking the invalidated objects. > Thus we can allow the concurrent marker to record slots without > worrying about clearing them. During old-to-old pointer updating phase > we re-check all slots that belong to the invalidated objects. BUG=chromium:694255 Change-Id: Idf8927d162377a7bbdff34f81a87e52db27d6a9f Reviewed-on: https://chromium-review.googlesource.com/596868Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47068}
-
Michael Starzinger authored
This adds support to materialize objects when generating a frame summary for an optimized frame via {OptimizedFrame::Summarize}. Note that this means each summary might re-materialize objects and hence produce new object identities every time. All use sites need to be able to cope with such semantics. R=jarin@chromium.org BUG=v8:6586 Change-Id: I85c66ad3e7d247cd40f37a0a6e4391c0ee279706 Reviewed-on: https://chromium-review.googlesource.com/595745Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47067}
-