- 17 Mar, 2017 11 commits
-
-
neis authored
This is a first step towards moving Turbofan code generation off the main thread. Summary of the changes: - AssemblerBase no longer has a pointer to the isolate. Instead, its constructor receives the few things that it needs from the isolate (on most architectures this is just the serializer_enabled flag). - RelocInfo no longer has a pointer to the isolate. Instead, the functions that need it take it as an argument. (There are currently still a few that implicitly access the isolate through a HeapObject.) - The MacroAssembler now explicitly holds a pointer to the isolate (before, it used to get it from the Assembler). - The jit_cookie also moved from AssemblerBase to the MacroAssemblers, since it's not used at all in the Assemblers. - A few architectures implemented parts of the Assembler with the help of a Codepatcher that is based on MacroAssembler. Since the Assembler no longer has the isolate, but the MacroAssembler still needs it, this doesn't work anymore. Instead, these Assemblers now use a new PatchingAssembler. BUG=v8:6048 Review-Url: https://codereview.chromium.org/2732273003 Cr-Commit-Position: refs/heads/master@{#43890}
-
jgruber authored
CSA builtins can become very large, and the RegExp builtins are currently the main offender (e.g. @@match's code size is over 50k). This is due to the fact that most RegExp builtins rely on RegExpBuiltinExec (fairly large itself), which is then inlined multiple times in many builtins. This CL reduces the snapshot size for an x64 release build by 80k by turning slow-path RegExpBuiltinExec calls into stub calls (i.e. removing code duplication through inlining) and completely removing the code path for fast RegExp instances in RegExpExec (it is never taken). BUG=v8:5339,v8:5737 Review-Url: https://codereview.chromium.org/2745053003 Cr-Commit-Position: refs/heads/master@{#43889}
-
Toon Verwaest authored
BUG=v8:5561 Change-Id: Ib344479dac691bc418fbedffffbfbc1380ddd369 Reviewed-on: https://chromium-review.googlesource.com/455937 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43888}
-
Andreas Haas authored
Since TrapIf has been implemented on all platforms, there is no need anymore for the old WasmTrapHelper code. This CL also removes TrapIf-specific tests. R=titzer@chromium.org, clemensh@chromium.org Change-Id: Ic069598441b7bd63bde2e66f4e536abea5ecebe6 Reviewed-on: https://chromium-review.googlesource.com/452380 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#43887}
-
jgruber authored
test-unboxed-doubles/WriteBarrierObjectShiftFieldsRight recently started failing on arm64-nosnapshot builds due to a broken CHECK. # Fatal error in ../../test/cctest/test-unboxed-doubles.cc, line 1417 # Check failed: heap->InNewSpace(*obj_value). It expects the result of Factory::NewJSArray() to be in new space; but NewJSArray encapsulates two allocations so the return value can actually be in old space. Fix it by ensuring only one allocation occurs. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2759433002 Cr-Commit-Position: refs/heads/master@{#43886}
-
neis authored
R=jarin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2753543009 Cr-Commit-Position: refs/heads/master@{#43885}
-
Clemens Hammacher authored
The WasmCompileLazy builtin creates an internal frame, thus the garbage collector will visit all pointers in the stack frame. However, we will call this builtin from compiled wasm code, and it receives raw (untagged) arguments. This is because this builtin is later exchanged by compiled wasm code, so the ABI needs to be compatible. This CL introduces the has_tagged_params code flag, which is true by default and false for each WASM_FUNCTION, JS_TO_WASM_FUNCTION and the WasmCompileLazy builtin. The gargabe collector just ignores the parameters for each frame whose code object has this flag set to false. For internal frames, all pointers in the whole stack frame are ignored if the flag is set. R=titzer@chromium.org, mstarzinger@chromium.org BUG=v8:5991 Change-Id: I12a15157db344725bcc280e2041fd5bcad2ba700 Reviewed-on: https://chromium-review.googlesource.com/451400 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43884}
-
Jochen Eisinger authored
Retrieving information from a message should never execute script or throw exceptions. BUG=v8:5830 R=mmoroz@chromium.org,yangguo@chromium.org Change-Id: Ie8a84ca2cc14eb41ceaf4162d8a5381a20d559bc Reviewed-on: https://chromium-review.googlesource.com/455740 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#43883}
-
littledan authored
String case conversion is known to debug-evaluate to not have a side effect in noi18n mode, but debug-evaluate thinks it has a side effect in i18n mode. Update the tests accordingly. Verified locally that the test passes in i18n and noi18n mode (not sure whether the noi18n trybot executes this test). CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng Review-Url: https://codereview.chromium.org/2750403004 Cr-Commit-Position: refs/heads/master@{#43882}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/81c2772..72004d5 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/d49bf81..7b2dc0f TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I4a4903fd29b31585e184d9a5ccb5a4a941e7756c Reviewed-on: https://chromium-review.googlesource.com/456461Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43881}
-
gdeepti authored
DetachArrayBuffer makes incorrect assumptions about the state of the ArrayBuffer. It assumes that that the ArrayBuffer is internal to wasm unless guard pages are enabled, this is not the case as the ArrayBuffer can be externalized outside of wasm, in this case through gin. BUG=chromium:700384 Review-Url: https://codereview.chromium.org/2754153002 Cr-Commit-Position: refs/heads/master@{#43880}
-
- 16 Mar, 2017 29 commits
-
-
allada authored
Stacktrace data is now passed when scriptParsed event is triggered. R=kozyatinskiy@chromium.org,dgozman BUG=chromium:646849 Review-Url: https://codereview.chromium.org/2755863002 Cr-Commit-Position: refs/heads/master@{#43879}
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org Review-Url: https://codereview.chromium.org/2649703002 Cr-Commit-Position: refs/heads/master@{#43878}
-
bjaideep authored
Port 5cc61896 Minor fix to the original CL's port of ppc/s390 Original Commit Message: This moves most of the logic contained in RegExpExecStub to CSA. Benefits are mostly easier readability and hackability, and removal of a large chunk of platform-specific assembly. Exit frame construction and the final call remain in RegExpExecStub. R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:5339,v8:592 LOG=N Review-Url: https://codereview.chromium.org/2757673004 Cr-Commit-Position: refs/heads/master@{#43877}
-
jyan authored
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com Review-Url: https://codereview.chromium.org/2756733002 Cr-Commit-Position: refs/heads/master@{#43876}
-
titzer authored
Note that this also modifies mjsunit.js to allow the {failWithMessage} method to be monkey-patched by a test. This is necessary because assertions which fail in a promise's then-clause would normally only throw an exception, which is swallowed by the promise, causing the test to silently pass. Instead, patching this {failWithMessage} functionality allows then clauses to use the full assertion machinery of mjsunit.js. R=ulan@chromium.org, gsathya@chromium.org BUG= Review-Url: https://codereview.chromium.org/2752043002 Cr-Commit-Position: refs/heads/master@{#43875}
-
bradnelson authored
Adding a custom lexer for asm.js parsing. It takes advantage of a number of asm.js properties to simply things: * Assumes 'use asm' is the only string. * Does not handle unicode for now (tools don't emit it). * Combines global + local string table with lexer. R=marja@chromium.org,vogelheim@chromium.org,kschimpf@chromium.org BUG=v8:4203 BUG=v8:6090 Review-Url: https://codereview.chromium.org/2751693002 Cr-Commit-Position: refs/heads/master@{#43874}
-
Eric Holk authored
BUG= chromium:701590 Change-Id: Ia0a3a7a532a8acd001cb1dc79991f7cc08fc973d Reviewed-on: https://chromium-review.googlesource.com/456456Reviewed-by: Brad Nelson <bradnelson@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#43873}
-
Daniel Vogelheim authored
The current incarncation of DuplicateFinder does work that AstValueFactory already does. All that remains is that DuplicateFinder wraps a container. Adding const-ness changes were necessary to have IsDuplicateSymbol be const. BUG=v8:6092 Change-Id: I8081cfeef363717405d5b6325e290fe7725390dc Reviewed-on: https://chromium-review.googlesource.com/456317 Commit-Queue: Marja Hölttä <marja@chromium.org> Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43872}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5821 Review-Url: https://codereview.chromium.org/2747243006 Cr-Commit-Position: refs/heads/master@{#43871}
-
cwhan.tunz authored
- Implement C++ builtins and ElementsAccessor for %TypedArray%.prototype.lastIndexOf - Remove TypedArrayLastIndexOf in src/js/typedarray.js - Combine InnerArrayLastIndexOf and ArrayLastIndexOf in src/js/array.js BUG=v8:5929 Review-Url: https://codereview.chromium.org/2744283002 Cr-Commit-Position: refs/heads/master@{#43870}
-
Igor Sheludko authored
BUG=chromium:699166 Change-Id: Ifd460a454d2bf36cff6b114ecd9163ef4fbdc79e Reviewed-on: https://chromium-review.googlesource.com/456416Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43869}
-
franzih authored
Extract script->type() == TYPE_NORMAL into a function. BUG= Review-Url: https://codereview.chromium.org/2744613006 Cr-Commit-Position: refs/heads/master@{#43868}
-
danno authored
Previous to this CL, CSA-optimized Array builtins--like forEach, some, and every--were written in a single, monolithic block of CSA code. This CL teases the code for each of these builtins apart into two chunks, a main body with optimizations for fast cases, and a "continuation" builtin that performs a spec-compliant, but slower version of the main loop of the builtin. The general idea is that when the "fast" main body builtin encounters an unexpected condition that invalidates assumptions allowing fast-case code, it tail calls to the slow, correct version of the loop that finishes the builtin execution. This separation currently doens't really provide any specific advantage over the combined version. However, it paves the way to TF-optimized inlined Array builtins. Inlined Array builtins may trigger deopts during the execution of the builtin's loop, and those deopt must continue execution from the point at which they failed. With some massaging of the deoptimizer, it will be possible to make those deopt points create an extra frame on the top of the stack which resumes execution in the slow-loop builtin created in this CL. BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2753793002 Cr-Commit-Position: refs/heads/master@{#43867}
-
franzih authored
Collect type information for JavaScript variables and display it in Chrome DevTools. Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing When debugging JavaScript, it’s helpful to know the type of a variable, parameter, and return values. JavaScript is dynamically typed, and for complex source code it’s often hard to infer types. With type profiling, we can provide type information to JavaScript developers. This CL is a proof of concept. It collects type profile for assignments and simply prints the types to stdout. The output looks something like this: #my_var1 #Object #number #string #number #undefined #string #Object #Object We use an extra slot in the feedback vector of assignments to carry the list of types for that assignment. The extra slot is only added when the flag --type-profile is given. Missing work: * Collect data for parameters and return values (currently only assignments). * Remove duplicates from the list of collected types and use a common base class. * Add line numbers or source position instead of the variable name. For now, has a test that compares the stdout of --type-profile in test/message. We will remove this test when --type-profile is fully integrated in the debugger protocol. Adding the test in test/inspector does not work, because the inspector test itself consists of JavaScript code that would convolute the output and be non-deterministic under stress. BUG=v8:5935 Review-Url: https://codereview.chromium.org/2707873002 Cr-Commit-Position: refs/heads/master@{#43866}
-
jgruber authored
This is another step towards making calls to builtins more convenient. Builtins::CallableFor is an automatically generated Callable accessor for TFS builtins (whereas previously we had to manually add an accessor to code-factory.{h,cc}). CSA::CallBuiltin is a convenience wrapper around CallStub for TFS builtins. We can begin removing accessors for TFS builtins from CodeFactory in an upcoming commit. BUG=v8:5737 Review-Url: https://codereview.chromium.org/2752213002 Cr-Commit-Position: refs/heads/master@{#43865}
-
bbudge authored
- Change test to avoid adding denormalized numbers. This flushes to zero on ARM hardware when using Neon. LOG=N BUG=v8:6020 Review-Url: https://codereview.chromium.org/2754543007 Cr-Commit-Position: refs/heads/master@{#43864}
-
Michael Lippautz authored
Adjusting the count requires us to call into Semaphore::WaitFor which even on a z840 introduces a pause of at least 50us. We often call in here from the unmapper that tries to add pages. E.g. for reducing the new space size of 8M we call this for 16x2 pages, resulting in a pause of 1.6ms for just checking the status of the sweeper tasks. Avoiding reducing the count reduces the epilogue times. Example: FB infinite scroll: Before: heap.epilogue len: 102 min: 0.01 max: 4.83 avg: 0.140196078431 [0,5[: 102 After: heap.epilogue len: 106 min: 0.01 max: 0.24 avg: 0.0260377358491 [0,5[: 106 BUG= Change-Id: I296c20ae3ac4b65218e4e038a9dbce504160a764 Reviewed-on: https://chromium-review.googlesource.com/455839 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43863}
-
yangguo authored
NOTRY=true R=machenbach@chromium.org BUG=v8:6091 Review-Url: https://codereview.chromium.org/2757593002 Cr-Commit-Position: refs/heads/master@{#43862}
-
bmeurer authored
BUG= Review-Url: https://codereview.chromium.org/2758503002 Cr-Commit-Position: refs/heads/master@{#43861}
-
Clemens Hammacher authored
Before adding stack unwinding of interpreted wasm frames, clean up the respective method a bit. Replace if-cascade by a switch, and inline the (previously public) RemoveMaterializedObjectsOnUnwind method. R=mstarzinger@chromium.org, jarin@chromium.org BUG=v8:5822 Change-Id: Icf80c4adadc2f43551656ced8e92a67752d5c471 Reviewed-on: https://chromium-review.googlesource.com/453898 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43860}
-
Clemens Hammacher authored
This behaviour was missing before. If a trap is encountered in the interpreter, we now throw the right error. With test. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5822 Change-Id: I09c23d15fcde32ec586fb6d3094a5ec49155a9a2 Reviewed-on: https://chromium-review.googlesource.com/453839 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43859}
-
jkummerow authored
This is in preparation for linking the former only into mksnapshot. Just shuffling code around, no changes in functionality. BUG=v8:6055 Review-Url: https://codereview.chromium.org/2752143004 Cr-Commit-Position: refs/heads/master@{#43858}
-
Clemens Hammacher authored
We were converting an int to a Smi, calling ToString to create a String object, then appending this String to an IncrementalStringBuilder. It's much easier and more efficient to just sprintf to a local buffer and append that instead. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5822 Change-Id: I9302a07971cfd32350d69b1b8f182d0ba7245b77 Reviewed-on: https://chromium-review.googlesource.com/454018Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#43857}
-
Michael Lippautz authored
BUG= Change-Id: I51278784c2303419155abbfe6e36a1dc78c53527 Reviewed-on: https://chromium-review.googlesource.com/455835Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43856}
-
Clemens Hammacher authored
When instantiating the wasm interpreter for debugging, we unwrap all wasm-to-js wrappers and store the callable objects. The handles are stored in a DeferredHandleScope and deleted when the InterpreterHandle (store in WasmDebugInfo) is freed. A call to an imported function reads the arguments from the stack, converts them to JS objects, calls the callable, converts back the return value and pushes it onto the stack. Reentering the interpreter from the calles JS code is not permitted yet, but will be in a follow-up CL. Also, indirect calls to imported functions will have to follow. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5822 Change-Id: I66c35053bccb6cf8d416606e4f840d888ccb3b65 Reviewed-on: https://chromium-review.googlesource.com/453838 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43855}
-
Clemens Hammacher authored
This introduces iterators for the parameters and return types of a signature. This required extending the constructor of iterator_range for perfect forwarding. I also moved the HasJSCompatibleSignature to a header file in order to reuse it from the interpreter. R=ahaas@chromium.org, titzer@chromium.org Change-Id: Ie77f87ef87fdfd3138b2106640ac7c481cf247e6 Reviewed-on: https://chromium-review.googlesource.com/455777 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43854}
-
Andreas Haas authored
With this change we can remove all the old trap code. R=titzer@chromium.org, clemensh@chromium.org Change-Id: I85c10a6ac7d3eccc7b611e06f2a651d5a8a00a9c Reviewed-on: https://chromium-review.googlesource.com/452379Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43853}
-
franzih authored
Revert of Collect type profile for DevTools. (patchset #41 id:770001 of https://codereview.chromium.org/2707873002/ ) Reason for revert: Still flaky Original issue's description: > Collect type profile for DevTools > > Collect type information for JavaScript variables and display it > in Chrome DevTools. > Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing > > When debugging JavaScript, it’s helpful to know the type of > a variable, parameter, and return values. JavaScript is > dynamically typed, and for complex > source code it’s often hard to infer types. With type profiling, we > can provide type information to JavaScript developers. > > This CL is a proof of concept. It collects type profile for > assignments and simply prints the types to stdout. > > The output looks something like this: > > #my_var1 > #Object > #number > #string > #number > #undefined > #string > #Object > #Object > > > We use an extra slot in the feedback vector of assignments to > carry the list of types for that assignment. The extra slot is > only added when the flag --type-profile is given. > > > Missing work: > * Collect data for parameters and return values (currently only assignments). > * Remove duplicates from the list of collected types and use a common base class. > * Add line numbers or source position instead of the variable name. > > > > BUG=v8:5935 > > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#43791} > Committed: https://chromium.googlesource.com/v8/v8/+/0332bebde99d0f9a5a8326382f5f37cc26224ae0 > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Original-Original-Commit-Position: refs/heads/master@{#43804} > Committed: https://chromium.googlesource.com/v8/v8/+/6cf880f4b84c533d4bb139d33c1369e309d1c579 > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Original-Commit-Position: refs/heads/master@{#43846} > Committed: https://chromium.googlesource.com/v8/v8/+/5c322873908a5b5c04552fc47d8d81f7603b5d11 > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Commit-Position: refs/heads/master@{#43849} > Committed: https://chromium.googlesource.com/v8/v8/+/18c35e4958be6a70acc923bf10363eb9aaee5ce4 TBR=yangguo@chromium.org,mvstanton@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5935 Review-Url: https://codereview.chromium.org/2745413006 Cr-Commit-Position: refs/heads/master@{#43852}
-
Jochen Eisinger authored
BUG=v8:6069 R=rmcilroy@chromium.org Change-Id: I4bd696163f113e166c4be70d6688b17ff5abbcbb Reviewed-on: https://chromium-review.googlesource.com/455917Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#43851}
-