- 13 Jun, 2017 14 commits
-
-
Ulan Degenbaev authored
Since code flushing is gone, we treat the code entry as a strong field. Change-Id: Idfcaf6fbfd84f7e4435b81d30a2a0e1be71ec89d Reviewed-on: https://chromium-review.googlesource.com/531285 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45894}
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: Ia985a00fe2193bac96057994d93718224706ca04 Reviewed-on: https://chromium-review.googlesource.com/531168 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45893}
-
Leszek Swirski authored
With the deprecation of Crankshaft, it's no longer necessary for FullCodeGen to keep track of its runtime profiler ticks on the code object, and we can instead unify the behaviour of FCG and Ignition to both increment the SFI counter instead. Bug: v8:6408 Change-Id: Idcdd673aa39af06fe15a0fc14dfda2afafb5e417 Reviewed-on: https://chromium-review.googlesource.com/528117Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#45892}
-
Toon Verwaest authored
Bug: Change-Id: I9f0329b69693749c243c05b27c542c4ccdd71a11 Reviewed-on: https://chromium-review.googlesource.com/531244Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#45891}
-
Michael Lippautz authored
This fixes the counter inconsistencies and makes use of the already existing mechanism for partially releasing memory. This reverts commit c8e6cdfd. Bug: chromium:724947 Change-Id: I2a7b52a28654fd2524df502a353997393d4f53ac Reviewed-on: https://chromium-review.googlesource.com/530369Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45890}
-
Marja Hölttä authored
This is an unexciting CL (doesn't make the build step situation any better) but enables moving FixedArray & co next. BUG=v8:5402,v8:6474 Change-Id: Ia36eb3973e6242f6f68e02b9f583dc552d48422f Reviewed-on: https://chromium-review.googlesource.com/529168 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45889}
-
Clemens Hammacher authored
This removes the {IsWasm} and {IsAsmJs} methods, which tested a ModuleOrigin for a specific constant. These methods do not comply with our naming conventions, and we don't have such methods for other enums. Drive-by: Refactor the code which used these methods for better readability and maintainability. R=ahaas@chromium.org, kschimpf@chromium.org BUG=v8:6474 Change-Id: I98eb4dba5420eaa9452ae6f27598ec8b581a0984 Reviewed-on: https://chromium-review.googlesource.com/530229Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45888}
-
Michael Starzinger authored
The AST-based graph builder is by now only used for asm.js code. This change hard-codes this assumption into the compilation pipeline and hence allows us to remove support pertaining to deoptimization from optimized code that was not derived from bytecode. R=jarin@chromium.org BUG=v8:6409 Change-Id: I1138f16f663db5b9ee34e3110184067b8fcffc8b Reviewed-on: https://chromium-review.googlesource.com/531026 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45887}
-
addaleax authored
Return `nullptr` from `ArrayBuffer::Allocator::Reserve` because apparently not doing so results in compile errors for some people. BUG= Ref: https://github.com/nodejs/node/issues/13392 Review-Url: https://codereview.chromium.org/2929993003 Cr-Commit-Position: refs/heads/master@{#45886}
-
hpayer authored
BUG= Review-Url: https://codereview.chromium.org/2936713002 Cr-Commit-Position: refs/heads/master@{#45885}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/bb21bc0..05cc70d Rolling v8/third_party/android_tools: https://chromium.googlesource.com/android_tools/+log/cb6bc21..023e2f6 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/36e1cda..e6b02f2 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I2cfea0bc5a985014d488d1f32ddd68a5105a74b3 Reviewed-on: https://chromium-review.googlesource.com/532553Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45884}
-
jing.bao authored
Also add vpinsrw BUG= Review-Url: https://codereview.chromium.org/2931333002 Cr-Commit-Position: refs/heads/master@{#45883}
-
Eric Holk authored
Once a buffer has been externalized, V8 is no longer responsible for managing the memory. The fact that V8 was freeing was leading to double free errors once Blink's GC got around to freeing the buffer too. Bug: chromium:730171, chromium:731046 Change-Id: Ib18a7e37cafd51bce0c5a983d5cf8f3e64eb2c13 Reviewed-on: https://chromium-review.googlesource.com/530132 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45882}
-
Adam Klein authored
This feature has been on by default without incident since V8 5.8. Bug: v8:5051 Change-Id: I1baf81922efd87e07448955147c50a5ba5a0aa42 Reviewed-on: https://chromium-review.googlesource.com/532214Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45881}
-
- 12 Jun, 2017 26 commits
-
-
Mircea Trofin authored
Avoid constructing zones and large zone objects when initializing WasmCompilationUnit. The main reason we did that is so we can cache the CEntryStub node, which requires a code object, obtainable only on the main thread. We need that value, however, on background threads, which is also where we need the aforementioned large objects. We only need that for the WasmCompilationUnits being currently compiled, which is a number proportional to the number of background threads provided by the embedder. Specifically, one zone is needed only for the duration of the background compilation, while the second zone needs to survive past that, so the compilation results may be committed to the GC heap as Code objects. The problem with these large objects is that the first allocation in a Zone is at minimum 8KB. We used to allocate 2 zones. For modules with 200K functions, that means 3.2GB of memory pre-allocated before any of it is actually needed. This change attaches a Handle to the CEntryStub on the WasmCompilationUnits, and delays zone creation to when needed. The change also adds a way to cache CEntryStubs in a JSGraph from a given Code handle - limited to the scenario needed by wasm (and removable once we get wasm off the GC heap, which subsumes removing this dependency on CEntryStubs) An additional constraint for this change is that we want it to be easily back-mergeable to address chromium:723899. For the wasm payload in question, collecting the max memory used by d8 using /usr/bin/time --format='(%Xtext+%Ddata %Mmax)', we get the following numbers (in KB): - unchanged: 3307480 - patch 1: 1807140 (45% reduction) - patch 3: 1230320 (62% reduction from first) - patch 5/6: 519368 (84% reduction from first) Bug: chomium:732010, chromium:723899 Change-Id: I45b96792daf8a9c8dc47d45fb52da75945a41401 Reviewed-on: https://chromium-review.googlesource.com/530193 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45880}
-
Adam Klein authored
These accessors are only called from the Parser, never ParserBase, so there's no need to expose them in parser-base.h. Instead, access them through FunctionState::scope(). This also allows removal of the Types::Variable typedefs. Bug: v8:6460 Change-Id: I01186c53d3cc2a2737f3c07169fdd122dff5b174 Reviewed-on: https://chromium-review.googlesource.com/530034Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45879}
-
scottmg authored
Fix v8 link errors (in component_build=true) https://build.chromium.org/p/chromium.fyi/builders/Fuchsia%20(dbg) BUG=chromium:731217 Review-Url: https://codereview.chromium.org/2930343002 Cr-Commit-Position: refs/heads/master@{#45878}
-
Jaideep Bajwa authored
Minor fix to original CL https://chromium-review.googlesource.com/528120 R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: If94e74e9ce97dfbddd578a60d1cfce1fe2b9265d Reviewed-on: https://chromium-review.googlesource.com/531524Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#45877}
-
Ulan Degenbaev authored
The race happens when an object transitions to a newly created map. The map initializing stores can be reordered after object->set_map(map), which will cause the concurrent marker to observe inconsistent map. The fix is to use store-release when setting the map pointer and acquire-load when reading the map in the concurrent marker. BUG=chromium:694255 Change-Id: I4fd6bc27dd70ff1a30f56a4cec13310ccdd627c8 Reviewed-on: https://chromium-review.googlesource.com/528118Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45876}
-
hpayer authored
BUG=chromium:728228 Review-Url: https://codereview.chromium.org/2930333002 Cr-Commit-Position: refs/heads/master@{#45875}
-
Michael Lippautz authored
- Remove commented out line - Simulate full space properly, independently of flags set Bug: Change-Id: I6013caae43eb40dd568fbd872eb0ee78288c61bf Reviewed-on: https://chromium-review.googlesource.com/531084Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45874}
-
Toon Verwaest authored
Distinguish the compilation caches instead by the shape of the key (cow fixed array map meaning eval or script cache). This allows us to remove the odd "key" argument from Shrink, EnsureCapacity and Rehash. Bug: v8:6474 Change-Id: Ibcad22813063c3a9050da13dc51359f5b59e1254 Reviewed-on: https://chromium-review.googlesource.com/531184Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#45873}
-
Sathya Gunasekaran authored
Bug: v8:5717, v8:6354 Change-Id: I4ae2a0b629ca8fe03fb8f645aa5f22cf7f2e4a20 Reviewed-on: https://chromium-review.googlesource.com/515024Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#45872}
-
Igor Sheludko authored
... by reading the |map_index| value from the SharedFunctionInfo's |compiler_hints| field directly. Bug: v8:6459 Change-Id: I32c4c903b16fa9f7e7da755667dadef7fadfc5e0 Reviewed-on: https://chromium-review.googlesource.com/531024 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45871}
-
Michael Starzinger authored
This adds missing support for in-object properties within objects having the {JSGeneratorObject} type to materialization during deoptimization. For corner-cases where the implicit generator object is statically known not to escape, object layout might still be arbitrarily complex. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-732169 BUG=chromium:732169,v8:6481 Change-Id: I32f373913d60af64981dc4ed66873cc8a1dbe872 Reviewed-on: https://chromium-review.googlesource.com/530230Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45870}
-
Igor Sheludko authored
Reshuffle |compiler_hints| bits to allow using smaller mask constants when generating code that checks if certain bit is set. Bug: v8:6470 Change-Id: I4c5de882405a575200a49355065dc5909ad88f58 Reviewed-on: https://chromium-review.googlesource.com/530309 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45869}
-
Ulan Degenbaev authored
The fence ensures that the concurrent marker observes consistent state of mark-bits for newly allocated objects. The patch also moves Bitmap functions to cc file and removes non-atomic versions of SetRange and ClearRange. BUG=chromium:694255 Change-Id: I466bef654f3d4a21b7aaebdfd6d5a39ddb5f2a0a Reviewed-on: https://chromium-review.googlesource.com/530367Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45868}
-
Igor Sheludko authored
Use new macros for defining bit fields. Bug: v8:6470 Change-Id: Ie580ba7fc64f9958a3d4586d54d67e5dc66f1b53 Reviewed-on: https://chromium-review.googlesource.com/529824 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45867}
-
hpayer authored
[heap] Register an idle embedder garbage collection when starting incremental marking through reached marking limit. We need to schedule an idle garbage collection in the embedder to drive progress. The embedder is responsible to schedule the request or ignore it. BUG=chromium:728228 Review-Url: https://codereview.chromium.org/2937433002 Cr-Commit-Position: refs/heads/master@{#45866}
-
sampsong authored
BUG= R=bjaideep@ca.ibm.com, jyan@ca.ibm.com, joransiu@ca.ibm.com, machenbach@chromium.org, rossberg@chromium.org Review-Url: https://codereview.chromium.org/2931133002 Cr-Commit-Position: refs/heads/master@{#45865}
-
Alexey Kozyatinskiy authored
console.context(name:string) method returns console instance, this console instance fully implements console interface (including fact that any method can be called without console as receiver). Protocol.Runtime.consoleAPICalled notification contains additional context:string field: - "anonymous#unique-id" for any method call on unnamed console context, - "name#unique-id" for any method call on named console context. console.count and console.timeEnd have context as a scope. console.clear clear all messages regardless on what context instance it was called. console calls is ~10% slower with this CL since we need to store and then fetch console_context_id and console_context_name from function object. We recently (in April) made console calls twice faster so 10% doesn't sound critical and existing of console.log call in hot code is problem by itself. R=pfeldman@chromium.org Bug: chromium:728767 Change-Id: I5fc73216fb8b28bfe1e8c2c1b393ebfbe43cd02e Reviewed-on: https://chromium-review.googlesource.com/522128Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45864}
-
Georg Neis authored
MIPS port of https://chromium-review.googlesource.com/c/519165/. R=ivica.bogosavljevic@imgtec.com, jarin@chromium.org Bug: v8:6048 Change-Id: I27c8b43726119904441f286a6c97d602fd2d0150 Reviewed-on: https://chromium-review.googlesource.com/530806Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#45863}
-
Andreas Haas authored
The EnableFlagScope is useful also for non-boolean flags. With the template we can use if for example in the wasm fuzzers to reduce the maximum memory size of a wasm module. In addition I put the EnableFlagScope into the v8::internal namespace, and I fixed a small typo. BUG=v8:6474 R=clemensh@chromium.org Change-Id: Iae5d5c058c334cd0f9e09d20adfd229fc2d6c585 Reviewed-on: https://chromium-review.googlesource.com/531005 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45862}
-
Clemens Hammacher authored
This method is dead now (after https://chromium-review.googlesource.com/529844 and https://chromium-review.googlesource.com/529210). R=ahaas@chromium.org BUG=v8:6474 Change-Id: Icd355283312bfae712c0db61bb5049925762060b Reviewed-on: https://chromium-review.googlesource.com/530312Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45861}
-
Igor Sheludko authored
Don't use byte-width instructions when accessing |compiler_hints| field. This CL eases adding new bit fields to the compiler hints field. Bug: v8:6470 Change-Id: I7b07c1c8d0a11a303eebb5272d2846a5a84005f7 Reviewed-on: https://chromium-review.googlesource.com/529804 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#45860}
-
Clemens Hammacher authored
In many places in WasmModule and contained structs we store references into the wire bytes as pairs of offset and length. This CL introduces a WireBytesRef struct which encapsulates these two connected fields. This makes it easier to pass them and assign them as one unit. R=ahaas@chromium.org, mtrofin@chromium.org BUG=v8:6474 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4f2a40d848a51dc6f6f599f9253c3c6ed6e51627 Reviewed-on: https://chromium-review.googlesource.com/530687 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45859}
-
Andreas Haas authored
This CL is the first step in introducing a compilation manager for asynchronous compile jobs in WebAssembly. The compilation manager holds a list of currently active AsyncCompileJobs. With the compilation manager these compile jobs get deallocated when the isolate shuts down. Note that this CL is not enough to provide a graceful isolate shutdown. For this we have to wait for all compilation tasks to finish before we shut down, and we have to make the tasks stateless. I plan to do these changes in separate CLs. R=clemensh@chromium.org, mtrofin@chromium.org BUG=v8:6436 Change-Id: I9a6e165dd2ef6d33944ca303fed49f7940eea7a2 Reviewed-on: https://chromium-review.googlesource.com/528079Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45858}
-
Clemens Hammacher authored
We were emitting the table index once in the element section instead of once per element segment. This did not cause failures because we never had more than one element segment. This CL fixes this, and adds a test for more than one segment. R=rossberg@chromium.org Change-Id: I13923baf3dae383c72760286e24242d0ad55c4db Reviewed-on: https://chromium-review.googlesource.com/527155Reviewed-by: Andreas Rossberg <rossberg@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45857}
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: I5dc1efff984c4e358313960fc4c1598e3a3ff313 Reviewed-on: https://chromium-review.googlesource.com/528105Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45856}
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: Ibfffc68a513511866dc4eebcf0728e51feb1a7fd Reviewed-on: https://chromium-review.googlesource.com/530746Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45855}
-