platform/upstream/v8.git
10 years agoEliminate special keyed load string stub in favor of uniform handlers.
mvstanton@chromium.org [Thu, 16 Oct 2014 11:42:47 +0000 (11:42 +0000)]
Eliminate special keyed load string stub in favor of uniform handlers.

KeyedLoadIC installs a special case if the receiver is a string.
Although there are several maps for strings, in practice we seem to
be able to treat them individually because a given KeyedLoad site
only sees 1-2 string types.

R=yangguo@chromium.org

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

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

10 years ago[turbofan] Correctify typed lowering.
bmeurer@chromium.org [Thu, 16 Oct 2014 11:31:00 +0000 (11:31 +0000)]
[turbofan] Correctify typed lowering.

We cannot add new JSToNumber nodes here in general, because:

 a) The inserted ToNumber operation screws up observability of valueOf.
 b) Deoptimization at ToNumber doesn't have corresponding bailout id.

TEST=cctest,mjsunit
R=jarin@chromium.org

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

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

10 years agoFix x64 after r24656.
bmeurer@chromium.org [Thu, 16 Oct 2014 11:29:31 +0000 (11:29 +0000)]
Fix x64 after r24656.

TBR=jarin@chromium.org

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

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

10 years agoObject.is should use SameValue
wingo@igalia.com [Thu, 16 Oct 2014 11:24:45 +0000 (11:24 +0000)]
Object.is should use SameValue

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

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

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

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

10 years agoImplement .forEach() on typed arrays
wingo@igalia.com [Thu, 16 Oct 2014 10:55:26 +0000 (10:55 +0000)]
Implement .forEach() on typed arrays

BUG=v8:3578
LOG=Y
R=dslomov@chromium.org, wingo@igalia.com

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

Patch from Adrian Perez de Castro <aperez@igalia.com>.

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

10 years ago[turbofan] Run value numbering after SimplifiedLowering.
bmeurer@chromium.org [Thu, 16 Oct 2014 10:50:21 +0000 (10:50 +0000)]
[turbofan] Run value numbering after SimplifiedLowering.

Running ValueNumberingReducer together with ChangeLowering causes
trouble with the current GraphReducer and makes GVN ineffective, so
running it before we get to change lowering works around that well-known
(phase ordering) problem for now.

R=jarin@chromium.org

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

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

10 years agoIntroduce v8::Exception::GetStackTrace API method.
aandrey@chromium.org [Thu, 16 Oct 2014 10:42:08 +0000 (10:42 +0000)]
Introduce v8::Exception::GetStackTrace API method.

This will be needed to get a stack trace from a DOMException.

API=v8::Exception::GetStackTrace
R=yangguo@chromium.org
LOG=Y

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

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

10 years ago[arm][arm64] fix code for InstanceofStub
m.m.capewell@googlemail.com [Thu, 16 Oct 2014 10:38:58 +0000 (10:38 +0000)]
[arm][arm64] fix code for InstanceofStub

R=ulan@chromium.org, bmeurer@chromium.org

BUG=

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

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

10 years agoWhitespace change to test the new poller.
machenbach@chromium.org [Thu, 16 Oct 2014 10:03:14 +0000 (10:03 +0000)]
Whitespace change to test the new poller.

TBR=agable@chromium.org

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

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

10 years agoWhitespace change to test the new poller.
machenbach@chromium.org [Thu, 16 Oct 2014 08:39:20 +0000 (08:39 +0000)]
Whitespace change to test the new poller.

TBR=agable@chromium.org

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

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

10 years agoWhitespace change to test the new poller.
machenbach@chromium.org [Thu, 16 Oct 2014 08:19:45 +0000 (08:19 +0000)]
Whitespace change to test the new poller.

TBR=agable@chromium.org

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

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

10 years ago[turbofan] Fix GraphC1Visualizer::PrintType().
bmeurer@chromium.org [Thu, 16 Oct 2014 06:59:39 +0000 (06:59 +0000)]
[turbofan] Fix GraphC1Visualizer::PrintType().

TBR=jarin@chromium.org

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

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

10 years agoX87: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
weiliang.lin@intel.com [Thu, 16 Oct 2014 06:24:47 +0000 (06:24 +0000)]
X87: Implement inline %_IsJSProxy() for full codegen and Hydrogen.

port r24636.

original commit message:

  Implement inline %_IsJSProxy() for full codegen and Hydrogen
  Saving a runtime call for many builtin functions.

BUG=
R=weiliang.lin@intel.com

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

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

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

10 years agoRevert "Remove SmartMove, bringing Array methods further into spec compliance"
adamk@chromium.org [Wed, 15 Oct 2014 23:53:02 +0000 (23:53 +0000)]
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

10 years agoRemove SmartMove, bringing Array methods further into spec compliance
adamk@chromium.org [Wed, 15 Oct 2014 23:36:58 +0000 (23:36 +0000)]
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

10 years agoHandle exceptions thrown by Array.observe machinery
adamk@chromium.org [Wed, 15 Oct 2014 18:22:20 +0000 (18:22 +0000)]
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

10 years agoMIPS: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
balazs.kilvady@imgtec.com [Wed, 15 Oct 2014 17:14:17 +0000 (17:14 +0000)]
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

10 years agoFix compilation some more after r24639
jkummerow@chromium.org [Wed, 15 Oct 2014 15:04:09 +0000 (15:04 +0000)]
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

10 years agoFix compilation after r24639
sigurds@chromium.org [Wed, 15 Oct 2014 14:42:32 +0000 (14:42 +0000)]
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

10 years agoFix compilation after r24639
jkummerow@chromium.org [Wed, 15 Oct 2014 14:27:26 +0000 (14:27 +0000)]
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

10 years agoFix verification of Int64Constant
rossberg@chromium.org [Wed, 15 Oct 2014 14:17:26 +0000 (14:17 +0000)]
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

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