platform/upstream/v8.git
9 years agoAdd test case for replacing turbofan code for debugging.
yangguo@chromium.org [Thu, 30 Oct 2014 07:33:12 +0000 (07:33 +0000)]
Add test case for replacing turbofan code for debugging.

R=jarin@chromium.org
BUG=v8:3660
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25002}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix assertion scope in Runtime_GetScript.
yangguo@chromium.org [Thu, 30 Oct 2014 07:25:20 +0000 (07:25 +0000)]
Fix assertion scope in Runtime_GetScript.

The HeapIterator implies DisallowHeapAllocation, but Script::GetWrapper
may allocate.

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

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

Cr-Commit-Position: refs/heads/master@{#25001}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: EmitCreateIteratorResult loads map from function's context
weiliang.lin@intel.com [Thu, 30 Oct 2014 03:46:02 +0000 (03:46 +0000)]
X87: EmitCreateIteratorResult loads map from function's context

port r24987

original commit message:

  EmitCreateIteratorResult loads map from function's context

  Caching or serialization can cause full-codegen output to be shared
  between contexts. CreateIteratorResult, however, was doing the wrong
  thing by creating results with the map that was current when the code
  was generated. Instead, we should chase pointers to load the right map
  from the function's context.

BUG=
R=weiliang.lin@intel.com

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

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

Cr-Commit-Position: refs/heads/master@{#25000}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: Classes: Add super support in methods and accessors
weiliang.lin@intel.com [Thu, 30 Oct 2014 02:01:19 +0000 (02:01 +0000)]
X87: Classes: Add super support in methods and accessors

port r24976.

original commit message:

  Classes: Add super support in methods and accessors
  This is done by installing the [[HomeObject]] on the method and the
  accessor functions.

BUG=
R=weiliang.lin@intel.com

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

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

Cr-Commit-Position: refs/heads/master@{#24999}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix lo_space initialization for external snapshot
rmcilroy@chromium.org [Wed, 29 Oct 2014 23:26:50 +0000 (23:26 +0000)]
Fix lo_space initialization for external snapshot

R=rmcilroy@chromium.org

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

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

Cr-Commit-Position: refs/heads/master@{#24998}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Fix input count in Uint32Mod/Div reduction.
jarin@chromium.org [Wed, 29 Oct 2014 21:07:18 +0000 (21:07 +0000)]
[turbofan] Fix input count in Uint32Mod/Div reduction.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24997}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMinor cleanup using BooleanConstant in graph builder.
mstarzinger@chromium.org [Wed, 29 Oct 2014 19:04:32 +0000 (19:04 +0000)]
Minor cleanup using BooleanConstant in graph builder.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24996}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoInline trivial OperatorProperties methods.
titzer@chromium.org [Wed, 29 Oct 2014 18:46:44 +0000 (18:46 +0000)]
Inline trivial OperatorProperties methods.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24995}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd a few missing overrides found by a new clang warning.
jkummerow@chromium.org [Wed, 29 Oct 2014 18:31:01 +0000 (18:31 +0000)]
Add a few missing overrides found by a new clang warning.

Namely, -Winconsistent-missing-override. No behavior change.

BUG=v8:3658
LOG=N
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24994}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: EmitCreateIteratorResult loads map from function's context.
balazs.kilvady@imgtec.com [Wed, 29 Oct 2014 18:19:57 +0000 (18:19 +0000)]
MIPS: EmitCreateIteratorResult loads map from function's context.

Port r24987 (cfc4713)

Original commit message:
Caching or serialization can cause full-codegen output to be shared
between contexts.  CreateIteratorResult, however, was doing the wrong
thing by creating results with the map that was current when the code
was generated.  Instead, we should chase pointers to load the right map
from the function's context.

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

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

Cr-Commit-Position: refs/heads/master@{#24993}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Add deopt for %StringMatch
jarin@chromium.org [Wed, 29 Oct 2014 18:16:15 +0000 (18:16 +0000)]
[turbofan] Add deopt for %StringMatch

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24992}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoCleanup unscheduled use count for controls of coupled nodes.
mstarzinger@chromium.org [Wed, 29 Oct 2014 17:37:10 +0000 (17:37 +0000)]
Cleanup unscheduled use count for controls of coupled nodes.

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

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

Cr-Commit-Position: refs/heads/master@{#24991}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoVarious cleanup/simplification in object-observe.js
adamk@chromium.org [Wed, 29 Oct 2014 17:27:09 +0000 (17:27 +0000)]
Various cleanup/simplification in object-observe.js

The biggest change is the removal of the map wrapper objects:
we now operate directly on the observation weak map, since there
are already Get/GetOrCreate/Set functions for each info map.
Various other small cleanups as well, including the deletion of
unnecessary forwarding functions and making use of standard macros.

This is a reland of r24972, retaining GetObservationStateJS() to
keep snapshotting working properly.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24990}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Bug fix in arm64 ubfx selection.
baptiste.afsa@arm.com [Wed, 29 Oct 2014 16:47:10 +0000 (16:47 +0000)]
[turbofan] Bug fix in arm64 ubfx selection.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24989}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Remove madd.d usage for r6.
dusan.milosavljevic@imgtec.com [Wed, 29 Oct 2014 16:16:03 +0000 (16:16 +0000)]
MIPS: Remove madd.d usage for r6.

TEST=/benchmarks/octane/crypto
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24988}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoEmitCreateIteratorResult loads map from function's context
wingo@igalia.com [Wed, 29 Oct 2014 16:10:59 +0000 (16:10 +0000)]
EmitCreateIteratorResult loads map from function's context

Caching or serialization can cause full-codegen output to be shared
between contexts.  CreateIteratorResult, however, was doing the wrong
thing by creating results with the map that was current when the code
was generated.  Instead, we should chase pointers to load the right map
from the function's context.

R=verwaest@chromium.org
BUG=v8:3656
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#24987}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRun ControlReducer early after graph building, then again later.
titzer@chromium.org [Wed, 29 Oct 2014 15:27:27 +0000 (15:27 +0000)]
Run ControlReducer early after graph building, then again later.

The justification for doing this is to reduce the size of the graph and
therefore speedup later phases of compilation. The control reducer also
obviates the need to run the PhiReducer, since it subsumes it.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24986}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip some tests with TF on gc stress.
machenbach@chromium.org [Wed, 29 Oct 2014 15:18:09 +0000 (15:18 +0000)]
Skip some tests with TF on gc stress.

TBR=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24985}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix presubmit.
machenbach@chromium.org [Wed, 29 Oct 2014 14:58:03 +0000 (14:58 +0000)]
Fix presubmit.

TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24984}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMove input/output counts directly into Operators, simplying OperatorProperties.
titzer@chromium.org [Wed, 29 Oct 2014 14:40:47 +0000 (14:40 +0000)]
Move input/output counts directly into Operators, simplying OperatorProperties.

This is a first step to refactoring OperatorProperties out of existence.
The next step is to inline OperatorProperties::GetXXXCount into the callers.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24983}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSwitch push-to-trunk to git mode.
machenbach@chromium.org [Wed, 29 Oct 2014 14:19:59 +0000 (14:19 +0000)]
Switch push-to-trunk to git mode.

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

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

Cr-Commit-Position: refs/heads/master@{#24981}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Introduce new Select operator to improve bounds checking.
bmeurer@chromium.org [Wed, 29 Oct 2014 14:16:32 +0000 (14:16 +0000)]
[turbofan] Introduce new Select operator to improve bounds checking.

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

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

Cr-Commit-Position: refs/heads/master@{#24980}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Classes: Add super support in methods and accessors.
balazs.kilvady@imgtec.com [Wed, 29 Oct 2014 13:16:23 +0000 (13:16 +0000)]
MIPS: Classes: Add super support in methods and accessors.

Port r24976 (5cb743f)

Original commit message:
This is done by installing the [[HomeObject]] on the method and the
accessor functions.

BUG=v8:3330
LOG=Y
R=dusan.milosavljevic@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24979}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] cleanup register allocator interface a little
dcarney@chromium.org [Wed, 29 Oct 2014 12:34:51 +0000 (12:34 +0000)]
[turbofan] cleanup register allocator interface a little

BUG=
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24978}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Various cleanup/simplification in object-observe.js"
adamk@chromium.org [Wed, 29 Oct 2014 12:14:44 +0000 (12:14 +0000)]
Revert "Various cleanup/simplification in object-observe.js"

It broke the context snapshot by trying to get ahold of the
per-isolate observation_state object too early.

This reverts commit a137cb74fb8f89fabcb0396bebb0bdf248c4b0ae.

TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24977}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoClasses: Add super support in methods and accessors
arv@chromium.org [Wed, 29 Oct 2014 11:45:57 +0000 (11:45 +0000)]
Classes: Add super support in methods and accessors

This is done by installing the [[HomeObject]] on the method and the
accessor functions.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24976}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoharmony-scoping: Correct dynamic lookups on a top level.
dslomov@chromium.org [Wed, 29 Oct 2014 10:59:41 +0000 (10:59 +0000)]
harmony-scoping: Correct dynamic lookups on a top level.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24975}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[arm64] Turn Word64And into tst instruction when possible.
baptiste.afsa@arm.com [Wed, 29 Oct 2014 10:51:10 +0000 (10:51 +0000)]
[arm64] Turn Word64And into tst instruction when possible.

Also add corresponding unit tests.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24974}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoallow disabling of ArrayBuffer neutering
dcarney@chromium.org [Wed, 29 Oct 2014 10:36:36 +0000 (10:36 +0000)]
allow disabling of ArrayBuffer neutering

BUG=
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24973}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoVarious cleanup/simplification in object-observe.js
adamk@chromium.org [Wed, 29 Oct 2014 10:32:24 +0000 (10:32 +0000)]
Various cleanup/simplification in object-observe.js

The biggest change is the removal of the map wrapper objects: we now operate
directly on the observation weak map, since there are already Get/GetOrCreate/Set
functions for each info map. Various other small cleanups as well, including the
deletion of unnecessary forwarding functions and making use of standard macros.

R=arv@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24972}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoEager compile for debugging when debug is active.
yangguo@chromium.org [Wed, 29 Oct 2014 10:28:11 +0000 (10:28 +0000)]
Eager compile for debugging when debug is active.

Scenario:
On reload, Devtools restores previously set break points. At this point,
since Devtools is already opened, all code is compiled with debug break
slots. No break points exist yet, so we would lazily compile inner
functions, even ones that cannot be compiled lazily without a context.
So when we use Debug::FindSharedFunctionInfoInScript to find the break
positions, those lazily compiled functions are skipped.

By eagerly compiling when debug is active, we make sure that whenever
Devtools is open, functions that cannot be compiled lazily without a
context are always compiled with its outer function.

R=ulan@chromium.org
BUG=chromium:424142
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#24971}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoReland "In PrepareForBreakPoints, also purge shared function info not referenced...
yangguo@chromium.org [Wed, 29 Oct 2014 10:19:08 +0000 (10:19 +0000)]
Reland "In PrepareForBreakPoints, also purge shared function info not referenced by functions."

BUG=chromium:424142
LOG=N
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24970}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd performance tests for Map/Set with String and Object keys
adamk@chromium.org [Wed, 29 Oct 2014 10:18:16 +0000 (10:18 +0000)]
Add performance tests for Map/Set with String and Object keys

The big change here is to split out each key type into its own
benchmark suite, since optimizations for different key types
are likely to be disjoint. ForEach tests have also been split
into separate "Iteration" suites, again with the thought that
iteration performance is likely separable from key type.

As part of adding the new tests, rejiggered the existing tests:
  - Map.set and Set.add (along with their Weak variants) no longer
    include construction costs in their scores
  - Moved key logic into the shared common.js

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

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

Cr-Commit-Position: refs/heads/master@{#24969}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSwitch scheduler to iterative floating control placement.
mstarzinger@chromium.org [Wed, 29 Oct 2014 10:17:43 +0000 (10:17 +0000)]
Switch scheduler to iterative floating control placement.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24968}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoReland "X87: Classes: Add basic support for properties."
yangguo@chromium.org [Wed, 29 Oct 2014 09:24:12 +0000 (09:24 +0000)]
Reland "X87: Classes: Add basic support for properties."

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24967}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "In PrepareForBreakPoints, also purge shared function info not referenced...
yangguo@chromium.org [Wed, 29 Oct 2014 09:22:40 +0000 (09:22 +0000)]
Revert "In PrepareForBreakPoints, also purge shared function info not referenced by functions."

This reverts commit r24964.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24966}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "X87: Classes: Add basic support for properties."
yangguo@chromium.org [Wed, 29 Oct 2014 09:02:27 +0000 (09:02 +0000)]
Revert "X87: Classes: Add basic support for properties."

This reverts r24964.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24965}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoIn PrepareForBreakPoints, also purge shared function info not referenced by functions.
yangguo@chromium.org [Wed, 29 Oct 2014 08:11:07 +0000 (08:11 +0000)]
In PrepareForBreakPoints, also purge shared function info not referenced by functions.

R=ulan@chromium.org
BUG=chromium:424142
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#24964}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: Classes: Add basic support for properties.
weiliang.lin@intel.com [Wed, 29 Oct 2014 08:01:07 +0000 (08:01 +0000)]
X87: Classes: Add basic support for properties.

commit r24934.

original commit message:

  This adds the properties to the prototype and the constructor.

BUG=
R=weiliang.lin@intel.com

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

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

Cr-Commit-Position: refs/heads/master@{#24963}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix gn.
machenbach@chromium.org [Wed, 29 Oct 2014 07:34:12 +0000 (07:34 +0000)]
Fix gn.

TBR=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24962}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: Use shared function info for eval cache key.
weiliang.lin@intel.com [Wed, 29 Oct 2014 07:19:42 +0000 (07:19 +0000)]
X87: Use shared function info for eval cache key.

port r24927.

original commit message:

 Use shared function info for eval cache key.

BUG=
R=weiliang.lin@intel.com

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

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

Cr-Commit-Position: refs/heads/master@{#24961}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevoke my own OWNERS bit.
vegorov@chromium.org [Tue, 28 Oct 2014 23:47:32 +0000 (23:47 +0000)]
Revoke my own OWNERS bit.

TBR=jkumerrow@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24960}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoChange cast to String to cast to Symbol in heap-snapshot-generator.
dslomov@chromium.org [Tue, 28 Oct 2014 18:08:59 +0000 (18:08 +0000)]
Change cast to String to cast to Symbol in heap-snapshot-generator.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24959}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix windows build.
titzer@chromium.org [Tue, 28 Oct 2014 17:54:41 +0000 (17:54 +0000)]
Fix windows build.

TBR=ishell@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24958}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoImplement loop variable assignment analysis.
titzer@chromium.org [Tue, 28 Oct 2014 17:29:41 +0000 (17:29 +0000)]
Implement loop variable assignment analysis.

This analysis computes the set of variables that are assigned in each loop. This is useful to avoid creating redundant loop phis when building an SSA graph, which just waste memory and require analysis to get rid of.

This CL implements an AST walk for the analysis and plugs the result into the TurboFan graph builder. I left this analysis under a flag for A/B testing and until sufficient unit tests can be developed.

R=danno@chromium.org, mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24957}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: [turbofan] Complete support for integer division/modulus in simplified lowering.
balazs.kilvady@imgtec.com [Tue, 28 Oct 2014 16:54:35 +0000 (16:54 +0000)]
MIPS: [turbofan] Complete support for integer division/modulus in simplified lowering.

Port r24942 (c5055ce)

Original commit message:
Also add backend flags that tell whether integer division/modulus is
generally safe, i.e. does not trap on overflow or divide by zero.

TEST=unittests
BUG=
R=dusan.milosavljevic@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24956}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert r24737 "Read object pointer atomically while updating slots"
ulan@chromium.org [Tue, 28 Oct 2014 16:43:34 +0000 (16:43 +0000)]
Revert r24737 "Read object pointer atomically while updating slots"

That broke webkit_unit_tests on ARM64.

BUG=chromium:427746
LOG=Y
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24955}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoHeap profiler clean-up: remove dead code
yurys@chromium.org [Tue, 28 Oct 2014 16:31:43 +0000 (16:31 +0000)]
Heap profiler clean-up: remove dead code

R=yangguo@chromium.org, loislo@chromium.org
LOG=N
BUG=Non

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

Cr-Commit-Position: refs/heads/master@{#24954}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoDisable OOL constant pool for Arm.
rmcilroy@chromium.org [Tue, 28 Oct 2014 16:25:36 +0000 (16:25 +0000)]
Disable OOL constant pool for Arm.

This caused some performance regressions on Octane.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24953}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoIntroduce FeedbackNexus for vector-based ics.
mvstanton@chromium.org [Tue, 28 Oct 2014 16:05:08 +0000 (16:05 +0000)]
Introduce FeedbackNexus for vector-based ics.

A FeedbackNexus is the combination of a feedback vector, a slot(s) in
the vector, along with methods to query and manipulate that information
in a type-correct way.

A CallIC will have a CallICNexus, a LoadIC a LoadICNexus, etc.,
reflecting the fact that different types of ICs configure their data
in unique ways.

This CL limits itself to introducing and using the nexus type only for
CallICs. A follow-up will use them for Load and KeyedLoadICs for the
case when the --vector-ics flag is turned on.

The notion of a Nexus is also embedded at the lowest level of the IC
class. This makes sense because more ICs should become vector-based
in the future.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24952}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Classes: Add basic support for properties
balazs.kilvady@imgtec.com [Tue, 28 Oct 2014 15:44:52 +0000 (15:44 +0000)]
MIPS: Classes: Add basic support for properties

Port r24934 (279833c)

Original commit message:
This adds the properties to the prototype and the constructor.

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

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

Cr-Commit-Position: refs/heads/master@{#24951}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Use shared function info for eval cache key.
balazs.kilvady@imgtec.com [Tue, 28 Oct 2014 15:43:31 +0000 (15:43 +0000)]
MIPS: Use shared function info for eval cache key.

Port r24927 (244472a)

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24950}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd ARMv8 detection in CpuFeatures.
sigurds@chromium.org [Tue, 28 Oct 2014 15:22:22 +0000 (15:22 +0000)]
Add ARMv8 detection in CpuFeatures.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24949}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Heap profiler clean-up: remove unused methods"
yurys@chromium.org [Tue, 28 Oct 2014 15:12:12 +0000 (15:12 +0000)]
Revert "Heap profiler clean-up: remove unused methods"

This reverts commit 63fd24a7c0782ccc3221803e3a2740f1e1b92ceb. Broke compilation on Mac.

TBR=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24948}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Introduce FeedbackNexus for vector-based ics."
mvstanton@chromium.org [Tue, 28 Oct 2014 15:07:38 +0000 (15:07 +0000)]
Revert "Introduce FeedbackNexus for vector-based ics."

This reverts commit r24945.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24947}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoHeap profiler clean-up: remove unused methods
yurys@chromium.org [Tue, 28 Oct 2014 14:53:53 +0000 (14:53 +0000)]
Heap profiler clean-up: remove unused methods

LOG=N
BUG=None
R=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24946}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoIntroduce FeedbackNexus for vector-based ics.
mvstanton@chromium.org [Tue, 28 Oct 2014 14:50:18 +0000 (14:50 +0000)]
Introduce FeedbackNexus for vector-based ics.

A FeedbackNexus is the combination of a feedback vector, a slot(s) in
the vector, along with methods to query and manipulate that information
in a type-correct way.

A CallIC will have a CallICNexus, a LoadIC a LoadICNexus, etc.,
reflecting the fact that different types of ICs configure their data
in unique ways.

This CL limits itself to introducing and using the nexus type only for
CallICs. A follow-up will use them for Load and KeyedLoadICs for the
case when the --vector-ics flag is turned on.

The notion of a Nexus is also embedded at the lowest level of the IC
class. This makes sense because more ICs should become vector-based
in the future.

This CL is based on https://codereview.chromium.org/679073002/ which
should land first.

BUG=
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24945}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[Sheriff] Skip tests that fail with TF on arm64.
machenbach@chromium.org [Tue, 28 Oct 2014 14:47:32 +0000 (14:47 +0000)]
[Sheriff] Skip tests that fail with TF on arm64.

TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24944}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoClasses: Add more tests for prototype edge cases
arv@chromium.org [Tue, 28 Oct 2014 14:12:18 +0000 (14:12 +0000)]
Classes: Add more tests for prototype edge cases

BUG=3655
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24943}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Complete support for integer division/modulus in simplified lowering.
bmeurer@chromium.org [Tue, 28 Oct 2014 13:56:26 +0000 (13:56 +0000)]
[turbofan] Complete support for integer division/modulus in simplified lowering.

Also add backend flags that tell whether integer division/modulus is
generally safe, i.e. does not trap on overflow or divide by zero.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24942}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoUse a simpler KeyedStoreGeneric stub
jkummerow@chromium.org [Tue, 28 Oct 2014 13:53:53 +0000 (13:53 +0000)]
Use a simpler KeyedStoreGeneric stub

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24941}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoImprove branch creation in release scripts.
machenbach@chromium.org [Tue, 28 Oct 2014 13:42:58 +0000 (13:42 +0000)]
Improve branch creation in release scripts.

Use 'git new-branch' for creating new branches.

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

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

Cr-Commit-Position: refs/heads/master@{#24940}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoClasses: Add test for method prototype
arv@chromium.org [Tue, 28 Oct 2014 13:39:41 +0000 (13:39 +0000)]
Classes: Add test for method prototype

Methods should not have a prototype property

BUG=v8:3330
LOG=y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24939}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoGet stack trace for uncaught exceptions/promise rejections from the simple stack...
aandrey@chromium.org [Tue, 28 Oct 2014 13:24:36 +0000 (13:24 +0000)]
Get stack trace for uncaught exceptions/promise rejections from the simple stack when available.

We can convert simple stack trace of an Error object to the detailed stack that
is used for debugging. Do so when available, and only then fall back to
reporting stack trace at throw site.

R=yangguo@chromium.org, Yang
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#24938}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMove AST node counting to post-pass
wingo@igalia.com [Tue, 28 Oct 2014 13:23:54 +0000 (13:23 +0000)]
Move AST node counting to post-pass

R=mstarzinger@chromium.org, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24937}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSilence control reducer tracing a bit.
mstarzinger@chromium.org [Tue, 28 Oct 2014 13:14:53 +0000 (13:14 +0000)]
Silence control reducer tracing a bit.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24936}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] LoadElement should not have a control input.
bmeurer@chromium.org [Tue, 28 Oct 2014 13:00:11 +0000 (13:00 +0000)]
[turbofan] LoadElement should not have a control input.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24935}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoClasses: Add basic support for properties
arv@chromium.org [Tue, 28 Oct 2014 12:43:05 +0000 (12:43 +0000)]
Classes: Add basic support for properties

This adds the properties to the prototype and the constructor.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24934}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAllow duplicate property names in classes
arv@chromium.org [Tue, 28 Oct 2014 12:23:26 +0000 (12:23 +0000)]
Allow duplicate property names in classes

ES6 no longer makes duplicate properties an error. However, we
continue to treat duplicate properties in strict mode object
literals as errors. With this change we allow duplicate properties
in class bodies. We continue to flag duplicate constructors as an
error as required by ES6.

BUG=v8:3570
LOG=Y
R=marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24933}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemoved non-existent files from gyp and GN builds.
mvstanton@chromium.org [Tue, 28 Oct 2014 12:09:48 +0000 (12:09 +0000)]
Removed non-existent files from gyp and GN builds.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24932}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Reduce (x & K) & K to x & K.
bmeurer@chromium.org [Tue, 28 Oct 2014 11:57:20 +0000 (11:57 +0000)]
[turbofan] Reduce (x & K) & K to x & K.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24931}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake floating merges respected minimum RPO of coupled phis.
mstarzinger@chromium.org [Tue, 28 Oct 2014 11:38:22 +0000 (11:38 +0000)]
Make floating merges respected minimum RPO of coupled phis.

R=bmeurer@chromium.org, jarin@chromium.org
TEST=cctest/test-scheduler/LoopedFloatingDiamond

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

Cr-Commit-Position: refs/heads/master@{#24930}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoUse shared function info for eval cache key.
yangguo@chromium.org [Tue, 28 Oct 2014 10:00:37 +0000 (10:00 +0000)]
Use shared function info for eval cache key.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24927}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Work-around stack overflow in zlib.
bmeurer@chromium.org [Tue, 28 Oct 2014 09:54:00 +0000 (09:54 +0000)]
[turbofan] Work-around stack overflow in zlib.

TBR=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24926}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoPrevent recursion in the debug event listener.
yangguo@chromium.org [Tue, 28 Oct 2014 09:44:16 +0000 (09:44 +0000)]
Prevent recursion in the debug event listener.

R=ulan@chromium.org
BUG=chromium:409614
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#24924}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSwitch schedule early phase to use forward propagation.
mstarzinger@chromium.org [Tue, 28 Oct 2014 09:34:35 +0000 (09:34 +0000)]
Switch schedule early phase to use forward propagation.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24923}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWindows: use SystemTimeToTzSpecificLocalTime instead of localtime_s.
ulan@chromium.org [Tue, 28 Oct 2014 08:55:28 +0000 (08:55 +0000)]
Windows: use SystemTimeToTzSpecificLocalTime instead of localtime_s.

The localtime_s function produces incorrect results for russian time zone.

BUG=chromium:417640
LOG=Y
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24922}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agomove functions in v8::V8 that should be on v8::Isolate
dcarney@chromium.org [Tue, 28 Oct 2014 08:43:15 +0000 (08:43 +0000)]
move functions in v8::V8 that should be on v8::Isolate

R=marja@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#24921}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix ASAN warning.
mvstanton@chromium.org [Tue, 28 Oct 2014 08:34:11 +0000 (08:34 +0000)]
Fix ASAN warning.

BUG=
TBR=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24920}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Improve typed lowering for JSToBoolean.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:33:52 +0000 (08:33 +0000)]
[turbofan] Improve typed lowering for JSToBoolean.

- JSToBoolean(x:string) => BooleanNot(NumberEqual(x.length, #0))
- JSToBoolean(phi(x1,...,xn):primitive) => phi(JSToBoolean(x1),...,JSToBoolean(xn))

TEST=cctest,mjsunit/asm/do-while,mjsunit/boolean,unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24919}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Turn slow case for stack check into deferred code.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:33:03 +0000 (08:33 +0000)]
[turbofan] Turn slow case for stack check into deferred code.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24918}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Minor cleanups to lowering of typed array loads/stores.
bmeurer@chromium.org [Tue, 28 Oct 2014 08:28:36 +0000 (08:28 +0000)]
[turbofan] Minor cleanups to lowering of typed array loads/stores.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24917}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "[turbofan] Merge GenericNode with Node."
jarin@chromium.org [Mon, 27 Oct 2014 22:33:52 +0000 (22:33 +0000)]
Revert "[turbofan] Merge GenericNode with Node."

This reverts commit a238443c00ebbd8afb48ee7ad336e0ff163c84b5 (r24915)
for tanking benchmarks.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24916}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Merge GenericNode with Node.
jarin@chromium.org [Mon, 27 Oct 2014 20:36:56 +0000 (20:36 +0000)]
[turbofan] Merge GenericNode with Node.

BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24915}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake NextCodeLink pointer 8-byte aligned after GC pointer updating uses atomics.
dusan.milosavljevic@imgtec.com [Mon, 27 Oct 2014 18:24:05 +0000 (18:24 +0000)]
Make NextCodeLink pointer 8-byte aligned after GC pointer updating uses atomics.

After r24737 pointer updating is done by atomic operations which strictly
require target address to be 8-byte alignment on MIPS64.

The alignment is broken on 64-bit arches because InstructionSize is first field
and has Int size.

Order of fields in object layout are changed to make kNextCodeLinkOffset
divisible by 8. The size of code object header remains the same.

TEST=cctest/test-debug/* on MIPS64
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#24914}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix for the cctest compilation issue on Mac after r24911.
ishell@chromium.org [Mon, 27 Oct 2014 16:58:38 +0000 (16:58 +0000)]
Fix for the cctest compilation issue on Mac after r24911.

TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24913}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd serializer test case to bug fix in r24871.
yangguo@chromium.org [Mon, 27 Oct 2014 16:40:04 +0000 (16:40 +0000)]
Add serializer test case to bug fix in r24871.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24912}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoA type vector with multiple IC types needs metadata.
mvstanton@chromium.org [Mon, 27 Oct 2014 16:34:28 +0000 (16:34 +0000)]
A type vector with multiple IC types needs metadata.

This CL adds a bitset to describe the type of IC in each IC slot.
This is necessary for clearing ICs of different types.

With FLAG_vector_ics off (the current state), it's not required because
CALL_IC is the only type of IC in the vector.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24911}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Move AST node counting to post-pass"
wingo@igalia.com [Mon, 27 Oct 2014 16:25:11 +0000 (16:25 +0000)]
Revert "Move AST node counting to post-pass"

This reverts commit 698356720824559a6bd81c24be707b44ac277526 for
breaking regress-96526-002 among other things.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24910}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMove AST node counting to post-pass
wingo@igalia.com [Mon, 27 Oct 2014 15:00:09 +0000 (15:00 +0000)]
Move AST node counting to post-pass

R=mstarzinger@chromium.org, svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24909}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Enable turbofan deoptimization by default."
jarin@chromium.org [Mon, 27 Oct 2014 14:36:36 +0000 (14:36 +0000)]
Revert "Enable turbofan deoptimization by default."

This reverts commit 866032692ff59ac4282e6d1a483cbb52870cc784 for breaking
tests.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24908}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSimpleMove now calls [[Has]] before [[Get]] when moving elements
adamk@chromium.org [Mon, 27 Oct 2014 13:04:46 +0000 (13:04 +0000)]
SimpleMove now calls [[Has]] before [[Get]] when moving elements

BUG=v8:3643
LOG=n
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24907}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemove unused return values from PreEdge visitor.
mstarzinger@chromium.org [Mon, 27 Oct 2014 12:57:50 +0000 (12:57 +0000)]
Remove unused return values from PreEdge visitor.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24906}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoEnable turbofan deoptimization by default.
jarin@chromium.org [Mon, 27 Oct 2014 12:46:44 +0000 (12:46 +0000)]
Enable turbofan deoptimization by default.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24905}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] reduce allocations outside of pipeline
dcarney@chromium.org [Mon, 27 Oct 2014 12:39:20 +0000 (12:39 +0000)]
[turbofan] reduce allocations outside of pipeline

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24904}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Make all references from root shortcuts (except one to GC roots)"
yurys@chromium.org [Mon, 27 Oct 2014 12:37:40 +0000 (12:37 +0000)]
Revert "Make all references from root shortcuts (except one to GC roots)"

This reverts commit 940418d2e1150499a28cca60b5dd138d351ec652. It resulted in orphan (Document DOM trees) and (Detached DOM trees) nodes.

BUG=chromium:414190
LOG=N
TBR=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24903}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake all references from root shortcuts (except one to GC roots)
yurys@chromium.org [Mon, 27 Oct 2014 12:10:19 +0000 (12:10 +0000)]
Make all references from root shortcuts (except one to GC roots)

Eventually we are going to nuke this shortcuts from root entry altogether. This fix makes (GC roots) retained size equal to the snapshot's total size.

BUG=chromium:414190
LOG=N
R=loislo@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24902}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert 'Introduce phantom weak handles in the API and use them internally for debug...
erikcorry@chromium.org [Mon, 27 Oct 2014 12:03:25 +0000 (12:03 +0000)]
Revert 'Introduce phantom weak handles in the API and use them internally for debug info'

Revert of https://codereview.chromium.org/649563006/ due to layout test
failures.
BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24901}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Limit the number of transitions allowed per hidden class." Due to crashes...
verwaest@chromium.org [Mon, 27 Oct 2014 11:57:58 +0000 (11:57 +0000)]
Revert "Limit the number of transitions allowed per hidden class." Due to crashes in ClearMapTransitions

BUG=
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24900}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoIntroduce phantom weak handles in the API and use them internally for debug info
erikcorry@chromium.org [Mon, 27 Oct 2014 11:04:33 +0000 (11:04 +0000)]
Introduce phantom weak handles in the API and use them internally for debug info

R=jochen@chromium.org, ulan@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24899}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00