- 20 Mar, 2017 22 commits
-
-
Clemens Hammacher authored
Before, we were redirecting each function to the interpreter by iterating all code and patching all call sites using this one function. The runtime was hence quadratic if all functions were redirected to the interpreter as done by the --wasm-interpret-all flag. This CL fixes this to only iterate the code once and redirecting an arbitrary number of function. R=ahaas@chromium.org, titzer@chromium.org BUG=v8:5822 Change-Id: Ia4f2e94a2468f9bef3035b599e1f8a18acf309da Reviewed-on: https://chromium-review.googlesource.com/455785 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43946}
-
Leszek Swirski authored
Defers a label in the LoadIC fast-path which was doing a call that was forcing the entire LoadIC fast-path to have a frame. The label was introduced in https://chromium-review.googlesource.com/c/455858/. Change-Id: Icc8f7243c133cfa0ad60ede0d0f5651b639634e9 Reviewed-on: https://chromium-review.googlesource.com/456504Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43945}
-
Toon Verwaest authored
BUG=v8:5561 Change-Id: If4c679c97af199ce1c90d055627186123bc88574 Reviewed-on: https://chromium-review.googlesource.com/456698Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43944}
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2764473002 Cr-Commit-Position: refs/heads/master@{#43943}
-
Clemens Hammacher authored
This fixes a bug where an exported function is being specialized, but the callsite inside the JS_TO_WASM function was patched to call an interpreter entry instead. We would not identify the call site as the one to be patched during specialization, and would thus fail a DCHECK. R=ahaas@chromium.org BUG=v8:5822, chromium:702839 Change-Id: I148d98333051c399a4cb11bd9620b396f4eb261d Reviewed-on: https://chromium-review.googlesource.com/456282 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43942}
-
ulan authored
Currently the incremental marking visitor treats elements of normalized map caches weakly by coloring the caches grey without pusing to marking deque. The mark-compact prologue then clears all normalized map caches. We can achieve similar effect by just clearing the caches in the marking visitor. BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2745183002 Cr-Commit-Position: refs/heads/master@{#43941}
-
leszeks authored
Makes disassembly jump target printing look more like the output of objdump, for compatibility with perf's jump arrows. This includes swapping the order of address and offset, and making the offset and line numbers hex. As a drive-by, print comment lines in objdump-v8 so that they can be shown/hidden as "source" lines by perf. Review-Url: https://codereview.chromium.org/2757263002 Cr-Commit-Position: refs/heads/master@{#43940}
-
Yang Guo authored
BUG=v8:5808 Change-Id: I7bb3c3655e17271b44de881416e150ef51811154 Reviewed-on: https://chromium-review.googlesource.com/457336 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#43939}
-
Toon Verwaest authored
[ic] Also support caching accessor calls with primitive receivers. CallFunction does the proper wrapping. BUG=v8:5561 Change-Id: Icb4172628e1975f8eaa8252a20b27ff36d8c63c4 Reviewed-on: https://chromium-review.googlesource.com/457038 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43938}
-
Clemens Hammacher authored
If an exception is thrown and the wasm interpreter entry frame is unwound, also the internal frames in the interpreter need to be unwound. We did not do so before, leaving a corrupted internal state of the wasm interpreter. Thus reusing it would fail. This CL fixes this and adds a test which reenters a previously unwound wasm interpreter. It checks that this works and the correct stack is returned. This test also requires support for calling an imported function which throws, so this change is also included here. R=ahaas@chromium.org, titzer@chromium.org BUG=v8:5822 Change-Id: I12fb843f7a371a4e618b4ac63ed3299667a03a82 Reviewed-on: https://chromium-review.googlesource.com/453938 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43937}
-
Clemens Hammacher authored
This CL adds general lazy compilation support to WebAssembly, according to the design described in the design doc (see referenced bug). It's not used currently, but I tested locally that all tests succeed if I enable it by default. With a later CL, we will enable lazy compilation by default for validate-asm: https://chromium-review.googlesource.com/451318 R=titzer@chromium.org, ahaas@chromium.org, bmeurer@chromium.org BUG=v8:5991 Change-Id: I85440382118a24fc245e78a5a90cf2b95659cd69 Reviewed-on: https://chromium-review.googlesource.com/451317 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43936}
-
Toon Verwaest authored
We use LoadFromPrototype also for direct global loads. InitPrototypeChecks did not support this though, and would create a prototype chain check for objects beyond the direct global. This tries to ensure the property on the global itself doesn't exist, which is invalid. Additionally this CL deletes duplicate code. BUG=chromium:702798,v8:5561 Change-Id: I318a5b6cd5f7c3efdb3a003e34edd37d5d3f880b Reviewed-on: https://chromium-review.googlesource.com/457369 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43935}
-
loorongjie authored
BUG=v8:5929 R=adamk@chromium.org,bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2735563002 Cr-Commit-Position: refs/heads/master@{#43934}
-
Peter Marshall authored
Add a fastpath for when byteOffset is undefined, which is the common case. We can just replace it with 0 and avoid the modulo checks. Also add a smi-fastpath for byteOffset, which avoids calling stubs for arithmetic when unnecessary. BUG=chromium:701668,v8:5977 Change-Id: Id431dad46bf3796ef32ab465f6787bbebe83437c Reviewed-on: https://chromium-review.googlesource.com/456502 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#43933}
-
Clemens Hammacher authored
The DecodeWasmFunctionOffsets method was used for debugging, but is not needed any more. The FindSection function was only used in DecodeWasmFunctionOffsets. This CL removes both. R=ahaas@chromium.org Change-Id: Id4aa05419298ff271766676ec8453134c6e98a69 Reviewed-on: https://chromium-review.googlesource.com/457316Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#43932}
-
Yang Guo authored
Previously we used to add a string address after the stop instruction for description. This has been removed, but the skip in the simulator was not consistently removed in 0ca72de2. BUG=chromium:703051 Change-Id: I3135d180bcef174bc5d9dd24f7737a4415732976 Reviewed-on: https://chromium-review.googlesource.com/457356Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#43931}
-
Igor Sheludko authored
This is a first bulk of changes. BUG=v8:6116 Change-Id: I9308129bd032c0bf5b60c8e0413ee2cb710891ea Reviewed-on: https://chromium-review.googlesource.com/456556 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43930}
-
franzih authored
Separate the function that prints type profile with --type-profile from the one that collects type profile. The name needs to be stored in the feedback vector as well. I'll make a follow up CL that stores the relevant information, so it can be printed later. BUG=v8:5935 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2757993002 Cr-Commit-Position: refs/heads/master@{#43929}
-
ahaas authored
Without the check it happened that the builtin call in the trap code was too far away from the constant pool and therefore crashed. BUG=v8:6054 R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com Review-Url: https://codereview.chromium.org/2738683003 Cr-Commit-Position: refs/heads/master@{#43928}
-
ahaas authored
The code-generator used i.InputInt6 to get the mask-width from the instruction. However, thereby 64 got wrapped to 0, which is an invalid mask width. I changed the i.InputInt6 to an i.InputInt32, which should be okay because the mask-width comes from base::bits::CountPopulation64. BUG=v8:6122 R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com Review-Url: https://codereview.chromium.org/2755373002 Cr-Commit-Position: refs/heads/master@{#43927}
-
Jochen Eisinger authored
Just ensure that all background and foreground tasks finished, then we should be in a defined state BUG=v8:6069 R=rmcilroy@chromium.org Change-Id: Ie5bd11c61402dccb2c65cb8fe57fd1c0f550e9a7 Reviewed-on: https://chromium-review.googlesource.com/456418Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#43926}
-
bmeurer authored
Don't ignore IfException (and IfSuccess) projections on JSForInNext nodes during JSTypedLowering::ReduceJSForInNext, but instead rewrire the IfException projection to the ForInFilter stub call, which can throw exceptions in case of proxies. R=yangguo@chromium.org BUG=v8:6121 Review-Url: https://codereview.chromium.org/2761703002 Cr-Commit-Position: refs/heads/master@{#43925}
-
- 19 Mar, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/73f2994..2d86f95 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I011f9e13d444ef796e236fb06e6e2de82b2413ae Reviewed-on: https://chromium-review.googlesource.com/456802Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43924}
-
- 18 Mar, 2017 4 commits
-
-
Leszek Swirski authored
Prints the disassembly of code objects on the heap after deserialization, if --print-builtin-code is on. This allows us to annotate the disassembly of builtins in the same way as we do optimised code now, for example using `perf report --objdump=v8/tools/objdump`. Change-Id: I1781302de6fca035ea9bd4c4f7d58796a957f4af Reviewed-on: https://chromium-review.googlesource.com/456340Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#43923}
-
Yang Guo authored
Also add tests for operators. BUG=v8:5821 Change-Id: I76cfde94324c7f05de61cb60f26d5168da0a9aa5 Reviewed-on: https://chromium-review.googlesource.com/456500Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#43922}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/72004d5..4c534d4 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/7b2dc0f..73f2994 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I05e77392da0d8f99750c6a6755d44ff1fa0b209c Reviewed-on: https://chromium-review.googlesource.com/456801Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43921}
-
Jakob Kummerow authored
BUG=chromium:702793 Change-Id: Ia52823968a757f8f7fc8802deab60f570ffdb58c Reviewed-on: https://chromium-review.googlesource.com/456280Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43920}
-
- 17 Mar, 2017 13 commits
-
-
aseemgarg authored
Revert of [wasm] re-enable simd-scalar-lowering tests (patchset #1 id:1 of https://codereview.chromium.org/2754393002/ ) Reason for revert: Seems like this is breaking V8 Linux - arm64 - sim - MSAN Original issue's description: > [wasm] re-enable simd-scalar-lowering tests > > R=bbudge@chromium.org > BUG=v8:6020 > > Review-Url: https://codereview.chromium.org/2754393002 > Cr-Commit-Position: refs/heads/master@{#43918} > Committed: https://chromium.googlesource.com/v8/v8/+/931714675b3ac323d7121e275c4fe7ff32f59eec TBR=bbudge@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6020 Review-Url: https://codereview.chromium.org/2749023010 Cr-Commit-Position: refs/heads/master@{#43919}
-
aseemgarg authored
R=bbudge@chromium.org BUG=v8:6020 Review-Url: https://codereview.chromium.org/2754393002 Cr-Commit-Position: refs/heads/master@{#43918}
-
sampsong authored
R=littledan@chromium.org, ulan@chromium.org, bjaideep@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2740353002 Cr-Commit-Position: refs/heads/master@{#43917}
-
neis authored
BUG= Review-Url: https://codereview.chromium.org/2754003007 Cr-Commit-Position: refs/heads/master@{#43916}
-
dusan.simicic authored
BUG= Review-Url: https://codereview.chromium.org/2759673002 Cr-Commit-Position: refs/heads/master@{#43915}
-
neis authored
Typer::Visitor::ToLength was unsound (and non-monotonic). For instance, if the input type was Range(2^53, 2^53+1), the result type was Constant(2^53). Now the result is type Constant(2^53-1). (The result of ToLength is guaranteed to be between 0 and 2^53-1.) BUG= Review-Url: https://codereview.chromium.org/2753773010 Cr-Commit-Position: refs/heads/master@{#43914}
-
bbudge authored
BUG=none Review-Url: https://codereview.chromium.org/2759513002 Cr-Commit-Position: refs/heads/master@{#43913}
-
jbroman authored
This makes it more similar to other handle types (like PersistentBase), by simply storing an i::Object** cast to T*. This means that it is not necessary to look up the handle in the eternal handles table to access the underlying value. Like the built-in roots (null, etc.), an eternal handle can never be destroyed, so we don't even need to allocate a separate local handle. Instead, the Local<T> can point directly at the eternal reference. This makes Eternal<T>::Get trivial. Review-Url: https://codereview.chromium.org/2751263003 Cr-Commit-Position: refs/heads/master@{#43912}
-
Jochen Eisinger authored
BUG=v8:6069 R=rmcilroy@chromium.org Change-Id: I0e1096e20fa96af0a4875704f3f90e8458750356 Reviewed-on: https://chromium-review.googlesource.com/456557Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#43911}
-
jgruber authored
NOTREECHECKS=true TBR=machenbach@chromium.org Review-Url: https://codereview.chromium.org/2754283002 Cr-Commit-Position: refs/heads/master@{#43910}
-
jgruber authored
Default to the chromium-internal build config (instead of the more permissive no_chromium_code config). BUG=v8:5878 Review-Url: https://codereview.chromium.org/2758563002 Cr-Commit-Position: refs/heads/master@{#43909}
-
Marja Hölttä authored
The data needed to be modified a bit to actually allow skipping over functions based on it. In particular, we need to allow skipping over an unknown inner scope structure (in the previous stage, we just had tests comparing the data against some baseline truth, so it wasn't needed). also removing the current "skip functions based on preparse data" logic, since preparser data is not used any more. At a later stage, I'll consider plugging the preparser-scope-analysis-data into that pipeline (so I don't want to remove the full code yet). Integration to the various forms of compilation is still incomplete; this CL integrates just enough to get the minimal example to pass: (function foo() { function preparsed() { var var1 = 10; function skip_me() { print(var1); } return skip_me; } return preparsed; })()()(); BUG=v8:5516 Change-Id: I0d24b4c3b338f7e6b6c3bf7cf2c1ceb29608e2f2 Reviewed-on: https://chromium-review.googlesource.com/446336 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43908}
-
jbroman authored
They do not modify the state of the handle. Review-Url: https://codereview.chromium.org/2753973002 Cr-Commit-Position: refs/heads/master@{#43907}
-