platform/upstream/v8.git
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

10 years agoFix build because of dead fields.
titzer@chromium.org [Mon, 3 Nov 2014 17:52:51 +0000 (17:52 +0000)]
Fix build because of dead fields.

TBR=mstarzinger@chromium.org
BUG=

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

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

10 years agoMake visualizer robust to graphs with NULL inputs.
titzer@chromium.org [Mon, 3 Nov 2014 17:41:53 +0000 (17:41 +0000)]
Make visualizer robust to graphs with NULL inputs.

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

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

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

10 years agoIntroduce phantom weak handles in the API and use them internally for debug info
erikcorry@chromium.org [Mon, 3 Nov 2014 17:23:55 +0000 (17:23 +0000)]
Introduce phantom weak handles in the API and use them internally for debug info

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

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

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

10 years agoReland "Limit the number of transitions allowed per hidden class."
ishell@chromium.org [Mon, 3 Nov 2014 16:44:58 +0000 (16:44 +0000)]
Reland "Limit the number of transitions allowed per hidden class."

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

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

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

10 years agoMIPS: [turbofan] Also optimize unsigned division by constant.
balazs.kilvady@imgtec.com [Mon, 3 Nov 2014 16:40:54 +0000 (16:40 +0000)]
MIPS: [turbofan] Also optimize unsigned division by constant.

Port r25061 (7fe697f)

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

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

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

10 years agoUnbreak build fon non-TF targets.
dusan.milosavljevic@imgtec.com [Mon, 3 Nov 2014 15:48:15 +0000 (15:48 +0000)]
Unbreak build fon non-TF targets.

Mips64 is affected but not for long.

TEST=
BUG=
R=jkummerow@chromium.org

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

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

10 years agoFix auto roll update.
machenbach@chromium.org [Mon, 3 Nov 2014 15:39:30 +0000 (15:39 +0000)]
Fix auto roll update.

Auto roll requires an additional "git fetch" now that it uses
a workdir. Before, the checkout used to be updated
externally.

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

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

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

10 years ago[turbofan] Introduce separate SelectLowering reducer.
bmeurer@chromium.org [Mon, 3 Nov 2014 15:17:08 +0000 (15:17 +0000)]
[turbofan] Introduce separate SelectLowering reducer.

Split lowering of Select nodes into a separate graph reducer and be more
clever when lowering to diamonds, i.e. reuse diamonds that have the same
condition and only add more phis to it.

TEST=unittests
R=dcarney@chromium.org

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

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

10 years agoFix uninitialized fields in the BinaryOperation ast node.
jarin@chromium.org [Mon, 3 Nov 2014 14:59:19 +0000 (14:59 +0000)]
Fix uninitialized fields in the BinaryOperation ast node.

R=jkummerow@chromium.org, svenpanne@chromium.org
BUG=chromium:429194
LOG=n

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

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

10 years agoDon't double-check elements in the prototype chain in array builtins
verwaest@chromium.org [Mon, 3 Nov 2014 14:05:57 +0000 (14:05 +0000)]
Don't double-check elements in the prototype chain in array builtins

BUG=
R=mvstanton@chromium.org

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

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

10 years ago[turbofan] Fix Typer::Rangify to handle integral bitset types.
jarin@chromium.org [Mon, 3 Nov 2014 13:58:39 +0000 (13:58 +0000)]
[turbofan] Fix Typer::Rangify to handle integral bitset types.

R=bmeurer@chromium.org
BUG=

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

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

10 years agobuild fix after 25072
dcarney@chromium.org [Mon, 3 Nov 2014 13:55:09 +0000 (13:55 +0000)]
build fix after 25072

TBR=bmeurer@chromium.org

BUG=

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

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

10 years agobuild fix after r25071
dcarney@chromium.org [Mon, 3 Nov 2014 13:41:56 +0000 (13:41 +0000)]
build fix after r25071

TBR=bmeurer@chromium.org

BUG=

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

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

10 years ago[turbofan] initial framework for unittesting of register allocator
dcarney@chromium.org [Mon, 3 Nov 2014 13:26:46 +0000 (13:26 +0000)]
[turbofan] initial framework for unittesting of register allocator

BUG=
R=bmeurer@chromium.org

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

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

10 years agoFix svn commit for deleted files in release scripts.
machenbach@chromium.org [Mon, 3 Nov 2014 13:17:02 +0000 (13:17 +0000)]
Fix svn commit for deleted files in release scripts.

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

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

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

10 years agoRevert "[turbofan] Fix bug in Rangify."
bmeurer@chromium.org [Mon, 3 Nov 2014 12:36:14 +0000 (12:36 +0000)]
Revert "[turbofan] Fix bug in Rangify."

This reverts commit r25067 for breaking Win64.

TBR=jarin@chromium.org

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

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

10 years ago[turbofan] Fix bug in Rangify.
bmeurer@chromium.org [Mon, 3 Nov 2014 11:50:43 +0000 (11:50 +0000)]
[turbofan] Fix bug in Rangify.

R=jarin@chromium.org

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

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

10 years ago[turbofan] Enforce allocation of register for imull/mull.
bmeurer@chromium.org [Mon, 3 Nov 2014 11:50:08 +0000 (11:50 +0000)]
[turbofan] Enforce allocation of register for imull/mull.

R=dcarney@chromium.org

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

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

10 years ago[turbofan] Positive dividends are heavily favored for Int32Mod.
bmeurer@chromium.org [Mon, 3 Nov 2014 10:44:23 +0000 (10:44 +0000)]
[turbofan] Positive dividends are heavily favored for Int32Mod.

Mark negative dividend case as deferred, as modulus by power of two with
negative dividend almost never appears in practice.

R=dcarney@chromium.org

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

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

10 years agoMake generic algorithm less generic.
mstarzinger@chromium.org [Mon, 3 Nov 2014 10:30:34 +0000 (10:30 +0000)]
Make generic algorithm less generic.

R=jarin@chromium.org

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

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

10 years ago[turbofan] Select tbz/tbnz when possible on ARM64.
baptiste.afsa@arm.com [Mon, 3 Nov 2014 10:28:46 +0000 (10:28 +0000)]
[turbofan] Select tbz/tbnz when possible on ARM64.

R=bmeurer@chromium.org

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

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

10 years agoNow with more checkings! Skip the CallFunctionStub when the callee function can be...
titzer@chromium.org [Mon, 3 Nov 2014 10:21:59 +0000 (10:21 +0000)]
Now with more checkings! Skip the CallFunctionStub when the callee function can be statically determined.

R=mstarzinger@chromium.org
BUG=

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

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

10 years ago[turbofan] Also optimize unsigned division by constant.
bmeurer@chromium.org [Mon, 3 Nov 2014 10:04:37 +0000 (10:04 +0000)]
[turbofan] Also optimize unsigned division by constant.

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

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

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

10 years agoFix constant in Math.tan implementation.
yangguo@chromium.org [Mon, 3 Nov 2014 09:40:12 +0000 (09:40 +0000)]
Fix constant in Math.tan implementation.

R=jkummerow@chromium.org, rtoy@chromium.org
BUG=chromium:427468
LOG=Y

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

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

10 years agoFix workdir feature for release scripts.
machenbach@chromium.org [Mon, 3 Nov 2014 09:31:13 +0000 (09:31 +0000)]
Fix workdir feature for release scripts.

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

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

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

10 years agoFix for bug 429168, PdfJs regression. We pay a very high cost for AllocationResult...
mvstanton@chromium.org [Mon, 3 Nov 2014 08:43:20 +0000 (08:43 +0000)]
Fix for bug 429168, PdfJs regression. We pay a very high cost for AllocationResult being a > kPointerSize struct. This can be avoided by using Smis to indicate failure with retry spaces.

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

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

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

10 years agoAdd workdir feature to release scripts.
machenbach@chromium.org [Mon, 3 Nov 2014 08:41:13 +0000 (08:41 +0000)]
Add workdir feature to release scripts.

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

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

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

10 years agoMore retries when tagging in release scripts.
machenbach@chromium.org [Mon, 3 Nov 2014 08:18:26 +0000 (08:18 +0000)]
More retries when tagging in release scripts.

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

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

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

10 years ago[x86] Fix register constraints for multiply high and modulus.
bmeurer@chromium.org [Mon, 3 Nov 2014 06:27:34 +0000 (06:27 +0000)]
[x86] Fix register constraints for multiply high and modulus.

R=jarin@chromium.org
TEST=mjsunit/compiler/regress-register-allocator2

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

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

10 years ago[turbofan] Do not use the generic graph algorithm for widening in the typer.
jarin@chromium.org [Mon, 3 Nov 2014 06:09:51 +0000 (06:09 +0000)]
[turbofan] Do not use the generic graph algorithm for widening in the typer.

This change uses an explicit queue for type-widening instead of the
generic algorithm. The trouble with the generic algorithm was that it
called the visitor on the same phi many times in a row (and thus caused
unnecessary retyping). I also think that the queue-based fixpoint is
more readable.

The CL cuts running time of the nbody-java benchmark from ~19s to ~15s,
the time spent in the typer goes from 4.5s to 1s. This is still a lot
- the root cause appears to be slow handling of union subtyping
(m*n for unions of sizes m and n). I see a re-typing of a
single phi node taking > 100ms. I will work on a fix with Andreas,
hopefully we can come up with some canonical representation
of unions at least for the common cases (union of Smi constants).

I have also changed the initial typer run to always compute a type, even
if we already had a type for the node. This fixes one assert failure
where context specialization updates a node without updating the type,
which confuses the typer when widening (as some types suddenly narrow).

BUG=
R=bmeurer@chromium.org

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

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

10 years agoIA: Double arithmetic binops support memory operand
bmeurer@chromium.org [Mon, 3 Nov 2014 05:56:55 +0000 (05:56 +0000)]
IA: Double arithmetic binops support memory operand

BUG=
R=dcarney@chromium.org

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

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

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

10 years agoFix push script for autoroll account.
machenbach@chromium.org [Sun, 2 Nov 2014 13:12:46 +0000 (13:12 +0000)]
Fix push script for autoroll account.

Push tags to the repo not to the remote - which is a cache
checkout on the bots.

Add new files when doing pure svn commits. Otherwise, new
files are silently ignored and not committed.

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

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

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

10 years agoTeach push script to commit with roll account.
machenbach@chromium.org [Sat, 1 Nov 2014 21:53:13 +0000 (21:53 +0000)]
Teach push script to commit with roll account.

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

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

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

10 years ago[turbofan] Avoid unnecessary (u)int32<->float64 changes in simplified lowering.
jarin@chromium.org [Fri, 31 Oct 2014 19:53:28 +0000 (19:53 +0000)]
[turbofan] Avoid unnecessary (u)int32<->float64 changes in simplified lowering.

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

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

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

10 years agoRevert "Skip the CallFunctionStub when the callee function can be statically determined."
jarin@chromium.org [Fri, 31 Oct 2014 19:05:31 +0000 (19:05 +0000)]
Revert "Skip the CallFunctionStub when the callee function can be statically determined."

This reverts commit 9845dfadd2ad4a83fa00bf43e0c2791ccf7eacad (r25042) for failing tests.

TBR=titzer@chromium.org
BUG=

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

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

10 years agoMIPS64: Fix simulator arguments handling on generated code entry.
dusan.milosavljevic@imgtec.com [Fri, 31 Oct 2014 18:33:33 +0000 (18:33 +0000)]
MIPS64: Fix simulator arguments handling on generated code entry.

Removed workaround for this issue.

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

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

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

10 years agoSkip the CallFunctionStub when the callee function can be statically determined.
titzer@chromium.org [Fri, 31 Oct 2014 16:35:42 +0000 (16:35 +0000)]
Skip the CallFunctionStub when the callee function can be statically determined.

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoMinor cleanup about unscheduled use count for fixed nodes.
mstarzinger@chromium.org [Fri, 31 Oct 2014 15:09:06 +0000 (15:09 +0000)]
Minor cleanup about unscheduled use count for fixed nodes.

R=jarin@chromium.org

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

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

10 years agoChanging the aging mechanism for script and eval caches.
verwaest@chromium.org [Fri, 31 Oct 2014 14:51:48 +0000 (14:51 +0000)]
Changing the aging mechanism for script and eval caches.
Instead of using multiple generations for the code, first only store the hash that gets aged. Once a hash matched on a next probe, actually cache the code. Use regular code aging to remove entries from the cache.

BUG=
R=ulan@chromium.org

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

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

10 years agoBreak allocations in the code serializer into correct chunk sizes.
yangguo@chromium.org [Fri, 31 Oct 2014 14:43:21 +0000 (14:43 +0000)]
Break allocations in the code serializer into correct chunk sizes.

This change has been inspired by Slava Chigrin <vchigrin@yandex-team.ru> (https://codereview.chromium.org/689663002/)

R=mvstanton@chromium.org, vchigrin@yandex-team.ru

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

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

10 years agoProperly handle stack overflows in the AST graph builder.
mstarzinger@chromium.org [Fri, 31 Oct 2014 14:02:05 +0000 (14:02 +0000)]
Properly handle stack overflows in the AST graph builder.

R=jarin@chromium.org
BUG=chromium:429159
TEST=mjsunit/regress/regress-crbug-429159
LOG=N

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

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

10 years agoUpgrade test262-es6
rossberg@chromium.org [Fri, 31 Oct 2014 13:39:20 +0000 (13:39 +0000)]
Upgrade test262-es6

TBR=machenbach@chromium.org
BUG=

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

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

10 years agoSkip tests for mips.
machenbach@chromium.org [Fri, 31 Oct 2014 13:36:10 +0000 (13:36 +0000)]
Skip tests for mips.

TBR=paul.lind@imgtec.com

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

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

10 years agoSwitch auto push script to git.
machenbach@chromium.org [Fri, 31 Oct 2014 13:14:58 +0000 (13:14 +0000)]
Switch auto push script to git.

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

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

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

10 years agoClear old backing store of WeakCollection on updates.
ulan@chromium.org [Fri, 31 Oct 2014 13:11:30 +0000 (13:11 +0000)]
Clear old backing store of WeakCollection on updates.

Not clearing can lead to a crash under following conditions:
1. Backing store of a weak map is allocated in large object space.
2. The backing store is marked incrementaly via the weak map.
3. The weak map is updated and gets a new backing store.
4. The store buffer overflows and marks the chunk of the old backing store as
"scan on scavenge."
5. Mark-compact collection kills some elements of the weak map. Note that the
old backing store survives because it was marked incrementally, but its dead
elements are not cleared.
6. Scavenger iterates over the old backing store, tries to move a dead object
and crashes.

BUG=v8:3631
LOG=N
TEST=cctest/test-heap/Regress3631
R=jkummerow@chromium.org

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

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

10 years agoScanner: remove PushBack calls when we're going to return ILLEGAL.
marja@chromium.org [Fri, 31 Oct 2014 13:03:15 +0000 (13:03 +0000)]
Scanner: remove PushBack calls when we're going to return ILLEGAL.

This simplifies escape handling and makes it easier to extend escapes for ES6.

PushBack just before detecting ILLEGAL is unnecessary, since we will abort the
scanning / parsing anyway at that point, and it doesn't matter where the cursor
exactly is. The error messages w/ PushBack are not any better or more correct
than without.

In addition: remove a comment about handling invalid escapes gracefully when we
no longer do. (*)

This CL includes a behavioral change: For input "var r = /foobar/g\urrrr;" we
used to report "unexpected_token: ILLEGAL" for "\u", but now we report
malformed_regexp_flags which is a more correct error message. (Note that the
code for reporting invalid_regexp_flags was dead, and invalid_regexp_flags is
not the right error message.)

Note that the V8 is more relaxed about unicode escapes in regexp flags than ES6
(see
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regular-expressions )
and this CL doesn't change it. (V8 accepts any \uxxxx, ES6 spec says only a
certain value range is acceptable.)

(*) Code archaeology:

Originally, doing PushBack in ScanHexEscape made sense (see e.g., here
https://codereview.chromium.org/5063003/diff/6001/src/prescanner.h ), since we
wouldn't return ILLEGAL but treat an invalid escape sequence "\uxxxx" as
"uxxxx".

(The repo at that point contains another instance of the same function, from the
initial commit. The logic is the same.)

This behavior was changed in a "renaming" commit
https://codereview.chromium.org/7739020.

BUG=
R=rossberg@chromium.org

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

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

10 years agoconvert BitVector to use pointer size blocks
dcarney@chromium.org [Fri, 31 Oct 2014 10:44:04 +0000 (10:44 +0000)]
convert BitVector to use pointer size blocks

additionally rename data-flow.* to bit-vector.* as at some point these file became very inaccurately named

BUG=
R=svenpanne@chromium.org

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

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

10 years agoAssert that unoptimized code does not embed context-specific objects.
yangguo@chromium.org [Fri, 31 Oct 2014 09:30:59 +0000 (09:30 +0000)]
Assert that unoptimized code does not embed context-specific objects.

R=verwaest@chromium.org

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

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

10 years agoEnsure we don't try to inline raw access to indexed interceptor receivers.
verwaest@chromium.org [Fri, 31 Oct 2014 09:21:54 +0000 (09:21 +0000)]
Ensure we don't try to inline raw access to indexed interceptor receivers.

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

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

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

10 years agoX64: replace explicit zero-extend with runtime assert
bmeurer@chromium.org [Fri, 31 Oct 2014 09:19:55 +0000 (09:19 +0000)]
X64: replace explicit zero-extend with runtime assert

Since the input float64 is in the range of [0, 2^32-1], the upper 32 bits of output register
should be zero.

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

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

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

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

10 years agoAdd turbocheck Makefile target.
bmeurer@chromium.org [Fri, 31 Oct 2014 08:39:14 +0000 (08:39 +0000)]
Add turbocheck Makefile target.

The turbocheck target is similar to quickcheck, but runs only the
turbofan variant.

R=machenbach@chromium.org

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

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

10 years ago[turbofan] Lower NumberModulus to Uint32Mod if both inputs are Unsigned32.
bmeurer@chromium.org [Fri, 31 Oct 2014 07:58:49 +0000 (07:58 +0000)]
[turbofan] Lower NumberModulus to Uint32Mod if both inputs are Unsigned32.

TEST=cctest/test-simplified-lowering
R=dcarney@chromium.org

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

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

10 years ago[turbofan] First step towards correctified 64-bit addressing.
bmeurer@chromium.org [Fri, 31 Oct 2014 06:41:07 +0000 (06:41 +0000)]
[turbofan] First step towards correctified 64-bit addressing.

Also remove the LEA matching from x64, since it was never really
effective. We'll optimize that once we're correct.

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

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

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

10 years agoFix bug in optimization of Uint32LessThan.
titzer@chromium.org [Thu, 30 Oct 2014 15:52:26 +0000 (15:52 +0000)]
Fix bug in optimization of Uint32LessThan.

R=jarin@chromium.org
BUG=

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

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

10 years agoMake releases script more git friendly.
machenbach@chromium.org [Thu, 30 Oct 2014 15:05:11 +0000 (15:05 +0000)]
Make releases script more git friendly.

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

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

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

10 years agoIntroduce v8::Exception::GetMessage to find location of an error object.
aandrey@chromium.org [Thu, 30 Oct 2014 14:51:17 +0000 (14:51 +0000)]
Introduce v8::Exception::GetMessage to find location of an error object.

API=v8::Exception::GetMessage
BUG=chromium:427954
R=yangguo@chromium.org
LOG=Y

Committed: https://code.google.com/p/v8/source/detail?r=25015

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

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

10 years agoDo not compile with Turbofan if we cannot deopt for debugging.
yangguo@chromium.org [Thu, 30 Oct 2014 14:40:30 +0000 (14:40 +0000)]
Do not compile with Turbofan if we cannot deopt for debugging.

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

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

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

10 years agoDo not embed array objects in unoptimized code.
yangguo@chromium.org [Thu, 30 Oct 2014 14:21:27 +0000 (14:21 +0000)]
Do not embed array objects in unoptimized code.

R=verwaest@chromium.org

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

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

10 years agoAdd floor, ceil, round (truncate) instructions for ia32, x64 (if SSE4.1) and
sigurds@chromium.org [Thu, 30 Oct 2014 14:15:20 +0000 (14:15 +0000)]
Add floor, ceil, round (truncate) instructions for ia32, x64 (if SSE4.1) and
add floor, ceil, round (truncate and away from zero) for arm64.

R=bmeurer@chromium.org, dcarney@chromium.org, mstarzinger@chromium.org, rodolph.perfetta@arm.com
TEST=test/mjsunit/asm/math-floor.js,test/mjsunit/asm/math-ceil.js,test/unittest/compiler/js-builtin-reducer-unittest.cc

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

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

10 years agoReverting r25015 and r25016 for broken build.
machenbach@chromium.org [Thu, 30 Oct 2014 13:57:11 +0000 (13:57 +0000)]
Reverting r25015 and r25016 for broken build.

TBR=yangguo@chromium.org, machenbach@chromium.org
LOG=N

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

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

10 years agoBuild fix after r25015
aandrey@chromium.org [Thu, 30 Oct 2014 13:31:27 +0000 (13:31 +0000)]
Build fix after r25015

TBR=yangguo@chromium.org, machenbach@chromium.org
LOG=N

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

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

10 years agoIntroduce v8::Exception::GetMessage to find location of an error object.
aandrey@chromium.org [Thu, 30 Oct 2014 13:17:57 +0000 (13:17 +0000)]
Introduce v8::Exception::GetMessage to find location of an error object.

API=v8::Exception::GetMessage
BUG=chromium:427954
R=yangguo@chromium.org
LOG=Y

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

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

10 years agoSkip tests with TF.
machenbach@chromium.org [Thu, 30 Oct 2014 12:38:19 +0000 (12:38 +0000)]
Skip tests with TF.

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

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

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

10 years agoAdd vrint{a,n,p,m,z} instructions to arm assembler. These instructions are only avail...
sigurds@chromium.org [Thu, 30 Oct 2014 11:00:47 +0000 (11:00 +0000)]
Add vrint{a,n,p,m,z} instructions to arm assembler. These instructions are only available on ARMv8.

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

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

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

10 years agoremove a bunch of isolate::current in api.cc
dcarney@chromium.org [Thu, 30 Oct 2014 09:54:37 +0000 (09:54 +0000)]
remove a bunch of isolate::current in api.cc

R=svenpanne@chromium.org

BUG=

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

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

10 years ago[turbofan] move Node to vreg mapping to InstructionSelector
dcarney@chromium.org [Thu, 30 Oct 2014 09:50:15 +0000 (09:50 +0000)]
[turbofan] move Node to vreg mapping to InstructionSelector

BUG=
R=bmeurer@chromium.org

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

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

10 years agoSkipt tests with TF on windows.
machenbach@chromium.org [Thu, 30 Oct 2014 09:48:24 +0000 (09:48 +0000)]
Skipt tests with TF on windows.

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

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

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

10 years ago[turbofan] add configuration parameters for register allocator
dcarney@chromium.org [Thu, 30 Oct 2014 09:00:58 +0000 (09:00 +0000)]
[turbofan] add configuration parameters for register allocator

T=jarin@chromium.org

BUG=
R=jarin@chromium.org

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

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

10 years agoSkip test on win debug.
machenbach@chromium.org [Thu, 30 Oct 2014 08:51:07 +0000 (08:51 +0000)]
Skip test on win debug.

TBR=bmeurer@chromium.org
BUG=chromium:428315
LOG=n

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

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

10 years agoChanged free(buffer) to delete [] buffer.
yangguo@chromium.org [Thu, 30 Oct 2014 07:41:09 +0000 (07:41 +0000)]
Changed free(buffer) to delete [] buffer.

This bug (mismatch between new[] and free) was found by running VC++'s /analyze on all of Chrome.

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

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

Patch from Bruce Dawson <brucedawson@chromium.org>.

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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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