- 22 Apr, 2016 13 commits
-
-
mstarzinger authored
This ensures the InterpreterEntryTrampoline heals code entry fields inside closures when being called without a valid bytecode array. This is preparatory work to allow removal of bytecode when switching some functions to other types of code. R=rmcilroy@chromium.org BUG=v8:4280 LOG=n Review URL: https://codereview.chromium.org/1904093002 Cr-Commit-Position: refs/heads/master@{#35724}
-
bmeurer authored
Get rid of further typing checks from ChangeLowering and put them into the representation selection pass instead (encoding the information in the operator instead). Drive-by-change: Rename ChangeSmiToInt32 to ChangeTaggedSignedToInt32 for consistency about naming Tagged, TaggedSigned and TaggedPointer. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1909343002 Cr-Commit-Position: refs/heads/master@{#35723}
-
lpy authored
Currently we are using UnsafeCurrent in async signal handler to acquire the isolate of VM thread, but we want to get rid of that since it prevents V8 from being thread agnostic. This patch replaces UnsafeCurrent with a static map, where we store a map of samplers for threads, and makes it accessible by signal handler. BUG=v8:4889 LOG=n Review URL: https://codereview.chromium.org/1900473002 Cr-Commit-Position: refs/heads/master@{#35722}
-
yangguo authored
Some scopes are introduced by the parser for desugaring and do not have any positions associated. The debugger should not make them visible. Also add some missing source positions. R=kozyatinskiy@chromium.org, rossberg@chromium.org BUG=chromium:604458 LOG=Y Review URL: https://codereview.chromium.org/1901413002 Cr-Commit-Position: refs/heads/master@{#35721}
-
rmcilroy authored
Adds IncStub and DecStub TurboFan code stubs and hooks them up to the interpreter's Inc and Dec bytecodes (which are used for count operations, e.g. i++). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1901083002 Cr-Commit-Position: refs/heads/master@{#35720}
-
rmcilroy authored
Fixes a mistake made in r35618 for register OperandSize calculations. BUG=605470 LOG=N Review URL: https://codereview.chromium.org/1908033002 Cr-Commit-Position: refs/heads/master@{#35719}
-
machenbach authored
BUG=chromium:605516 LOG=n Review URL: https://codereview.chromium.org/1913013003 Cr-Commit-Position: refs/heads/master@{#35718}
-
ulan authored
BUG=chromium:605349 LOG=NO Review URL: https://codereview.chromium.org/1912923003 Cr-Commit-Position: refs/heads/master@{#35717}
-
neis authored
The new bytecodes replace two runtime functions. They are still unsupported by the bytecode graphbuilder, though. BUG=v8:4907 LOG=n Review URL: https://codereview.chromium.org/1904933002 Cr-Commit-Position: refs/heads/master@{#35716}
-
jkummerow authored
This is a follow-up to 58429beb "Fix KeyedStore stub selection for STRING_WRAPPER_ELEMENTS". BUG=chromium:602184 LOG=n Review URL: https://codereview.chromium.org/1912443004 Cr-Commit-Position: refs/heads/master@{#35715}
-
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 27 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}
-
mstarzinger authored
R=machenbach@chromium.org Review URL: https://codereview.chromium.org/1908503003 Cr-Commit-Position: refs/heads/master@{#35710}
-
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}
-
yangguo authored
BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1907973002 Cr-Commit-Position: refs/heads/master@{#35704}
-
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}
-
yangguo authored
R=vogelheim@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1910813002 Cr-Commit-Position: refs/heads/master@{#35701}
-
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}
-
clemensh authored
Since traps now throw real Error objects, we get stack traces containing <WASM> functions on top-level. The additional tests check for two traps: unreachable and memory out-of-bounds. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1878563003 Cr-Commit-Position: refs/heads/master@{#35691}
-
v8-autoroll authored
Rolling v8/buildtools to e84114dbe2b65428951c876349b6a3ff1afbfccd Rolling v8/tools/clang to 2956eca572ff0e1b181df65f71a045f061a2eb34 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1909483004 Cr-Commit-Position: refs/heads/master@{#35690}
-
zhengxing.li authored
The CL #35651 (https://codereview.chromium.org/1858323003) exposed one hiden issue in RunTruncateFloat32ToUint32 test cases and X87 failed at it. Here is the issue in RunTruncateFloat32ToUint32: For float input = static_cast<float>(*i), the x87 GCC would optimize the input viariable in float floating register for release build. The problem is: SSE float register has single precision rounding semantic While X87 register hasn't when directly use floating register value. It will cause the value of input viariable has different precision for IA32 and X87 port. So static_cast<uint32_t>(input) will be different for IA32 and X87 port too. This led to CHECK_EQ(static_cast<uint32_t>(input), m.Call(input)) fail although V8 turbofan JITTed code m.Call(input) has exactly same result in both X87 and IA32 port. So we add the following sentence to do type cast to keep the single precision for RunTruncateFloat32ToUint32 by forcing the input viariable get value from memory insread of floating register. Such as: volatile float input = static_cast<float>(*i). BUG= Review URL: https://codereview.chromium.org/1905883002 Cr-Commit-Position: refs/heads/master@{#35689}
-
machenbach authored
BUG=v8:4928 LOG=n NOTRY=true Review URL: https://codereview.chromium.org/1903043006 Cr-Commit-Position: refs/heads/master@{#35688}
-
clemensh authored
This extends the wasm test case which only checks the "simple" string-variant of the stack trace. It checks the return values of the getFunctionName, getLineNumber, getFileName and toString methods. R=machenbach@chromium.org, jfb@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/1875153002 Cr-Commit-Position: refs/heads/master@{#35687}
-
machenbach authored
The external snapshot target is missing a few build dependencies. TBR=vogelheim@chromium.org, yangguo@chromium.org, clemensh@chromium.org Review URL: https://codereview.chromium.org/1904013002 Cr-Commit-Position: refs/heads/master@{#35686}
-
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}
-