platform/upstream/v8.git
10 years agoGive simple types to Math.Min, Math.Max, Math.Fround, Math.Clz32.
neis@chromium.org [Wed, 15 Oct 2014 14:12:20 +0000 (14:12 +0000)]
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

10 years agoBreak deserializer reservations into chunks that fit onto a page.
yangguo@chromium.org [Wed, 15 Oct 2014 14:04:53 +0000 (14:04 +0000)]
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

10 years agoConvert argument toObject() in Object.getOwnPropertyNames/Descriptors
dslomov@chromium.org [Wed, 15 Oct 2014 14:01:20 +0000 (14:01 +0000)]
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

10 years agoImplement inline %_IsJSProxy() for full codegen and Hydrogen
jkummerow@chromium.org [Wed, 15 Oct 2014 13:26:43 +0000 (13:26 +0000)]
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

10 years agoFix bug in NodeCache::GetCachedNodes
titzer@chromium.org [Wed, 15 Oct 2014 13:07:18 +0000 (13:07 +0000)]
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

10 years agoFix GetCurrentThreadId for Solaris etc..
jochen@chromium.org [Wed, 15 Oct 2014 12:38:53 +0000 (12:38 +0000)]
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

10 years agoWhitespace change to test new git workflow.
machenbach@chromium.org [Wed, 15 Oct 2014 12:38:38 +0000 (12:38 +0000)]
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

10 years agoAdd JSGraph::GetCachedNodes and NodeCache::GetCachedNodes. These routines are necessa...
titzer@chromium.org [Wed, 15 Oct 2014 12:29:39 +0000 (12:29 +0000)]
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

10 years agoOptimize Function.prototype.call
verwaest@chromium.org [Wed, 15 Oct 2014 12:22:15 +0000 (12:22 +0000)]
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

10 years ago[turbofan] more verification of rpo
dcarney@chromium.org [Wed, 15 Oct 2014 12:15:38 +0000 (12:15 +0000)]
[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

10 years agoFix out-of-bounds read in SourcePositionToScriptPosition with --hydrogen-track-positions.
vegorov@chromium.org [Wed, 15 Oct 2014 12:06:41 +0000 (12:06 +0000)]
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

10 years agoPresubmit checks
rossberg@chromium.org [Wed, 15 Oct 2014 11:58:30 +0000 (11:58 +0000)]
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

10 years agoFix oversight in type change
rossberg@chromium.org [Wed, 15 Oct 2014 11:56:05 +0000 (11:56 +0000)]
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

10 years agoBetter typing and type verification
rossberg@chromium.org [Wed, 15 Oct 2014 11:38:04 +0000 (11:38 +0000)]
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

10 years agoMake event logger slightly more light-weight.
yangguo@chromium.org [Wed, 15 Oct 2014 11:16:42 +0000 (11:16 +0000)]
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

10 years agoUse WeakCell to handle the script wrapper cache
erikcorry@chromium.org [Wed, 15 Oct 2014 10:11:08 +0000 (10:11 +0000)]
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

10 years agoInitialize double values before calling rempio2.
yangguo@chromium.org [Wed, 15 Oct 2014 09:24:55 +0000 (09:24 +0000)]
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

10 years agoArray.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primi...
svenpanne@chromium.org [Wed, 15 Oct 2014 09:11:32 +0000 (09:11 +0000)]
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

10 years ago[x86] Several small performance improvements.
bmeurer@chromium.org [Wed, 15 Oct 2014 09:05:40 +0000 (09:05 +0000)]
[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

10 years agoLet FastCloneShallowObjectStub work with empty literal objects.
dcarney@chromium.org [Wed, 15 Oct 2014 08:48:44 +0000 (08:48 +0000)]
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

10 years agoRemove test-api/Regress2107 since it doesn't test what Chrome does.
ulan@chromium.org [Wed, 15 Oct 2014 08:44:00 +0000 (08:44 +0000)]
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

10 years ago[turbofan] fix block mapping in code comments
dcarney@chromium.org [Wed, 15 Oct 2014 08:23:24 +0000 (08:23 +0000)]
[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

10 years agoAgain reland "Refine expression typing, esp. by propagating range information."
neis@chromium.org [Wed, 15 Oct 2014 08:21:46 +0000 (08:21 +0000)]
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

10 years agoRevert "Reland "Refine expression typing, esp. by propagating range information.""
bmeurer@chromium.org [Wed, 15 Oct 2014 03:50:13 +0000 (03:50 +0000)]
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

10 years agoMIPS: [turbofan] Optimize division/modulus by constant.
balazs.kilvady@imgtec.com [Tue, 14 Oct 2014 17:26:14 +0000 (17:26 +0000)]
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

10 years agoFix performance bug in scheduler.
sigurds@chromium.org [Tue, 14 Oct 2014 16:28:32 +0000 (16:28 +0000)]
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

10 years agoReland "Refine expression typing, esp. by propagating range information."
neis@chromium.org [Tue, 14 Oct 2014 16:27:26 +0000 (16:27 +0000)]
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

10 years agoCatch exceptions thrown when enqueuing change records.
yangguo@chromium.org [Tue, 14 Oct 2014 14:46:11 +0000 (14:46 +0000)]
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

10 years agoFix V8's default timer event logger.
yangguo@chromium.org [Tue, 14 Oct 2014 14:45:03 +0000 (14:45 +0000)]
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

10 years agoWeak Cells
ulan@chromium.org [Tue, 14 Oct 2014 14:43:45 +0000 (14:43 +0000)]
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

10 years agoAlways initialize key_type_ in AST nodes
jkummerow@chromium.org [Tue, 14 Oct 2014 13:52:15 +0000 (13:52 +0000)]
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

10 years agoCorrectly expand literal buffer for surrogate pairs.
yangguo@chromium.org [Tue, 14 Oct 2014 13:25:19 +0000 (13:25 +0000)]
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

10 years agoAdd typing for Int32MulHigh.
neis@chromium.org [Tue, 14 Oct 2014 12:41:34 +0000 (12:41 +0000)]
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

10 years agoSimple typing of machine operators.
neis@chromium.org [Tue, 14 Oct 2014 12:27:29 +0000 (12:27 +0000)]
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

10 years agoFix de/serialization tests after r24592
jkummerow@chromium.org [Tue, 14 Oct 2014 12:21:18 +0000 (12:21 +0000)]
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

10 years agoMake release script cleanup more robust.
machenbach@chromium.org [Tue, 14 Oct 2014 12:19:32 +0000 (12:19 +0000)]
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

10 years agoFix remote branch location in releases script (2).
machenbach@chromium.org [Tue, 14 Oct 2014 12:10:48 +0000 (12:10 +0000)]
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

10 years agoReland "Fix scheduler to correctly schedule nested diamonds".
sigurds@chromium.org [Tue, 14 Oct 2014 12:08:55 +0000 (12:08 +0000)]
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

10 years agoFix remote branch location in releases script.
machenbach@chromium.org [Tue, 14 Oct 2014 12:00:22 +0000 (12:00 +0000)]
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

10 years ago[turbofan] Optimize division/modulus by constant.
bmeurer@chromium.org [Tue, 14 Oct 2014 11:57:06 +0000 (11:57 +0000)]
[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

10 years agoPreserve order of fields when doing slow-to-fast object migration.
ishell@chromium.org [Tue, 14 Oct 2014 11:03:35 +0000 (11:03 +0000)]
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

10 years agoSqueeze the layout of various AST node types.
svenpanne@chromium.org [Tue, 14 Oct 2014 10:24:18 +0000 (10:24 +0000)]
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

10 years agoAlways compile functions in the snapshot with deoptimization support.
jkummerow@chromium.org [Tue, 14 Oct 2014 09:59:24 +0000 (09:59 +0000)]
Always compile functions in the snapshot with deoptimization support.

This prevents an unnecessary deopt-reopt cycle due to type feedback
having been thrown away as part of recompiling with deopt support.
(For non-snapshotted functions this is not an issue.)

Bonus: Add missing space in --trace-ic output, and provide names for
PropertyDescriptor's methods, because passing anonymous functions to
SetUpLockedPrototype frightens and confuses our FuncNameInferrer.

R=hpayer@chromium.org, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Add support for shifted and rotated operands on ARM64.
baptiste.afsa@arm.com [Tue, 14 Oct 2014 09:28:53 +0000 (09:28 +0000)]
[turbofan] Add support for shifted and rotated operands on ARM64.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agobuild fix
dcarney@chromium.org [Tue, 14 Oct 2014 09:22:21 +0000 (09:22 +0000)]
build fix

TBR=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSwitch chromium roll script to git.
machenbach@chromium.org [Tue, 14 Oct 2014 09:00:16 +0000 (09:00 +0000)]
Switch chromium roll script to git.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd control input to LoadField.
sigurds@chromium.org [Tue, 14 Oct 2014 08:59:27 +0000 (08:59 +0000)]
Add control input to LoadField.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] remove some of the dependency of Instruction on Schedule
dcarney@chromium.org [Tue, 14 Oct 2014 08:51:22 +0000 (08:51 +0000)]
[turbofan] remove some of the dependency of Instruction on Schedule

R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Output schedule, instructions and register allocator in C1 visualizer...
jarin@chromium.org [Tue, 14 Oct 2014 08:43:33 +0000 (08:43 +0000)]
[turbofan] Output schedule, instructions and register allocator in C1 visualizer format when --turbo-trace is specified.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Use register for instruction operands when SameAsFirst is specified.
jarin@chromium.org [Tue, 14 Oct 2014 08:34:20 +0000 (08:34 +0000)]
[turbofan] Use register for instruction operands when SameAsFirst is specified.

As the register allocator cannot reuse spill slots, SameAsFirst
constraint means that we would have to do an expensive move to a
differen spill slot if we choose to spill. Forcing the operand
to a register is cheaper.

In zlib, we get >10% speed-up for ia32, >25% for x64.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoIncrease final idle time in idle notifcation of test test-api/Regress2107.
hpayer@chromium.org [Tue, 14 Oct 2014 08:10:41 +0000 (08:10 +0000)]
Increase final idle time in idle notifcation of test test-api/Regress2107.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[arm] Drop SMMLS support.
bmeurer@chromium.org [Tue, 14 Oct 2014 07:47:27 +0000 (07:47 +0000)]
[arm] Drop SMMLS support.

Apparently

 SMMLS r, b, c, a

computes

 r = ((a << 32) - b * c) >> 32

while the documentation is kinda misleading and states that it should
compute

 r = a - ((b * c) >> 32)

The actual behavior is kinda useless, so we drop the instruction again.

TEST=cctest,unittests
TBR=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[arm] Add support for SMMLA, SMMLS and SMMUL.
bmeurer@chromium.org [Tue, 14 Oct 2014 05:03:04 +0000 (05:03 +0000)]
[arm] Add support for SMMLA, SMMLS and SMMUL.

TEST=cctest,unittests
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Add OWNERS file for compiler unittests.
bmeurer@chromium.org [Tue, 14 Oct 2014 03:55:43 +0000 (03:55 +0000)]
MIPS: Add OWNERS file for compiler unittests.

BUG=
R=bmeurer@chromium.org

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

Patch from Paul Lind <paul.lind@imgtec.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix non-TF targets after r24546.
bmeurer@chromium.org [Tue, 14 Oct 2014 03:46:37 +0000 (03:46 +0000)]
Fix non-TF targets after r24546.

Fix mips64 and x87 builds.

BUG=
R=bmeurer@chromium.org

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

Patch from Paul Lind <paul.lind@imgtec.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoX87: Support for super assignments in for..in.
weiliang.lin@intel.com [Tue, 14 Oct 2014 02:55:29 +0000 (02:55 +0000)]
X87: Support for super assignments in for..in.

port r24560.

original commit message:
  Support for super assignments in for..in.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: [turbofan] Make VisitBranch and friends to backend specific.
paul.lind@imgtec.com [Mon, 13 Oct 2014 23:31:59 +0000 (23:31 +0000)]
MIPS: [turbofan] Make VisitBranch and friends to backend specific.

Port r24546 (c3443cd)

Original commit message:
This is required to fix a tricky branch fusion bug on ARM, which was
caused by the interaction between the architecture-independent and
architecture-specific parts of the InstructionSelector. In the end it
wasn't worth sharing a few common lines of code for the additional
complexity, especially if we also want to properly support architectures
without any dedicated flags register (i.e. MIPS).

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

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

Patch from Balazs Kilvady <balazs.kilvady@imgtec.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Support for super assignments in for..in.
balazs.kilvady@imgtec.com [Mon, 13 Oct 2014 19:28:25 +0000 (19:28 +0000)]
MIPS: Support for super assignments in for..in.

Port r24560 (ef1070b)

BUG=v8:3330
LOG=N
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix IdleNotificationFinishMarking test on slow devices.
hpayer@chromium.org [Mon, 13 Oct 2014 18:54:20 +0000 (18:54 +0000)]
Fix IdleNotificationFinishMarking test on slow devices.

BUG=
TBR=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSwitch schedule early phase to basic blocks.
mstarzinger@chromium.org [Mon, 13 Oct 2014 16:32:12 +0000 (16:32 +0000)]
Switch schedule early phase to basic blocks.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoCheck if there is still time before finalizing an incremental collection.
hpayer@chromium.org [Mon, 13 Oct 2014 16:27:55 +0000 (16:27 +0000)]
Check if there is still time before finalizing an incremental collection.

BUG=
R=erik.corry@gmail.com, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Fix scheduler to correctly schedule nested diamonds."
sigurds@chromium.org [Mon, 13 Oct 2014 16:08:29 +0000 (16:08 +0000)]
Revert "Fix scheduler to correctly schedule nested diamonds."

This reverts commit 0ab306041a6eba99fe5e2ef78251de137321f559.

"Fix" make scheduler run out of memory.

TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRefactor FrameAndConstantPoolScope and ConstantPoolUnavailableScope to be architectur...
rmcilroy@chromium.org [Mon, 13 Oct 2014 14:41:33 +0000 (14:41 +0000)]
Refactor FrameAndConstantPoolScope and ConstantPoolUnavailableScope to be architecture independent

Move the FrameAndConstantPoolScope and ConstantPoolUnavailableScope out of the arm architecture directory to enable them to be used on all architectures.

R=rmcilroy@chromium.org

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

Patch from AndrĂ© Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Unbreak gn build, missing source files for MIPS tf.
dusan.milosavljevic@imgtec.com [Mon, 13 Oct 2014 14:18:10 +0000 (14:18 +0000)]
MIPS: Unbreak gn build, missing source files for MIPS tf.

TEST=
BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix scheduler to correctly schedule nested diamonds.
sigurds@chromium.org [Mon, 13 Oct 2014 13:07:49 +0000 (13:07 +0000)]
Fix scheduler to correctly schedule nested diamonds.

The scheduler rewires control based on the last *control*
node that appears in the schedule of a block. This is not
sufficient to account for dependencies.

This patch adds additional dependencies to floating control
nodes. Given a floating control node A, every non-control
dependency of every node B that depends on A is introduces
as an additional dependency of A.

This allows the scheduler to correctly schedule two
diamonds A, B, if their only correct schedule is to
schedule B into the ifTrue successor in A.

TEST=cctest/test-scheduler/NestedFloatingDiamonds
R=mstarzinger@chromium.org, titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSupport for super assignments in for..in.
dslomov@chromium.org [Mon, 13 Oct 2014 12:46:46 +0000 (12:46 +0000)]
Support for super assignments in for..in.

R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMake releases script ready for the new git workflow.
machenbach@chromium.org [Mon, 13 Oct 2014 12:34:53 +0000 (12:34 +0000)]
Make releases script ready for the new git workflow.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMark some test262 cases as known failures after r24495.
mstarzinger@chromium.org [Mon, 13 Oct 2014 11:11:15 +0000 (11:11 +0000)]
Mark some test262 cases as known failures after r24495.

R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Optimize Int32Mod by power-of-two.
bmeurer@chromium.org [Mon, 13 Oct 2014 11:09:32 +0000 (11:09 +0000)]
[turbofan] Optimize Int32Mod by power-of-two.

TEST=mjsunit/asm/int32-tmod,unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRevert "Refine expression typing, esp. by propagating range information."
neis@chromium.org [Mon, 13 Oct 2014 10:48:01 +0000 (10:48 +0000)]
Revert "Refine expression typing, esp. by propagating range information."

This reverts commit 24552.

TBR=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRefine expression typing, esp. by propagating range information.
neis@chromium.org [Mon, 13 Oct 2014 10:40:29 +0000 (10:40 +0000)]
Refine expression typing, esp. by propagating range information.

R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix typedarray tests.
dslomov@chromium.org [Mon, 13 Oct 2014 09:48:50 +0000 (09:48 +0000)]
Fix typedarray tests.

1. Fixed typo. lenght -> length. Arbitary -> Arbitrary.
2. TypedArray DataView property getters should throw TypeError when called on
    incompatible types.
3. Should not use integers as keys in the arbitrary-properties test.

R=dslomov@chromium.org, yangguo@chromium.org

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

Patch from Xueqiao Xu <xuq@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agov8_external_snapshot target visible only when using v8_use_external_startup_data
rmcilroy@chromium.org [Mon, 13 Oct 2014 09:36:12 +0000 (09:36 +0000)]
v8_external_snapshot target visible only when using v8_use_external_startup_data

Prevent snapshot_blob.bin from being unnecessarily generated when building all targets.
When such file exists, chrome_tests assumes we will load V8's initial snapshot from
external files, even when such feature is turned off, which prevents the tests from
being successfully compiled.

BUG=421063
LOG=N
R=rmcilroy@chromium.org

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

Patch from AndrĂ© Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRun benchmarks tests with --turbo-asm flag.
bmeurer@chromium.org [Mon, 13 Oct 2014 09:30:27 +0000 (09:30 +0000)]
Run benchmarks tests with --turbo-asm flag.

R=machenbach@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Embed the actual backing store address for typed loads/stores.
bmeurer@chromium.org [Mon, 13 Oct 2014 09:17:33 +0000 (09:17 +0000)]
[turbofan] Embed the actual backing store address for typed loads/stores.

TEST=unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoScript streaming: UTF-8 handling fix.
marja@chromium.org [Mon, 13 Oct 2014 09:01:54 +0000 (09:01 +0000)]
Script streaming: UTF-8 handling fix.

The problem was that there can be several multi-byte UTF-8 characters near the
splitting point of the data chunks, and the code didn't handle it properly.

This was also the source of crbug.com/417891 - I thought the crash can only
happen when V8 is passed invalid UTF-8 data, but it can also happen in the
abovementioned case. After the fix, we handle the valid UTF-8 case and also
guard against invalid UTF-8 data.

R=yangguo@chromium.org
BUG=chromium:417891
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Make VisitBranch and friends to backend specific.
bmeurer@chromium.org [Mon, 13 Oct 2014 08:15:03 +0000 (08:15 +0000)]
[turbofan] Make VisitBranch and friends to backend specific.

This is required to fix a tricky branch fusion bug on ARM, which was
caused by the interaction between the architecture-independent and
architecture-specific parts of the InstructionSelector. In the end it
wasn't worth sharing a few common lines of code for the additional
complexity, especially if we also want to properly support architectures
without any dedicated flags register (i.e. MIPS).

TEST=mjsunit,unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] remove graph from InstructionSequence
dcarney@chromium.org [Mon, 13 Oct 2014 08:09:27 +0000 (08:09 +0000)]
[turbofan] remove graph from InstructionSequence

R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix build failure.
yangguo@chromium.org [Mon, 13 Oct 2014 07:57:40 +0000 (07:57 +0000)]
Fix build failure.

TBR=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAlways include full reloc info to stubs for serialization.
yangguo@chromium.org [Mon, 13 Oct 2014 07:50:21 +0000 (07:50 +0000)]
Always include full reloc info to stubs for serialization.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan]IA: ChangeFloat32ToFloat64 supports mem operand
dcarney@chromium.org [Mon, 13 Oct 2014 07:42:35 +0000 (07:42 +0000)]
[turbofan]IA: ChangeFloat32ToFloat64 supports mem operand

BUG=
R=titzer@chromium.org

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] IA: TruncateFloat64ToFloat32 supports mem operand
dcarney@chromium.org [Mon, 13 Oct 2014 07:12:57 +0000 (07:12 +0000)]
[turbofan] IA: TruncateFloat64ToFloat32 supports mem operand

BUG=
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoX87: Introduce FeedbackVectorSlot type - better than int.
weiliang.lin@intel.com [Mon, 13 Oct 2014 01:54:44 +0000 (01:54 +0000)]
X87: Introduce FeedbackVectorSlot type - better than int.

port r24528.

original commit message:

  Introduce FeedbackVectorSlot type - better than int.

  It's good to have typing around this value.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoX87: Teach TurboFan to call vector-based ICs.
weiliang.lin@intel.com [Sat, 11 Oct 2014 06:00:44 +0000 (06:00 +0000)]
X87: Teach TurboFan to call vector-based ICs.

port r24519.

original commit message:

  Teach TurboFan to call vector-based ICs.

  Additional static information needs to be passed to Load and KeyedLoad calls if
  --vector-ics is turned on

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Fix loading Float64 constants in turbofan.
dusan.milosavljevic@imgtec.com [Fri, 10 Oct 2014 18:00:58 +0000 (18:00 +0000)]
MIPS: Fix loading Float64 constants in turbofan.

TEST=ctest/test-run-machops/RunFloat64SubImm1,
     RunFloat64SubImm2, RunFloat64MulImm, RunFloat64Compare

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd test case for SparseJoin misbehavior with getters
adamk@chromium.org [Fri, 10 Oct 2014 17:17:00 +0000 (17:17 +0000)]
Add test case for SparseJoin misbehavior with getters

BUG=v8:3621
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Introduce FeedbackVectorSlot type - better than int.
balazs.kilvady@imgtec.com [Fri, 10 Oct 2014 16:17:10 +0000 (16:17 +0000)]
MIPS: Introduce FeedbackVectorSlot type - better than int.

Port r24528 (f7b7e5a)

Original commit message:
It's good to have typing around this value.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSplit off remaining runtime functions in runtime.cc.
yangguo@chromium.org [Fri, 10 Oct 2014 14:59:53 +0000 (14:59 +0000)]
Split off remaining runtime functions in runtime.cc.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Teach TurboFan to call vector-based ICs.
balazs.kilvady@imgtec.com [Fri, 10 Oct 2014 13:56:34 +0000 (13:56 +0000)]
MIPS: Teach TurboFan to call vector-based ICs.

Port r24519 (842debf)

Original commit message:
Additional static information needs to be passed to Load and KeyedLoad calls if
--vector-ics is turned on.

BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUse phase-local zone in the graph builder.
mstarzinger@chromium.org [Fri, 10 Oct 2014 13:40:08 +0000 (13:40 +0000)]
Use phase-local zone in the graph builder.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoDisable webkit/array-iterate-backwards test in --gc-stress mode for turbofan
ishell@chromium.org [Fri, 10 Oct 2014 13:36:54 +0000 (13:36 +0000)]
Disable webkit/array-iterate-backwards test in --gc-stress mode for turbofan

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix type feedback for name-keyed stores
jkummerow@chromium.org [Fri, 10 Oct 2014 13:27:52 +0000 (13:27 +0000)]
Fix type feedback for name-keyed stores

BUG=chromium:422212
LOG=n
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoIntroduce FeedbackVectorSlot type - better than int.
mvstanton@chromium.org [Fri, 10 Oct 2014 13:22:10 +0000 (13:22 +0000)]
Introduce FeedbackVectorSlot type - better than int.

It's good to have typing around this value.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoBogus assert caused turbofan failure.
mvstanton@chromium.org [Fri, 10 Oct 2014 13:09:41 +0000 (13:09 +0000)]
Bogus assert caused turbofan failure.

TBR=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoImprove comments and readability of scheduler.
mstarzinger@chromium.org [Fri, 10 Oct 2014 11:57:55 +0000 (11:57 +0000)]
Improve comments and readability of scheduler.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove fixpoint workaround from schedule early phase.
mstarzinger@chromium.org [Fri, 10 Oct 2014 11:49:53 +0000 (11:49 +0000)]
Remove fixpoint workaround from schedule early phase.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAST nodes have at most one bailout/typefeedback ID now, saving lots of memory.
svenpanne@chromium.org [Fri, 10 Oct 2014 10:52:31 +0000 (10:52 +0000)]
AST nodes have at most one bailout/typefeedback ID now, saving lots of memory.

This is basically https://codereview.chromium.org/569573002/ done right:

During construction, each node type tells its parent how many IDs it
needs in addition to the parent's ones. This is done all the way up in
the class hierarchy until a node's parent doesn't need any ID. At that
point we know how many IDs in summary are needed, and we reserve the
whole range at once, saving only the base ID of that range. All IDs
are now calculated via simple offsets to that base ID. To all
performaniacs: The C++ compiler simplifies the constant calculation to
a simple load and the addition of a single constant.

Note that the actual code is much simpler than all that prose above. :-)
It's basically how compilers for OO languages figure out vtable entries.

We still have lots of holes due to padding in the AST nodes, but this
will be addressed in a separate CL.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoReset code age when serializing code objects.
yangguo@chromium.org [Fri, 10 Oct 2014 10:51:34 +0000 (10:51 +0000)]
Reset code age when serializing code objects.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoKeyed loads from super with numeric keys.
dslomov@chromium.org [Fri, 10 Oct 2014 10:40:29 +0000 (10:40 +0000)]
Keyed loads from super with numeric keys.

R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoSet output representation of HIsStringAndBranch to tagged.
ulan@chromium.org [Fri, 10 Oct 2014 10:35:30 +0000 (10:35 +0000)]
Set output representation of HIsStringAndBranch to tagged.

BUG=chromium:421877
LOG=N
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00