Commit Graph

19299 Commits

Author SHA1 Message Date
adamk@chromium.org
ae7161e4cb Revert "Remove SmartMove, bringing Array methods further into spec compliance"
This reverts https://code.google.com/p/v8/source/detail?r=24647

It caused test failures in Array methods in Linux64 OptimizeForSize.

BUG=v8:2615
TBR=verwaest@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/656683003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 23:53:02 +00:00
adamk@chromium.org
bb885a79db Remove SmartMove, bringing Array methods further into spec compliance
This is one step towards a single codepath for each method in array.js.

This patch is based on rafaelw's https://codereview.chromium.org/349073002

BUG=v8:2615
LOG=Y
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/455933002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 23:36:58 +00:00
adamk@chromium.org
a6ff3f7f4a Handle exceptions thrown by Array.observe machinery
BUG=chromium:417709
LOG=N
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/651323003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 18:22:20 +00:00
balazs.kilvady@imgtec.com
e6a73c1eb5 MIPS: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
Port r24636

Original commit message:
Saving a runtime call for many builtin functions.

BUG=
R=paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/661503002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 17:14:17 +00:00
jkummerow@chromium.org
8949d5f580 Fix compilation some more after r24639
Third time's a charm...

TBR=yangguo@chromium.org

Review URL: https://codereview.chromium.org/655223003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 15:04:09 +00:00
sigurds@chromium.org
2577d6c261 Fix compilation after r24639
TBR=yangguo@chromium.org

Review URL: https://codereview.chromium.org/653353003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:42:32 +00:00
jkummerow@chromium.org
d7acb9148b Fix compilation after r24639
TBR=yangguo@chromium.org

Review URL: https://codereview.chromium.org/661473002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:27:26 +00:00
rossberg@chromium.org
0ab88698ae Fix verification of Int64Constant
TBR=jarin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/660533002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:17:26 +00:00
neis@chromium.org
a6f06b4d1f Give simple types to Math.Min, Math.Max, Math.Fround, Math.Clz32.
R=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/657793002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:12:20 +00:00
yangguo@chromium.org
4f9fd83d85 Break deserializer reservations into chunks that fit onto a page.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/653033002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:04:53 +00:00
dslomov@chromium.org
461a2f403e Convert argument toObject() in Object.getOwnPropertyNames/Descriptors
BUG=v8:3443
LOG=Y
R=arv@chromium.org, dslomov@chromium.org

Review URL: https://codereview.chromium.org/613283002

Patch from Caitlin Potter <caitpotter88@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:01:20 +00:00
jkummerow@chromium.org
c9ae9b3b70 Implement inline %_IsJSProxy() for full codegen and Hydrogen
Saving a runtime call for many builtin functions.

R=ishell@chromium.org

Review URL: https://codereview.chromium.org/651223002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 13:26:43 +00:00
titzer@chromium.org
ad80a80a8b Fix bug in NodeCache::GetCachedNodes
TBR=dcarney@chromium.org
BUG=

Review URL: https://codereview.chromium.org/656033003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 13:07:18 +00:00
jochen@chromium.org
21f7300a5b Fix GetCurrentThreadId for Solaris etc..
BUG=v8:3620
R=svenpanne@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/653263003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:38:53 +00:00
machenbach@chromium.org
33c676388c Whitespace change to test new git workflow.
TBR=agable@chromium.org

Review URL: https://codereview.chromium.org/657073002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:38:38 +00:00
titzer@chromium.org
754abff699 Add JSGraph::GetCachedNodes and NodeCache::GetCachedNodes. These routines are necessary in the dead code elimination phase to trim away uses from unreachable nodes.
R=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/656103002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:29:39 +00:00
verwaest@chromium.org
23868b419c Optimize Function.prototype.call
BUG=
R=verwaest@chromium.org, jarin@chromium.org, jkummerow@chromium.org

Review URL: https://codereview.chromium.org/588573002

Patch from Petka Antonov <p.antonov@partner.samsung.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:22:15 +00:00
dcarney@chromium.org
37f1645023 [turbofan] more verification of rpo
R=titzer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/603533002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:15:38 +00:00
vegorov@chromium.org
6fc00b4dea Fix out-of-bounds read in SourcePositionToScriptPosition with --hydrogen-track-positions.
We were indexing into the list of inlined functions with inlining ID, which is incorrect.

There can be multiple inlinining IDs corresponding to the same inlined function, because inlining ID is inlining path sensitive unique id for an inlining attempt.

Additionally allow HAbnormalExit to have unknown source position even if we are tracking source positions. No code is generated from abnormal exits anyways.

R=svenpanne@chromium.org
BUG=v8:3184
LOG=N

Review URL: https://codereview.chromium.org/653993005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:06:41 +00:00
rossberg@chromium.org
458db603a4 Presubmit checks
TBR=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/658733002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 11:58:30 +00:00
rossberg@chromium.org
7464f04ebf Fix oversight in type change
TBR=dcarney@chromium.org
BUG=

Review URL: https://codereview.chromium.org/646033005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 11:56:05 +00:00
rossberg@chromium.org
0e16150d33 Better typing and type verification
- Extend verifier to check types of JS and Simplified nodes.
- Untyped nodes now contain NULL as types, enforcing hard failure.
- Typer immediately installs itself as a decorator; remove explicit decorator installation.
- Decorator eagerly types all nodes that have typed inputs
  (subsumes typing of constant cache, removing its typing
  side-channel and various spurious dependencies on the typer).
- Cut down typer interface to prevent inconsistently typed graphs.
- Remove verification from start, since it caused too much trouble
  with semi-wellformed nodes.
- Fix a couple of bugs on the way that got uncovered.

To do: verifying machine operators. Also, various conditions in the
verifier are currently commented out, because they don't yet hold.

BUG=
R=jarin@chromium.org,titzer@chromium.org

Review URL: https://codereview.chromium.org/658543002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 11:38:04 +00:00
yangguo@chromium.org
46db2f9b80 Make event logger slightly more light-weight.
R=dcarney@chromium.org
BUG=chromium:423668
LOG=N

Review URL: https://codereview.chromium.org/651413002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 11:16:42 +00:00
erikcorry@chromium.org
3727a10d20 Use WeakCell to handle the script wrapper cache
The script wrapper cache used the API weak handles to provide a weak link from Script to ScriptWrapper. We want to change the way API weakness works, and in this context it's best to get rid of users of the API that don't need to be users.

R=ulan@chromium.org
BUG=

Review URL: https://codereview.chromium.org/659513003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 10:11:08 +00:00
yangguo@chromium.org
5e17ead8df Initialize double values before calling rempio2.
R=ishell@chromium.org
BUG=chromium:421981
LOG=N

Review URL: https://codereview.chromium.org/645243003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 09:24:55 +00:00
svenpanne@chromium.org
e216ab1d40 Array.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primitive wrapper for calls.
When the receiver is a primitive value, it's cast to an Object before entering the loop. Instead, it should be cast to an Object for each function call while in the loop.

BUG=v8:3536
LOG=Y
R=arv@chromium.org, svenpanne@chromium.org, wingo@igalia.com

Review URL: https://codereview.chromium.org/553413002

Patch from Diego Pino <dpino@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 09:11:32 +00:00
bmeurer@chromium.org
985db1a3c8 [x86] Several small performance improvements.
- Generate

    cmp reg, 0

  instead of

    test reg, -1

  for word tests.
- Generate

    mov reg, [stack slot]
    add reg, reg
    jo label

  instead of

    mov reg, [stack slot]
    add reg, [stack slot]
    jo label

  for SMI tagging.
- Improve materialization of int32 constants on X86-64.
- Branch fusion fix for Word64And and Int64Sub on X86-64.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/651383003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 09:05:40 +00:00
dcarney@chromium.org
b26632f655 Let FastCloneShallowObjectStub work with empty literal objects.
R=verwaest@chromium.org

LOG=N

BUG=417290

Review URL: https://codereview.chromium.org/655163002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:48:44 +00:00
ulan@chromium.org
ac1f429689 Remove test-api/Regress2107 since it doesn't test what Chrome does.
BUG=v8:3625
LOG=N
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/657033003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:44:00 +00:00
dcarney@chromium.org
c8a0ea9e3a [turbofan] fix block mapping in code comments
R=bmeurer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/635213003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:23:24 +00:00
neis@chromium.org
93d0e79d6e Again reland "Refine expression typing, esp. by propagating range information."
This relands commit 24552.

TBR=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/650513003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:21:46 +00:00
bmeurer@chromium.org
f574d93e51 Revert "Reland "Refine expression typing, esp. by propagating range information.""
This reverts commit r24609 for breaking the
cctest/test-js-typed-lowering/Int32BitwiseBinops test.

TBR=rossberg@chromium.org,neis@chromium.org

Review URL: https://codereview.chromium.org/656003002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 03:50:13 +00:00
balazs.kilvady@imgtec.com
2de468e854 MIPS: [turbofan] Optimize division/modulus by constant.
Port r24595 (d0f464e)

TEST=cctest,mjsunit,unittests
BUG=
R=paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/651223003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 17:26:14 +00:00
sigurds@chromium.org
b30c09d969 Fix performance bug in scheduler.
TBR=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/651233002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 16:28:32 +00:00
neis@chromium.org
a7eb593147 Reland "Refine expression typing, esp. by propagating range information."
This relands commit 24552.

R=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/653693002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 16:27:26 +00:00
yangguo@chromium.org
9a21ba499c Catch exceptions thrown when enqueuing change records.
R=ishell@chromium.org
BUG=chromium:417709
LOG=N

Review URL: https://codereview.chromium.org/653593002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:46:11 +00:00
yangguo@chromium.org
1a90501909 Fix V8's default timer event logger.
This broke because the optimizing compiler thread no longer holds
Isolate::Current() in its TLS.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/655813002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:45:03 +00:00
ulan@chromium.org
dd49272c00 Weak Cells
Introduce an object that holds a weak reference.
Design document: http://goo.gl/9dSvvy.

BUG=
R=erik.corry@gmail.com

Review URL: https://codereview.chromium.org/640303006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:43:45 +00:00
jkummerow@chromium.org
75fe010f93 Always initialize key_type_ in AST nodes
BUG=chromium:423117
LOG=n
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/652183002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 13:52:15 +00:00
yangguo@chromium.org
974f3dcfee Correctly expand literal buffer for surrogate pairs.
R=jkummerow@chromium.org
BUG=chromium:423212
LOG=Y

Review URL: https://codereview.chromium.org/652743005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 13:25:19 +00:00
neis@chromium.org
327d3ae870 Add typing for Int32MulHigh.
TBR=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/656803003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:41:34 +00:00
neis@chromium.org
4587329594 Simple typing of machine operators.
R=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/658523002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:27:29 +00:00
jkummerow@chromium.org
d7482818a6 Fix de/serialization tests after r24592
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/654853002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:21:18 +00:00
machenbach@chromium.org
935702e655 Make release script cleanup more robust.
This is a work-around that checks out master if the
remembered branch is corrupt.

BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org

Review URL: https://codereview.chromium.org/659473002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:19:32 +00:00
machenbach@chromium.org
6d69354154 Fix remote branch location in releases script (2).
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org

Review URL: https://codereview.chromium.org/653533003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:10:48 +00:00
sigurds@chromium.org
4dc4b40925 Reland "Fix scheduler to correctly schedule nested diamonds".
Reland fix: Consume less memory.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/636233006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:08:55 +00:00
machenbach@chromium.org
ddd2d09a59 Fix remote branch location in releases script.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org

Review URL: https://codereview.chromium.org/653923002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:00:22 +00:00
bmeurer@chromium.org
81877a6440 [turbofan] Optimize division/modulus by constant.
TEST=cctest,mjsunit,unittests
R=dcarney@chromium.org, svenpanne@chromium.org

Review URL: https://codereview.chromium.org/654833002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:57:06 +00:00
ishell@chromium.org
f58558d910 Preserve order of fields when doing slow-to-fast object migration.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/614883003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:03:35 +00:00
svenpanne@chromium.org
da0c38056f Squeeze the layout of various AST node types.
The following AST node types were improved (in decreasing number of
importance for asm.js-like source code): Expression, VariableProxy,
Assignment, BinaryOperation, Declaration, Property, Call.

BUG=chromium:417697
LOG=y
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/646803004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 10:24:18 +00:00