platform/upstream/v8.git
10 years agoMIPS: Turn ToNumberStub into a PlatformCodeStub again.
balazs.kilvady@imgtec.com [Thu, 6 Nov 2014 16:26:42 +0000 (16:26 +0000)]
MIPS: Turn ToNumberStub into a PlatformCodeStub again.

Port 724a15e8bf3fb8697a950c8e0f96158c8e56ec71
Port r25187

The HydrogenCodeStub is too expensive and there's no easy way to reduce
this cost, so turning it into a PlatformCodeStub solves that problem
until we can use TurboFan for code stubs.

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

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

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

10 years ago[turbofan] move label generation to code generator
dcarney@chromium.org [Thu, 6 Nov 2014 14:59:07 +0000 (14:59 +0000)]
[turbofan] move label generation to code generator

R=bmeurer@chromium.org

BUG=

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

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

10 years ago[turbofan] Allocate a small amount of slack space to graph builder environments.
titzer@chromium.org [Thu, 6 Nov 2014 14:57:54 +0000 (14:57 +0000)]
[turbofan] Allocate a small amount of slack space to graph builder environments.

R=mstarzinger@chromium.org
BUG=

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

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

10 years ago[turbofan] Lower asm.js truncations to JSToNumber.
bmeurer@chromium.org [Thu, 6 Nov 2014 13:55:30 +0000 (13:55 +0000)]
[turbofan] Lower asm.js truncations to JSToNumber.

- JSBitwiseOr(x, 0) => Word32Or(NumberToInt32(JSToNumber(x)), 0)
- JSMultiply(x, 1) => NumberMultiply(JSToNumber(x), 1)

R=jarin@chromium.org

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

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

10 years agoFix O(n^2) successor traversal in ControlReducer.
titzer@chromium.org [Thu, 6 Nov 2014 13:27:24 +0000 (13:27 +0000)]
Fix O(n^2) successor traversal in ControlReducer.

R=mstarzinger@chromium.org
BUG=

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

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

10 years ago[turbofan] Combine JSToNumber and ChangeTaggedToFloat64 for fast SMI case.
bmeurer@chromium.org [Thu, 6 Nov 2014 13:25:45 +0000 (13:25 +0000)]
[turbofan] Combine JSToNumber and ChangeTaggedToFloat64 for fast SMI case.

This does the following optimization during ChangeLowering:

 ChangeTaggedToFloat64(JSToNumber(x)) =>
   if IsSmi(x) then ChangeSmiToFloat64(x)
   else let y = JSToNumber(x) in
     if IsSmi(y) then ChangeSmiToFloat64(y)
     else LoadHeapNumberValue(y)

Also cleanup/rearrange some code duplication in ChangeLowering.

R=dcarney@chromium.org

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

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

10 years agoRevert "Remove workaround for successors on end block from scheduler."
mstarzinger@chromium.org [Thu, 6 Nov 2014 13:11:53 +0000 (13:11 +0000)]
Revert "Remove workaround for successors on end block from scheduler."

TBR=titzer@chromium.org

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

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

10 years ago[turbofan] (reland) Compute tighter ranges for modulus in Typer.
titzer@chromium.org [Thu, 6 Nov 2014 13:10:20 +0000 (13:10 +0000)]
[turbofan] (reland) Compute tighter ranges for modulus in Typer.

R=jarin@chromium.org
BUG=

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

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

10 years agoFix marking time in cumulative gc stats.
hpayer@chromium.org [Thu, 6 Nov 2014 12:58:53 +0000 (12:58 +0000)]
Fix marking time in cumulative gc stats.

BUG=
R=jarin@chromium.org

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

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

10 years ago[turbofan] phis cannot take registers as inputs
dcarney@chromium.org [Thu, 6 Nov 2014 12:56:18 +0000 (12:56 +0000)]
[turbofan] phis cannot take registers as inputs

BUG=
R=bmeurer@chromium.org

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

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

10 years agoAllow JSArray fast moving elements even if the array's proto isn't Array.prototype...
verwaest@chromium.org [Thu, 6 Nov 2014 12:55:52 +0000 (12:55 +0000)]
Allow JSArray fast moving elements even if the array's proto isn't Array.prototype in original state
Otherwise array builtins don't work on internal arrays.

BUG=v8:3681
LOG=n
R=machenbach@chromium.org, mvstanton@chromium.org

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

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

10 years ago[turbofan] Push TruncateFloat64ToInt32 into phis.
bmeurer@chromium.org [Thu, 6 Nov 2014 12:38:09 +0000 (12:38 +0000)]
[turbofan] Push TruncateFloat64ToInt32 into phis.

TEST=unittests
R=dcarney@chromium.org

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

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

10 years agoRemove workaround for successors on end block from scheduler.
mstarzinger@chromium.org [Thu, 6 Nov 2014 12:30:47 +0000 (12:30 +0000)]
Remove workaround for successors on end block from scheduler.

R=titzer@chromium.org
TEST=cctest/test-scheduler/RPOLoop

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

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

10 years agoTurn ToNumberStub into a PlatformCodeStub again.
bmeurer@chromium.org [Thu, 6 Nov 2014 12:01:41 +0000 (12:01 +0000)]
Turn ToNumberStub into a PlatformCodeStub again.

The HydrogenCodeStub is too expensive and there's no easy way to reduce
this cost, so turning it into a PlatformCodeStub solves that problem
until we can use TurboFan for code stubs.

TEST=mjsunit
R=mvstanton@chromium.org

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

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

10 years agoSkip json2 on 64 bits debug.
machenbach@chromium.org [Thu, 6 Nov 2014 11:52:45 +0000 (11:52 +0000)]
Skip json2 on 64 bits debug.

BUG=3681
LOG=n
TBR=mvstanton@chromium.org

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

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

10 years agoFix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136.
ishell@chromium.org [Thu, 6 Nov 2014 11:49:34 +0000 (11:49 +0000)]
Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136.

BUG=chromium:430846
LOG=N
R=verwaest@chromium.org

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

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

10 years agoReuse RPO traversal stack in the scheduler.
mstarzinger@chromium.org [Thu, 6 Nov 2014 11:40:33 +0000 (11:40 +0000)]
Reuse RPO traversal stack in the scheduler.

R=jarin@chromium.org

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

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

10 years agoSkip tests that timeout on arm64
ishell@chromium.org [Thu, 6 Nov 2014 10:24:13 +0000 (10:24 +0000)]
Skip tests that timeout on arm64

TBR=machenbach@chromium.org

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

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

10 years agoThe idea behind of this solution is to use the existing "relocation info" instead...
svenpanne@chromium.org [Thu, 6 Nov 2014 09:16:34 +0000 (09:16 +0000)]
The idea behind of this solution is to use the existing "relocation info" instead of consumption the CodeLinePosition events emitted by the V8 compilers.
During generation code and relocation info are generated simultaneously.
When code generation is done you each code object has associated "relocation info".
Relocation information lets V8 to mark interesting places in the generated code: the pointers that might need to be relocated (after garbage collection),
correspondences between the machine program counter and source locations for stack walking.

This patch:
1. Add more source positions info in reloc info to make it suitable for source level mapping.
The amount of data should not be increased dramatically because (1) V8 already marks interesting places in the generated code and
(2) V8 does not write redundant information (it writes a pair (pc_offset, pos) only if pos is changed and skips other).
I measured it on Octane benchmark - for unoptimized code the number of source positions may achieve 2x ('lin_solve' from NavierStokes benchmark).

2. When a sample happens, CPU profiler finds a code object by pc, then use its reloc info to match the sample to a source line.
If a source line is found that hit counter is increased by one for this line.

3. Add a new public V8 API to get the hit source lines by CDT CPU profiler.
Note that it's expected a minor patch in Blink to pack the source level info in JSON to be shown.

4.Add a test that checks how the samples are distributed through source lines.
It tests two cases: (1) relocation info created during code generation and (2) relocation info associated with precompiled function's version.

Patch from Denis Pravdin <denis.pravdin@intel.com>;

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

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

Patch from Weiliang <weiliang.lin@intel.com>.

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

10 years agoAvoid redundant work in scheduler loop header/depth calculation.
mstarzinger@chromium.org [Thu, 6 Nov 2014 09:15:10 +0000 (09:15 +0000)]
Avoid redundant work in scheduler loop header/depth calculation.

R=jarin@chromium.org

TEST=cctest/test-scheduler/LoopedFloatingDiamond2

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

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

10 years ago[turbofan] Turn various diamonds into selects.
bmeurer@chromium.org [Thu, 6 Nov 2014 09:09:50 +0000 (09:09 +0000)]
[turbofan] Turn various diamonds into selects.

TEST=cctest/test-changes-lowering,mjsunit/asm,unittests
R=jarin@chromium.org

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

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

10 years agoRetry: Parser & internalization fix: ensure no heap allocs during GetString(Handle...
marja@chromium.org [Thu, 6 Nov 2014 08:28:37 +0000 (08:28 +0000)]
Retry: Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>).

The bug has always been there: when the parser is operating in the "immediately
internalize" mode and calls GetString, we get FlatContent of a string and then
do heap allocation.

The bug was uncovered by https://codereview.chromium.org/693803004/ (which put
the parser to the "immediately internalize" mode more often), but looking at the
code, it's possible that it can happen in other cases too.

This CL makes AstValueFactory handle this situation gracefully: it won't try to
internalize inside GetString(Handle<String>); it's unnecessary anyway since we
have the Handle<String> already.

BUG=
R=rossberg@chromium.org

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

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

10 years ago[turbofan] extend register allocator testing with control flow
dcarney@chromium.org [Thu, 6 Nov 2014 08:28:15 +0000 (08:28 +0000)]
[turbofan] extend register allocator testing with control flow

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

BUG=

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

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

10 years agoMIPS: Skip embenchen tests on big-endian.
bmeurer@chromium.org [Thu, 6 Nov 2014 06:18:28 +0000 (06:18 +0000)]
MIPS: Skip embenchen tests on big-endian.

Emscripten requires little-endian arch. It has assertion for endianness:

assert(HEAPU8[0] === 255 && HEAPU8[3] === 0,
    'Typed arrays 2 must be run on a little-endian system');

TEST=mjsunit/asm/embenchen/*
BUG=
R=bmeurer@chromium.org

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

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

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

10 years ago[turbofan] Transform x * -1.0 to -0.0 - x.
bmeurer@chromium.org [Thu, 6 Nov 2014 06:13:10 +0000 (06:13 +0000)]
[turbofan] Transform x * -1.0 to -0.0 - x.

TEST=msjunit/asm,unittests
R=jarin@chromium.org

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

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

10 years agoMIPS: Fix uint32div bug after r25103.
paul.lind@imgtec.com [Wed, 5 Nov 2014 22:48:43 +0000 (22:48 +0000)]
MIPS: Fix uint32div bug after r25103.

The div and mod instructions on MIPS are not safe for rhs 0.

TEST=test/mjsunit/asm/uint32div.js
BUG=
R=akos.palfi@imgtec.com

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

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

10 years agoWhitespace change to trigger bots (5)
machenbach@chromium.org [Wed, 5 Nov 2014 22:08:58 +0000 (22:08 +0000)]
Whitespace change to trigger bots (5)

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

10 years agoWhitespace change to trigger bots (4)
machenbach@chromium.org [Wed, 5 Nov 2014 22:05:26 +0000 (22:05 +0000)]
Whitespace change to trigger bots (4)

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

10 years agoWhitespace change to trigger bots (3)
machenbach@chromium.org [Wed, 5 Nov 2014 22:02:28 +0000 (22:02 +0000)]
Whitespace change to trigger bots (3)

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

10 years agoWhitespace change to trigger bots (2)
machenbach@chromium.org [Wed, 5 Nov 2014 21:58:21 +0000 (21:58 +0000)]
Whitespace change to trigger bots (2)

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

10 years agoWhitespace change to trigger bots (1)
machenbach@chromium.org [Wed, 5 Nov 2014 21:54:44 +0000 (21:54 +0000)]
Whitespace change to trigger bots (1)

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

10 years agoMIPS: Fix instruction selection test expectations after r25120.
dusan.milosavljevic@imgtec.com [Wed, 5 Nov 2014 18:51:07 +0000 (18:51 +0000)]
MIPS: Fix instruction selection test expectations after r25120.

TEST=unittests/InstructionSelectorCmpTest.Parameter,
     InstructionSelectorTest.Word32EqualWithZero
BUG=
R=paul.lind@imgtec.com

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

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

10 years agoSkip tests that timout on arm64
ishell@chromium.org [Wed, 5 Nov 2014 17:01:53 +0000 (17:01 +0000)]
Skip tests that timout on arm64

TBR=machenbach@chromium.org, bmeurer@chromium.org

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

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

10 years agoFix printing and verification of RPO computation.
mstarzinger@chromium.org [Wed, 5 Nov 2014 15:45:17 +0000 (15:45 +0000)]
Fix printing and verification of RPO computation.

R=jarin@chromium.org

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

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

10 years agoRevert "[turbofan] Compute tighter ranges for modulus in Typer."
titzer@chromium.org [Wed, 5 Nov 2014 15:19:30 +0000 (15:19 +0000)]
Revert "[turbofan] Compute tighter ranges for modulus in Typer."

This reverts commit 482586747ca6bc0c94cc23f916fd190931d3a836.

TBR=jarin@chromium.org
BUG=

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

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

10 years agofix assert in arm64 gap resolver
dcarney@chromium.org [Wed, 5 Nov 2014 15:09:15 +0000 (15:09 +0000)]
fix assert in arm64 gap resolver

BUG=
R=ulan@chromium.org

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

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

10 years ago[turbofan] Compute tighter ranges for modulus in Typer.
titzer@chromium.org [Wed, 5 Nov 2014 14:56:46 +0000 (14:56 +0000)]
[turbofan] Compute tighter ranges for modulus in Typer.

R=jarin@chromium.org
BUG=

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

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

10 years agoSkip test in release mode for arm64
machenbach@chromium.org [Wed, 5 Nov 2014 14:39:24 +0000 (14:39 +0000)]
Skip test in release mode for arm64

TBR=bmeurer@chromium.org, ishell@chromium.org

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

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

10 years agoMake slow tests on arm64
machenbach@chromium.org [Wed, 5 Nov 2014 14:32:33 +0000 (14:32 +0000)]
Make slow tests on arm64

TBR=bmeurer@chromium.org, ishell@chromium.org

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

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

10 years agoRevert "Parser & internalization fix: ensure no heap allocs during GetString(Handle...
marja@chromium.org [Wed, 5 Nov 2014 14:31:57 +0000 (14:31 +0000)]
Revert "Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>)."

This reverts r25155.

Reason: breaks webkit unit tests.

BUG=
TBR=marja@chromium.org

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

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

10 years agoParser & internalization fix: ensure no heap allocs during GetString(Handle<String>).
marja@chromium.org [Wed, 5 Nov 2014 13:59:12 +0000 (13:59 +0000)]
Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>).

The bug has always been there: when the parser is operating in the "immediately
internalize" mode and calls GetString, we get FlatContent of a string and then
do heap allocation.

The bug was uncovered by https://codereview.chromium.org/693803004/ (which put
the parser to the "immediately internalize" mode more often), but looking at the
code, it's possible that it can happen in other cases too.

This CL makes AstValueFactory handle this situation gracefully: it won't try to
internalize inside GetString(Handle<String>); it's unnecessary anyway since we
have the Handle<String> already.

R=rossberg@chromium.org
BUG=

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

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

10 years agoMake merge_to_branch more git-friendly.
machenbach@chromium.org [Wed, 5 Nov 2014 13:30:50 +0000 (13:30 +0000)]
Make merge_to_branch more git-friendly.

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

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

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

10 years agoHPhis with HParameter inputs must have Tagged representation
jkummerow@chromium.org [Wed, 5 Nov 2014 13:23:15 +0000 (13:23 +0000)]
HPhis with HParameter inputs must have Tagged representation

BUG=v8:3670
LOG=n
R=verwaest@chromium.org

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

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

10 years agoSkip box2d for gc stress.
machenbach@chromium.org [Wed, 5 Nov 2014 13:12:30 +0000 (13:12 +0000)]
Skip box2d for gc stress.

TBR=bmeurer@chromium.org, ishell@chromium.org

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

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

10 years ago[turbofan] Fix deopt for assignments in non-effect context.
jarin@chromium.org [Wed, 5 Nov 2014 13:08:39 +0000 (13:08 +0000)]
[turbofan] Fix deopt for assignments in non-effect context.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoFix fast-variants feature in test driver.
machenbach@chromium.org [Wed, 5 Nov 2014 13:05:28 +0000 (13:05 +0000)]
Fix fast-variants feature in test driver.

BUG=
R=bmeurer@chromium.org

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

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

10 years ago[turbofan] optimize hot loop in ResolveControlFlow
dcarney@chromium.org [Wed, 5 Nov 2014 12:46:43 +0000 (12:46 +0000)]
[turbofan] optimize hot loop in ResolveControlFlow

R=jarin@chromium.org

BUG=

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

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

10 years agoReplace C++ bitfields with our own BitFields
jkummerow@chromium.org [Wed, 5 Nov 2014 12:40:56 +0000 (12:40 +0000)]
Replace C++ bitfields with our own BitFields

Shave this yak from orbit, it's the only way to be sure.

BUG=chromium:427616
LOG=n
R=svenpanne@chromium.org

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

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

10 years agoUse compiler barrier instead of memory barrier for release/acquire atomic operations...
hpayer@chromium.org [Wed, 5 Nov 2014 12:35:19 +0000 (12:35 +0000)]
Use compiler barrier instead of memory barrier for release/acquire atomic operations on mac.

BUG=
R=jarin@chromium.org

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

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

10 years agoARM: optimize inlined doubles
Jacob.Bramley@arm.com [Wed, 5 Nov 2014 11:50:49 +0000 (11:50 +0000)]
ARM: optimize inlined doubles

Use 'vmov Dn[x], ip' instead of 'vmov Sn, ip' to load double immediates.
This patch is only useful for Turbofan as Crankshaft loads double immediates from the constant pool.
This give a little improvement on asm.js benchmarks

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

BUG=

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

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

10 years agoRevert "Reland "Optimize function across closures.""
yangguo@chromium.org [Wed, 5 Nov 2014 11:37:02 +0000 (11:37 +0000)]
Revert "Reland "Optimize function across closures.""

This reverts commit r25142.

TBR=ishell@chromium.org

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

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

10 years ago[turbofan] Use load/store indexes as 64-bit registers on arm64.
baptiste.afsa@arm.com [Wed, 5 Nov 2014 11:35:57 +0000 (11:35 +0000)]
[turbofan] Use load/store indexes as 64-bit registers on arm64.

Since r25024 load/store indexes are 64-bit value but arm64 backend was still
treating them as 32-bit value.

R=bmeurer@chromium.org

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

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

10 years agoHandle store buffer slot overwrite during object promotion.
jarin@chromium.org [Wed, 5 Nov 2014 11:27:34 +0000 (11:27 +0000)]
Handle store buffer slot overwrite during object promotion.

The bad scenario this fix handles:

We have a slot in a free list, then promote the object pointed-to by
the slot during scavenge. When allocating the space for the promoted
object, we overwrite the slot with the free list entry map if the
object is allocated just before the slot. After the allocation,
ScavengingVisitor::PromoteObject overwrites the slot with the
address of the allocated object, thus corrupting the free list.

Unfortunately, we do not have a way to construct a reliable repro
case because we would need to somehow craft a free list and store
buffer slot to be in the right configuration.

R=hpayer@chromium.org
BUG=

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

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

10 years agoReland "Optimize function across closures."
yangguo@chromium.org [Wed, 5 Nov 2014 11:12:27 +0000 (11:12 +0000)]
Reland "Optimize function across closures."

R=mvstanton@chromium.org

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

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

10 years ago[turbofan] Propagate "deferredness" to dominated basic blocks.
bmeurer@chromium.org [Wed, 5 Nov 2014 10:43:42 +0000 (10:43 +0000)]
[turbofan] Propagate "deferredness" to dominated basic blocks.

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

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

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

10 years agoDon't use C++11's std::trunc and std::round, use the traditional C functions.
svenpanne@chromium.org [Wed, 5 Nov 2014 10:41:43 +0000 (10:41 +0000)]
Don't use C++11's std::trunc and std::round, use the traditional C functions.

R=bmeurer@chromium.org

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

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

10 years agoAdd fast-variants feature to test driver.
machenbach@chromium.org [Wed, 5 Nov 2014 10:38:40 +0000 (10:38 +0000)]
Add fast-variants feature to test driver.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoMake special RPO computation iterative during scheduling.
mstarzinger@chromium.org [Wed, 5 Nov 2014 10:10:28 +0000 (10:10 +0000)]
Make special RPO computation iterative during scheduling.

This contains the following changes squashed together:
- Switch BasicBlock::loop_end to be a basic block instead of an RPO.
- Switch ScheduleLate to use dominator depth instead of RPO.
- Switch ScheduleEarly to use dominator depth instead of RPO.
- Push out absolute RPO ordering everywhere else in the scheduler.
- Keep linked list of blocks in RPO order while scheduling.
- Switch from RPO number to depth for dominator calculation.

R=jarin@chromium.org

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

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

10 years agoTransitionArray now uses <is_data_property, name, attributes> tuple as a key, which...
ishell@chromium.org [Wed, 5 Nov 2014 09:26:22 +0000 (09:26 +0000)]
TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name.

R=verwaest@chromium.org

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

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

10 years agoAdd test cases based on the programs from the Embenchen benchmark suite.
bmeurer@chromium.org [Wed, 5 Nov 2014 09:10:28 +0000 (09:10 +0000)]
Add test cases based on the programs from the Embenchen benchmark suite.

TEST=mjsunit/asm/embenchen
R=dcarney@chromium.org

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

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

10 years agox32: disable turbofan for x32 port
titzer@chromium.org [Wed, 5 Nov 2014 09:02:51 +0000 (09:02 +0000)]
x32: disable turbofan for x32 port

BUG=
R=titzer@chromium.org

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

Patch from Weilang Lin <weiliang.lin@intel.com>.

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

10 years agoFix enum in debug.h
yangguo@chromium.org [Wed, 5 Nov 2014 08:52:38 +0000 (08:52 +0000)]
Fix enum in debug.h

TBR=ishell@chromium.org

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

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

10 years agoIntroduce new stepping mode to step into another frame.
yangguo@chromium.org [Wed, 5 Nov 2014 08:44:30 +0000 (08:44 +0000)]
Introduce new stepping mode to step into another frame.

R=aandrey@chromium.org
BUG=chromium:267592
LOG=Y

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

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

10 years agoDon't crash if the tm_zone field returned by localtime is NULL
jochen@chromium.org [Wed, 5 Nov 2014 08:30:59 +0000 (08:30 +0000)]
Don't crash if the tm_zone field returned by localtime is NULL

BUG=chromium:158355
R=svenpanne@chromium.org
LOG=n

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

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

10 years ago[turbofan] Fix missing machine type for float32/float64 array accesses.
bmeurer@chromium.org [Wed, 5 Nov 2014 08:15:09 +0000 (08:15 +0000)]
[turbofan] Fix missing machine type for float32/float64 array accesses.

TEST=mjsunit/asm
R=svenpanne@chromium.org

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

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

10 years agoTruncate strings synchronized.
hpayer@chromium.org [Wed, 5 Nov 2014 07:30:07 +0000 (07:30 +0000)]
Truncate strings synchronized.

BUG=
R=jarin@chromium.org

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

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

10 years agoAllow uncaught exception messaging in Object.observe callbacks.
aandrey@chromium.org [Wed, 5 Nov 2014 07:23:28 +0000 (07:23 +0000)]
Allow uncaught exception messaging in Object.observe callbacks.

This also naturally handles pausing on uncaught exceptions in Object.observe callbacks.

R=adamk@chromium.org, yangguo@chromium.org, yurys@chromium.org
BUG=chromium:335660
LOG=Y

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

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

10 years agoSet the FPU precision control to double-precision.
weiliang.lin@intel.com [Wed, 5 Nov 2014 06:20:36 +0000 (06:20 +0000)]
Set the FPU precision control to double-precision.

The default double precision control of FPU is extended double-precision.
While the number definition for JavaScript is double-precision. We use
the FPU control word to set the doulbe precision and replace the original
solution which store the data to memory and load it again.

This patch also fixes the error that Sunspider 1.0.2 can not run with V8 if
sse2 support is disabled.

BUG=
R=weiliang.lin@intel.com

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

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

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

10 years agoX87: [turbofan] Add AllocateHeapNumberStub to avoid runtime call.
weiliang.lin@intel.com [Wed, 5 Nov 2014 06:09:58 +0000 (06:09 +0000)]
X87:  [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

port ee95552f291d3c1fff78bc4f8d8621e84976e5c9 (r25107)

original commit message:
  [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

BUG=
R=bmeurer@chromium.org

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

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

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

10 years ago[x64] 64-bit shift left by 32 or more covers sign/zero extend.
bmeurer@chromium.org [Wed, 5 Nov 2014 05:57:56 +0000 (05:57 +0000)]
[x64] 64-bit shift left by 32 or more covers sign/zero extend.

TEST=unittests
R=jarin@chromium.org

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

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

10 years agoRevert "Parser & internalizing: efficiency fixes."
ishell@chromium.org [Tue, 4 Nov 2014 21:37:26 +0000 (21:37 +0000)]
Revert "Parser & internalizing: efficiency fixes."

This reverts commit 94a08565d79a13056b9d964428798dac564905bc for
breaking layout tests.

TBR=marja@chromium.org

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

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

10 years agoMIPS: Improve compare and branch combining.
dusan.milosavljevic@imgtec.com [Tue, 4 Nov 2014 19:47:51 +0000 (19:47 +0000)]
MIPS: Improve compare and branch combining.

TEST=
BUG=
R=paul.lind@imgtec.com

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

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

10 years agoAdjust test262-es6 following --harmony flag change
rossberg@chromium.org [Tue, 4 Nov 2014 18:36:00 +0000 (18:36 +0000)]
Adjust test262-es6 following --harmony flag change

TBR=adamk@chromium.org
BUG=

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

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

10 years agoMIPS: [turbofan] Add AllocateHeapNumberStub to avoid runtime call.
balazs.kilvady@imgtec.com [Tue, 4 Nov 2014 17:19:52 +0000 (17:19 +0000)]
MIPS: [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

Port 983ca3f1e7bd8cbba45684d5c1642cd495ca9bc1
Port r25107

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

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

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

10 years agoFix branch hint in select.
titzer@chromium.org [Tue, 4 Nov 2014 16:15:44 +0000 (16:15 +0000)]
Fix branch hint in select.

R=mstarzinger@chromium.org
BUG=

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

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

10 years ago`1..isPrototypeOf.call(null)` should return false, not throw TypeError.
rossberg@chromium.org [Tue, 4 Nov 2014 16:13:49 +0000 (16:13 +0000)]
`1..isPrototypeOf.call(null)` should return false, not throw TypeError.

BUG=v8:3483
LOG=Y
R=rossberg@chromium.org

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

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

10 years agoRemove --harmony implications for incomplete features
rossberg@chromium.org [Tue, 4 Nov 2014 16:05:27 +0000 (16:05 +0000)]
Remove --harmony implications for incomplete features

This is in preparation for making --harmony and --es-staging synonyms.
The only remaining difference currently is block-scoping, which is still
implied by --harmony, to avoid regressing on a long-available feature.

Also removes the special-casing of --harmony-proxies.

R=adamk@chromium.org
BUG=

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

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

10 years agoReduce size of array in polymorph-arrays.js.
titzer@chromium.org [Tue, 4 Nov 2014 15:54:14 +0000 (15:54 +0000)]
Reduce size of array in polymorph-arrays.js.

R=danno@chromium.org
BUG=

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

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

10 years agoFix predictable mode when job based sweeping is off.
hpayer@chromium.org [Tue, 4 Nov 2014 15:20:09 +0000 (15:20 +0000)]
Fix predictable mode when job based sweeping is off.

BUG=
R=jarin@chromium.org

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

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

10 years agoRefactor ObjectGetOwnPropertyKeys to accept bitmask rather than boolean
arv@chromium.org [Tue, 4 Nov 2014 15:08:24 +0000 (15:08 +0000)]
Refactor ObjectGetOwnPropertyKeys to accept bitmask rather than boolean

BUG=v8:3549
LOG=Y
R=arv@chromium.org, rossberg@chromium.org

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

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

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

10 years agoIntroduce Diamond, a helper for building diamond-shaped control patterns.
titzer@chromium.org [Tue, 4 Nov 2014 14:37:22 +0000 (14:37 +0000)]
Introduce Diamond, a helper for building diamond-shaped control patterns.

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

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

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

10 years agoParser & internalizing: efficiency fixes.
marja@chromium.org [Tue, 4 Nov 2014 14:15:57 +0000 (14:15 +0000)]
Parser & internalizing: efficiency fixes.

1) In ParseLazy, we're already using the heap, so we can also tell
AstValueFactory to internalize immediately. This is more efficient.

2) No need to collect the values in values_ and strings_ if they're already
internalized.

3) No need to collect AstValues which are strings in values_ since they don't
need to be internalized (the underlying strings will be internalized
separately).

BUG=429168
LOG=N
R=rossberg@chromium.org

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

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

10 years ago[turbofan] Add AllocateHeapNumberStub to avoid runtime call.
bmeurer@chromium.org [Tue, 4 Nov 2014 12:58:17 +0000 (12:58 +0000)]
[turbofan] Add AllocateHeapNumberStub to avoid runtime call.

TEST=unittests
R=mstarzinger@chromium.org

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

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

10 years ago[turbofan] Fix branch hints for ChangeInt32ToTagged and ChangeTaggedToUI32.
bmeurer@chromium.org [Tue, 4 Nov 2014 12:06:23 +0000 (12:06 +0000)]
[turbofan] Fix branch hints for ChangeInt32ToTagged and ChangeTaggedToUI32.

R=titzer@chromium.org

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

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

10 years agoDisable long running gc-stress tests on arm64 for TF.
ulan@chromium.org [Tue, 4 Nov 2014 11:58:09 +0000 (11:58 +0000)]
Disable long running gc-stress tests on arm64 for TF.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoRevert "Optimize function across closures."
yangguo@chromium.org [Tue, 4 Nov 2014 11:40:21 +0000 (11:40 +0000)]
Revert "Optimize function across closures."

This reverts r25102.

TBR=mvstanton@chromium.org

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

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

10 years ago[turbofan] Fix recognition of Uint32Div in simplified lowering.
bmeurer@chromium.org [Tue, 4 Nov 2014 11:37:31 +0000 (11:37 +0000)]
[turbofan] Fix recognition of Uint32Div in simplified lowering.

TEST=mjsunit/asm
R=jarin@chromium.org

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

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

10 years agoOptimize function across closures.
yangguo@chromium.org [Tue, 4 Nov 2014 11:06:17 +0000 (11:06 +0000)]
Optimize function across closures.

R=mvstanton@chromium.org

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

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

10 years agoFollow up to fix v8::Exception::GetMessage() actually do what it was intended to.
aandrey@chromium.org [Tue, 4 Nov 2014 10:06:44 +0000 (10:06 +0000)]
Follow up to fix v8::Exception::GetMessage() actually do what it was intended to.

The main thing for v8::Exception::GetMessage() is to extract message location from
error stack trace, even when stack trace capturing is off (when DevTools is closed).

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

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

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

10 years agoAdd debug mirror support for ES6 Map/Set iterators.
aandrey@chromium.org [Tue, 4 Nov 2014 10:02:25 +0000 (10:02 +0000)]
Add debug mirror support for ES6 Map/Set iterators.

This is to show values preview of an iterator in DevTools console.

API=v8::Value::IsMapIterator, v8::Value::IsSetIterator
BUG=chromium:427868
R=arv@chromium.org, yangguo@chromium.org, adamk@chromium.org
LOG=Y

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

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

10 years agoTransitionArray::Search() now returns insertion index if the entry was not found.
ishell@chromium.org [Tue, 4 Nov 2014 09:29:31 +0000 (09:29 +0000)]
TransitionArray::Search() now returns insertion index if the entry was not found.

This is a prerequisite for https://codereview.chromium.org/661133002/.

R=verwaest@chromium.org

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

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

10 years agoActually also advance the iterator in StorePropertyWithInterceptor
verwaest@chromium.org [Tue, 4 Nov 2014 09:22:42 +0000 (09:22 +0000)]
Actually also advance the iterator in StorePropertyWithInterceptor

BUG=v8:3636
LOG=n
R=ishell@chromium.org

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

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

10 years ago[turbofan] add RegisterConfiguration to decouple arch specific register layouts from...
dcarney@chromium.org [Tue, 4 Nov 2014 09:21:12 +0000 (09:21 +0000)]
[turbofan] add RegisterConfiguration to decouple arch specific register layouts from compiler

R=bmeurer@chromium.org

BUG=

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

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

10 years agoWhitespace CL to trigger bots.
machenbach@chromium.org [Tue, 4 Nov 2014 08:56:40 +0000 (08:56 +0000)]
Whitespace CL to trigger bots.

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

10 years agoAdds dependency on sanitizer
danno@chromium.org [Tue, 4 Nov 2014 08:27:49 +0000 (08:27 +0000)]
Adds dependency on sanitizer

The santizer target is empty if no sanitizers are defined, otherwise
it contains the necessary targets. Because of this we can always
depend on it. Without this dep asan builds fail.

R=brettw@chromium.org, danno@chromium.org

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

Patch from Scott Violet <sky@chromium.org>.

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

10 years ago[turbofan] Also print the non-value inputs in schedule.
bmeurer@chromium.org [Tue, 4 Nov 2014 07:35:59 +0000 (07:35 +0000)]
[turbofan] Also print the non-value inputs in schedule.

R=svenpanne@chromium.org

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

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

10 years ago[turbofan] Strip useless sign-extension for store8/store16.
bmeurer@chromium.org [Tue, 4 Nov 2014 07:35:29 +0000 (07:35 +0000)]
[turbofan] Strip useless sign-extension for store8/store16.

TEST=unittests
R=svenpanne@chromium.org

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

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

10 years agoRemove FAIL from test262-es6.status
arv@chromium.org [Mon, 3 Nov 2014 21:46:35 +0000 (21:46 +0000)]
Remove FAIL from test262-es6.status

TBR=rossberg
BUG=v8:3642
LOG=Y

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

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

10 years agoClasses: static should still be treated as a strict reserved word
arv@chromium.org [Mon, 3 Nov 2014 19:53:36 +0000 (19:53 +0000)]
Classes: static should still be treated as a strict reserved word

When --harmony-classes is enabled we did not treat static as a
strict reserved word.

BUG=v8:3642
LOG=Y
R=rossberg@chromium.org

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

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

10 years agoFix a few nits found by PVS Studio
jkummerow@chromium.org [Mon, 3 Nov 2014 19:44:46 +0000 (19:44 +0000)]
Fix a few nits found by PVS Studio

BUG=v8:3192
LOG=n
R=dslomov@chromium.org

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

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