- 22 Apr, 2016 3 commits
-
-
adamk authored
The feature was deprecated in M49 and flagged off in M50. This patch removes it entirely from the codebase. Review URL: https://codereview.chromium.org/1909433003 Cr-Commit-Position: refs/heads/master@{#35714}
-
bmeurer authored
If we have to convert a float64 value to tagged representation and we already know that the value is either in Signed31/Signed32 or Unsigned32 range, then we can just convert the float64 to word32 and use the fast word32 to tagged conversion. Doing this in ChangeLowering (or the effect linearization pass) would be unsound, as the types on the nodes are no longer usable. This removes all Type uses from effect linearization. There's still some work to be done for ChangeLowering tho. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1908093002 Cr-Commit-Position: refs/heads/master@{#35713}
-
yangguo authored
This is pretty useful when debugging. There is no easy way to find the bytecode arrays on the stack. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1909663005 Cr-Commit-Position: refs/heads/master@{#35712}
-
- 21 Apr, 2016 23 commits
-
-
mtrofin authored
GetInstructionBlock shows up in some compile time-intensive profiles. Changing it to a O(1) operation. The compile benchmark confirms the improvement. BUG= Review URL: https://codereview.chromium.org/1896813003 Cr-Commit-Position: refs/heads/master@{#35711}
-
baptiste.afsa authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1897213003 Cr-Commit-Position: refs/heads/master@{#35709}
-
nikolaos authored
This patch introduces new scopes in the preparser, just like they are introduced by the parser, in the following places: - blocks - try statement - switch statement - scoped statements, in several places - for statement - eager function bodies R=rossberg@chromium.org BUG= LOG=N Review URL: https://codereview.chromium.org/1906793002 Cr-Commit-Position: refs/heads/master@{#35708}
-
bmeurer authored
This way the first scheduler can properly wire them to the effect chain, as otherwise the second scheduler could schedule them such that they would be able to read uninitialized memory (once we drop the region protection in the first scheduler). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1908963002 Cr-Commit-Position: refs/heads/master@{#35707}
-
jkummerow authored
Non-vectorized KeyedLoadICs used to remember whether they had seen Names as keys; Crankshaft uses this information to avoid emitting elements accesses which would always deopt. This CL restores that functionality for vector ICs. BUG=chromium:594183 LOG=y R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1912593002 Cr-Commit-Position: refs/heads/master@{#35706}
-
mstarzinger authored
This removes the CompilationInfo argument from one of the logging functions where it is unused. The long-term goal is to not pass around the CompilationInfo at all. The assumption that the CompilationInfo is available is incompatible with serialized code, where compilation has happened during building time of V8 itself. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1901353003 Cr-Commit-Position: refs/heads/master@{#35705}
-
Ilija.Pavlovic authored
Fix for execution tests on simulator. Port 3518e492 Original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. BUG= Review URL: https://codereview.chromium.org/1904033003 Cr-Commit-Position: refs/heads/master@{#35703}
-
bmeurer authored
The JavaScript pipeline now consists of the following steps: 1. Typed lowering. 2. Representation selection (actually SimplifiedLowering). 3. Early optimization pass (incl. JSGenericLowering). 4. Effect control linearization (not for asm.js). 5. Late optimization pass (incl. ChangeLowering). 6. Real scheduling. We should further cleanup the passes and restrict type and representation information usage to appropriate parts of the pipeline. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1907963002 Cr-Commit-Position: refs/heads/master@{#35702}
-
bmeurer authored
This operator doesn't generate any actual code, but teaches the register allocator that a certain computed pointer value is tagged. This is required to safely implement InnerAllocate (and we also use this for Allocate to be sure that we don't suddenly leak a dangling pointer into the heap somewhere). R=epertoso@chromium.org BUG=v8:4939 LOG=n Review URL: https://codereview.chromium.org/1905813003 Cr-Commit-Position: refs/heads/master@{#35700}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1912553002 Cr-Commit-Position: refs/heads/master@{#35699}
-
titzer authored
R=jfb@chromium.org,rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1900153002 Cr-Commit-Position: refs/heads/master@{#35698}
-
verwaest authored
BUG=chromium:605060 LOG=n Review URL: https://codereview.chromium.org/1907953002 Cr-Commit-Position: refs/heads/master@{#35697}
-
epertoso authored
Adds a Generate method to the stubs that can be used to embed the graph directly in the bytecode handlers. Review URL: https://codereview.chromium.org/1902823002 Cr-Commit-Position: refs/heads/master@{#35696}
-
titzer authored
R=bradnelson@chromium.org,aseemgarg@chromium.org BUG= Review URL: https://codereview.chromium.org/1909513002 Cr-Commit-Position: refs/heads/master@{#35695}
-
mstarzinger authored
This check whether a function is being debugged is obsolete. For the optimization path it is covered by a bailout further down. The lookup within the optimized code map doesn't need to be covered, because that map is guaranteed to stay empty while break slots are present. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1907923003 Cr-Commit-Position: refs/heads/master@{#35694}
-
ishell authored
[deoptimizer] Do not modify stack_fp which is used as a key for lookup of previously materialized objects. BUG=chromium:604680, v8:4698 LOG=N Review URL: https://codereview.chromium.org/1904663003 Cr-Commit-Position: refs/heads/master@{#35693}
-
jochen authored
BUG=v8:4933 R=verwaest@chromium.org LOG=n Review URL: https://codereview.chromium.org/1899283003 Cr-Commit-Position: refs/heads/master@{#35692}
-
ahaas authored
This patch provides a new implementation of popcnt and ctz in the case where the platform does not provide these instructions. Instead of building a TF graph which implements it we now call a C function. Additionally I turned on additional tests in test-run-wasm-64.cc R=titzer@chromium.org Review URL: https://codereview.chromium.org/1857363003 Cr-Commit-Position: refs/heads/master@{#35685}
-
danno authored
Move allocation-related and smi un/tagging methods into CodeStubAssembler. Review URL: https://codereview.chromium.org/1893383002 Cr-Commit-Position: refs/heads/master@{#35684}
-
yangguo authored
Port 3518e492 Original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. R=bmeurer@chromium.org BUG=v8:4923,chromium:604897 LOG=N Review URL: https://codereview.chromium.org/1902393004 Cr-Commit-Position: refs/heads/master@{#35683}
-
jyan authored
Port 3518e492 Original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. R=yangguo@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4923,chromium:604897 LOG=N Review URL: https://codereview.chromium.org/1911633002 Cr-Commit-Position: refs/heads/master@{#35682}
-
zhengxing.li authored
port 3518e492 (r35660) original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. BUG= Review URL: https://codereview.chromium.org/1904003003 Cr-Commit-Position: refs/heads/master@{#35681}
-
bradnelson authored
BUG= https://code.google.com/p/v8/issues/detail?id=4203 BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=575167 TEST=None R=ahaas@chromium.org,isherman@chromium.org LOG=N Review URL: https://codereview.chromium.org/1895223004 Cr-Commit-Position: refs/heads/master@{#35680}
-
- 20 Apr, 2016 14 commits
-
-
adamk authored
Our previous over-conservative answer caused us to emit hole checks in full-codegen when eagerly parsing but not when lazily parsing. With this patch, we use the positions of the BinaryOperations making up the parameter list (which are the positions of the commas) to determine the appropriate "end position" for each parameter's initializer. This means that we get accurate-enough positions for the initializers in the eager parsing step to get the same answers for hole-check-elimination that we will later during ParseLazy. In the included test case, for example: (function() { ((s = 17, y = s) => s)(); } )(); ^2 ^1 The old code would generate a hole check when trying to load |s| for assignment to |y| (because it treated the closing parentheses pointed to by "^1" as the "initialization position" of |s|). The new code uses the comma pointed to by "^2" as the initialization position of |s|. Since that occurs textually before the load of |s|, full-codegen knows it can avoid the hole check. BUG=v8:4908 LOG=n Review URL: https://codereview.chromium.org/1900343002 Cr-Commit-Position: refs/heads/master@{#35678}
-
jyan authored
Port 81a1530e Original commit message: Before frame elision, we finalized the frame shape when assembling the prologue, which is also when we prepared the frame (saving sp, etc). The frame finalization only needs to happen once, and happens to be actually a set of idempotent operations. With frame elision, the logic for frame finalization was happening every time we constructed the frame. Albeit idempotent operations, the code would become hard to maintain. This change separates frame shape finalization from frame construction. When constructing the CodeGenerator, we finalize the frame. Subsequent access is to a const Frame*. Also renamed AssemblePrologue to AssembleConstructFrame, as suggested in the frame elision CR. Separating frame setup gave the opportunity to do away with architecture-independent frame aligning (which is something just arm64 cares about), and also with stack pointer setup (also arm64). Both of these happen now at frame finalization on arm64. R=mtrofin@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1903403002 Cr-Commit-Position: refs/heads/master@{#35677}
-
bryleun authored
R=joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com,jyan@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1905613002 Cr-Commit-Position: refs/heads/master@{#35675}
-
bjaideep authored
Port 81a1530e Original commit message: Before frame elision, we finalized the frame shape when assembling the prologue, which is also when we prepared the frame (saving sp, etc). The frame finalization only needs to happen once, and happens to be actually a set of idempotent operations. With frame elision, the logic for frame finalization was happening every time we constructed the frame. Albeit idempotent operations, the code would become hard to maintain. This change separates frame shape finalization from frame construction. When constructing the CodeGenerator, we finalize the frame. Subsequent access is to a const Frame*. Also renamed AssemblePrologue to AssembleConstructFrame, as suggested in the frame elision CR. Separating frame setup gave the opportunity to do away with architecture-independent frame aligning (which is something just arm64 cares about), and also with stack pointer setup (also arm64). Both of these happen now at frame finalization on arm64. R=mtrofin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1903343002 Cr-Commit-Position: refs/heads/master@{#35674}
-
jyan authored
Port 59546149 Original commit message: Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). R=adamk@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1901423004 Cr-Commit-Position: refs/heads/master@{#35673}
-
jyan authored
Port 623ad7de Original commit message: Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. R=rmcilroy@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1910503002 Cr-Commit-Position: refs/heads/master@{#35672}
-
bjaideep authored
Port 3518e492 Original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4923,chromium:604897 LOG=N Review URL: https://codereview.chromium.org/1901593005 Cr-Commit-Position: refs/heads/master@{#35671}
-
clemensh authored
Before, just a string was thrown, so no stack trace was attached there. Generated code from wasm does not grow by this change, we just pass a message id to the respective (new) runtime function. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1874383002 Cr-Commit-Position: refs/heads/master@{#35664}
-
ahaas authored
All wasm spec tests can now be run on ia32. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1899753004 Cr-Commit-Position: refs/heads/master@{#35663}
-
mstarzinger authored
This is just a pure renaming because "baseline" will be the code name for our upcoming middle tier within the compilation pipeline. It makes sure the name "baseline" remains unused. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1904463002 Cr-Commit-Position: refs/heads/master@{#35661}
-
yangguo authored
Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. R=jkummerow@chromium.org BUG=v8:4923,chromium:604897 LOG=N Review URL: https://codereview.chromium.org/1901573003 Cr-Commit-Position: refs/heads/master@{#35660}
-
mbrandy authored
Port 978ad03b Original commit message: Fix and re-enable the flexible representation for Math.floor (which is used to implement Math.ceil) and Math.round, which allows Math.floor and Math.round to return double results instead of int32, and therefore allows values outside the int32 range, especially -0 is now a valid result, which doesn't deopt. Also port this feature to x64 and ia32 when the CPU supports the SSE4.1 extension. This addresses all the known deoptimization loops related to Math.round in the Kraken benchmark suite, and seems to also address most of the deoptimization loops related to Math.floor in the Oort Online benchmark. Drive-by-fix: Import the regression tests for the broken HMathFloorOfDiv optimization that caused the initial revert of the feature (for arm64 only back then). R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:476477,v8:2890,v8:4059 LOG=n Review URL: https://codereview.chromium.org/1839643007 Cr-Commit-Position: refs/heads/master@{#35659}
-
jyan authored
Port d2b0a4b7 Original commit message: MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>; R= verwaest@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1902353002 Cr-Commit-Position: refs/heads/master@{#35658}
-
jyan authored
Port d412cfa2 Original commit message: [Atomics] Remove Atomics code stubs; use TF ops Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! R=binji@chromium.org, joransiu@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4614 LOG=N Review URL: https://codereview.chromium.org/1897373003 Cr-Commit-Position: refs/heads/master@{#35657}
-