mstarzinger@chromium.org [Wed, 12 Nov 2014 09:19:35 +0000 (09:19 +0000)]
Scheduler checks that end block doesn't have successors.
R=jarin@chromium.org
TEST=cctest/test-scheduler/RPOLoop
Review URL: https://codereview.chromium.org/
710333002
Cr-Commit-Position: refs/heads/master@{#25281}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25281
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 12 Nov 2014 08:32:50 +0000 (08:32 +0000)]
X87: ES6: Add support for super in object literals
port
721ff07f5901a9bf9ccacf0356a2c10dc452f32d (r25271).
original commit message:
ES6: Add support for super in object literals
This only available under --harmony-classes
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
716973004
Patch from Chunyang Dai <chunyang.dai@intel.com>.
Cr-Commit-Position: refs/heads/master@{#25280}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25280
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Nov 2014 08:25:59 +0000 (08:25 +0000)]
Reland "Fix stepping in for-loops."
BUG=v8:3634
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
688243005
Cr-Commit-Position: refs/heads/master@{#25279}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Nov 2014 08:15:30 +0000 (08:15 +0000)]
Fix windows build (static_cast missing).
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/
714413005
Cr-Commit-Position: refs/heads/master@{#25278}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Nov 2014 08:11:57 +0000 (08:11 +0000)]
Fix gn build.
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/
723463002
Cr-Commit-Position: refs/heads/master@{#25277}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25277
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Nov 2014 08:04:41 +0000 (08:04 +0000)]
Abstract string building in JSON-stringifier into IncrementalStringBuilder.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
713223002
Cr-Commit-Position: refs/heads/master@{#25276}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25276
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 11 Nov 2014 22:07:08 +0000 (22:07 +0000)]
Switch DEPS to git.
BUG=415464
LOG=n
R=agable@chromium.org
Review URL: https://codereview.chromium.org/
702113002
Cr-Commit-Position: refs/heads/master@{#25274}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25274
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
aandrey@chromium.org [Tue, 11 Nov 2014 21:44:38 +0000 (21:44 +0000)]
Rename v8::Exception::GetMessage to CreateMessage.
This is to avoid renaming to GetMessageW/GetMessageA on Windows.
API=v8::Exception::CreateMessage
R=yangguo@chromium.org, loislo
LOG=Y
Review URL: https://codereview.chromium.org/
711353002
Cr-Commit-Position: refs/heads/master@{#25273}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Tue, 11 Nov 2014 21:35:27 +0000 (21:35 +0000)]
Classes: Add support for arguments in default constructor
This is currently done by generating a default constructor that looks
like this:
constructor() {
%DefaultConstructorSuperCall();
}
The a runtime function implements the logic which is pretty similar to
Runtime_Apply except that it uses the [[Prototype]] of the current
function.
This is the second try. The first failed because the test was using a
array that was too large for Function.prototype.apply.
Revert "Revert "Classes: Add support for arguments in default constructor""
This reverts commit
43aa7e541df56a132608b8b4217e9da84575e4f8.
BUG=v8:3672
LOG=Y
TBR=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
716853003
Cr-Commit-Position: refs/heads/master@{#25272}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Tue, 11 Nov 2014 19:54:21 +0000 (19:54 +0000)]
ES6: Add support for super in object literals
This only available under --harmony-classes
BUG=v8:3571
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
718473002
Cr-Commit-Position: refs/heads/master@{#25271}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Tue, 11 Nov 2014 19:07:29 +0000 (19:07 +0000)]
Correctly handle Array unshift/splices that move elements past the max length of an Array
BUG=v8:2615
LOG=n
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
679113003
Cr-Commit-Position: refs/heads/master@{#25270}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Tue, 11 Nov 2014 16:22:14 +0000 (16:22 +0000)]
Revert "Classes: Add support for arguments in default constructor"
This reverts commit
3f4ea6c91a962a04407c79f08e5c86ce9ff2911a.
Broke tests on Mac64
http://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/923/steps/Check/logs/classes
BUG=v8:3672
TBR=dslomov@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
712333003
Cr-Commit-Position: refs/heads/master@{#25269}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25269
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Tue, 11 Nov 2014 15:54:33 +0000 (15:54 +0000)]
Classes: Add support for arguments in default constructor
This is currently done by generating a default constructor that looks
like this:
constructor() {
%DefaultConstructorSuperCall();
}
The a runtime function implements the logic which is pretty similar to
Runtime_Apply except that it uses the [[Prototype]] of the current
function.
BUG=v8:3672
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
692333011
Cr-Commit-Position: refs/heads/master@{#25268}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 11 Nov 2014 15:53:42 +0000 (15:53 +0000)]
Don't print inlined function ID in --trace-hydrogen
FunctionLiteral has two purposes: it is a unit of compilation, and it is
also an expression. Its id() is only for the latter purpose, used by
the continuation of the closure, not by the closure itself.
When we inline, we treat the FunctionLiteral as a unit of compilation,
not as an expression, and as such the FunctionLiteral doesn't have any
meaningful ID. The right thing to do is not to access the ID when
printing the hydrogen expression.
R=svenpanne@chromium.org, vegorov@google.com
BUG=v8:3680
LOG=N
Review URL: https://codereview.chromium.org/
716793003
Cr-Commit-Position: refs/heads/master@{#25267}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25267
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 11 Nov 2014 15:40:51 +0000 (15:40 +0000)]
Reland "Avoid some unnecessary fast-properties map creations."
This relands commit
ea74f0f85a7730879a2f17721629f93525886092.
The revert was due to failures in cctest/test-heap/ReleaseOverReservedPages,
caused by apparent changes to memory layout and fragmentation of the
first page. Eliminating a situation in messages.js where this CL has had
an effect on map transitions seems to solve the issue.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
714883003
Cr-Commit-Position: refs/heads/master@{#25266}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25266
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 11 Nov 2014 15:29:12 +0000 (15:29 +0000)]
Simplify scheduler API by removing zone scopes.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
711413002
Cr-Commit-Position: refs/heads/master@{#25265}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25265
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 11 Nov 2014 15:15:42 +0000 (15:15 +0000)]
harmony-scoping: Implement StoreIC handler for stores to global contexts.
R=ishell@chromium.org, adamk@chromium.org, rossberg@chromium.org, verwaest@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/
712973002
Cr-Commit-Position: refs/heads/master@{#25264}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 11 Nov 2014 14:27:26 +0000 (14:27 +0000)]
Remove V8.ZoneSegmentBytes.
1) It's unused. 2) Since Zones can be used on a background thread, the Zone
cannot just access this counter from the Isolate, so keeping this counter up to
date would require extra work. Better to just remove it.
BUG=431860
LOG=n
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
716793002
Cr-Commit-Position: refs/heads/master@{#25263}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Tue, 11 Nov 2014 12:02:56 +0000 (12:02 +0000)]
Remove PhiReducer.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
684993006
Cr-Commit-Position: refs/heads/master@{#25262}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25262
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 11 Nov 2014 11:52:42 +0000 (11:52 +0000)]
Removed CSCOPE artifact.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
711363002
Cr-Commit-Position: refs/heads/master@{#25261}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 11 Nov 2014 11:47:07 +0000 (11:47 +0000)]
Removed gcc_version magic from our GYP files, we don't support GCC 4.4 anymore.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
710233004
Cr-Commit-Position: refs/heads/master@{#25260}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 11 Nov 2014 11:16:30 +0000 (11:16 +0000)]
harmony-scoping: Implement LoadIC handler for loads from global contexts.
R=ishell@chromium.org, adamk@chromium.org, rossberg@chromium.org, verwaest@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/
696783005
Cr-Commit-Position: refs/heads/master@{#25259}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Tue, 11 Nov 2014 10:24:52 +0000 (10:24 +0000)]
Reland "In-object double fields unboxing (for 64-bit only)."
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
711313002
Cr-Commit-Position: refs/heads/master@{#25258}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
aandrey@chromium.org [Tue, 11 Nov 2014 09:46:40 +0000 (09:46 +0000)]
Add optional max elements limit for Map/Set mirror iterator preview.
R=yangguo@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
712083002
Cr-Commit-Position: refs/heads/master@{#25257}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 11 Nov 2014 08:29:54 +0000 (08:29 +0000)]
PowerPC specific sub-directories.
Technically, this is https://codereview.chromium.org/
571173003/ from Andrew Low <andrew_low@ca.ibm.com>.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
714093002
Cr-Commit-Position: refs/heads/master@{#25255}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25255
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 11 Nov 2014 06:06:20 +0000 (06:06 +0000)]
Fix test driver json output.
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
716713002
Cr-Commit-Position: refs/heads/master@{#25254}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Mon, 10 Nov 2014 18:03:50 +0000 (18:03 +0000)]
MapCache simplification. It is now a FixedArray that maps number of properties to a WeakCell with a Map.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
712943002
Cr-Commit-Position: refs/heads/master@{#25253}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 10 Nov 2014 17:43:51 +0000 (17:43 +0000)]
Revert "In-object double fields unboxing (for 64-bit only)."
Revert "Fixes for Windows and Mac builds after r25250."
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/
699613004
Cr-Commit-Position: refs/heads/master@{#25252}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Mon, 10 Nov 2014 16:54:55 +0000 (16:54 +0000)]
Fixes for Windows and Mac builds after r25250.
R=verwaest@chromium.org
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
717573002
Cr-Commit-Position: refs/heads/master@{#25251}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Mon, 10 Nov 2014 16:34:30 +0000 (16:34 +0000)]
In-object double fields unboxing (for 64-bit only).
This CL introduces LayoutDescriptor which is responsible for tracking which in-object fields are tagged and which are not.
LayoutDescriptor field added to Map. Currently unboxing is disabled.
R=hpayer@chromium.org, verwaest@chromium.org
Review URL: https://codereview.chromium.org/
391693002
Cr-Commit-Position: refs/heads/master@{#25250}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 10 Nov 2014 15:24:58 +0000 (15:24 +0000)]
Fix has_constant_parameter_count() confusion in LReturn
BUG=chromium:431602
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
714663002
Cr-Commit-Position: refs/heads/master@{#25249}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25249
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Mon, 10 Nov 2014 14:28:09 +0000 (14:28 +0000)]
Fix bugs in simplified lowering relating to int32/uint32 signs.
Lowering of NumberToUint32 and NumberToInt32 was not correctly accounting for the sign of the input and the sign of the output, emitting the wrong representation changes.
Along the way, I've found cases where MachineOperatorBuilder would break if fed a machine type for loads or stores that was not cached, requiring MachineOperatorBuilder to take zone to allocate operators for these cases.
R=bmeurer@chromium.org, jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
714613002
Cr-Commit-Position: refs/heads/master@{#25247}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 10 Nov 2014 14:17:50 +0000 (14:17 +0000)]
Fix serialization of expected outcomes in test driver.
The outcomes are saved as a set and need to be converted into
a list to be json-serializable.
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
710073002
Cr-Commit-Position: refs/heads/master@{#25246}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 10 Nov 2014 11:55:20 +0000 (11:55 +0000)]
Reland "[turbofan] Fix select lowering" with fix.
Select lowering must not merge Select nodes that depend on each other,
because the resulting graph is not schedulable.
TEST=unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
709423003
Cr-Commit-Position: refs/heads/master@{#25245}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 10 Nov 2014 11:52:00 +0000 (11:52 +0000)]
Fix change log creation in push script.
BUG=chromium:408523
LOG=n
TBR=tandrii@chromium.org
TEST=script_test.py
Review URL: https://codereview.chromium.org/
710593003
Cr-Commit-Position: refs/heads/master@{#25244}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dusan.milosavljevic@imgtec.com [Mon, 10 Nov 2014 11:47:54 +0000 (11:47 +0000)]
MIPS: Resolve chromium and android webview build conflicts.
The mips related gyp variables and compiler flags for webview
and chromium builds are set externally. The CL ensures this
behaviour and prevents conflicts in configuration with standalone builds.
TEST=
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
707883002
Cr-Commit-Position: refs/heads/master@{#25243}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 10 Nov 2014 11:28:54 +0000 (11:28 +0000)]
[turbofan] add register assignment verifier
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
713803002
Cr-Commit-Position: refs/heads/master@{#25242}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25242
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 10 Nov 2014 10:48:38 +0000 (10:48 +0000)]
Removed dead WriteInt32ToHeapNumberStub.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
686883003
Cr-Commit-Position: refs/heads/master@{#25241}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 10 Nov 2014 10:46:37 +0000 (10:46 +0000)]
More tests for toplevel lexical scope
R=dslomov@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/
716523002
Cr-Commit-Position: refs/heads/master@{#25240}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 10 Nov 2014 10:43:03 +0000 (10:43 +0000)]
Revert "[turbofan] Fix select lowering."
This reverts commit
cf08e8d70ff0fa35dd315ddc430b743bb04c89cf for
breaking Embenchen bullet.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/
684413003
Cr-Commit-Position: refs/heads/master@{#25238}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25238
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 10 Nov 2014 10:40:59 +0000 (10:40 +0000)]
Upgrade version and change log after branch.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
681113011
Cr-Commit-Position: refs/heads/master@{#25237}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25237
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 10 Nov 2014 10:29:37 +0000 (10:29 +0000)]
[turbofan] Fix select lowering.
Select lowering must not merge Select nodes that depend on each other,
because the resulting graph is not schedulable.
TEST=unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
717473002
Cr-Commit-Position: refs/heads/master@{#25236}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25236
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 10 Nov 2014 10:26:20 +0000 (10:26 +0000)]
Add expected outcomes to json test output.
BUG=
R=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
713463002
Cr-Commit-Position: refs/heads/master@{#25235}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25235
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Nov 2014 09:35:28 +0000 (09:35 +0000)]
Revert "Fix stepping in for-loops."
TBR=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
713813002
Cr-Commit-Position: refs/heads/master@{#25233}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Nov 2014 09:05:48 +0000 (09:05 +0000)]
Fix stepping in for-loops.
R=ulan@chromium.org
BUG=v8:3634
LOG=N
Review URL: https://codereview.chromium.org/
682413004
Cr-Commit-Position: refs/heads/master@{#25231}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25231
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Mon, 10 Nov 2014 05:50:51 +0000 (05:50 +0000)]
X87: Try avoiding MISS for callic monomorphic case.
port
6412c8ba70f2331aae0f21b968dd051b2320b947 (r25207)
original commit message:
Try avoiding MISS for callic monomorphic case.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
713743003
Patch from Chunyang Dai <chunyang.dai@intel.com>.
Cr-Commit-Position: refs/heads/master@{#25230}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Mon, 10 Nov 2014 05:50:11 +0000 (05:50 +0000)]
Resolve race condition with GC in CompilationCacheTable::Put.
The trouble is that the AsHandle method can allocate and thus
invoke GC, which could empty the table while we are updating it.
BUG=chromium:430880
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
700913003
Cr-Commit-Position: refs/heads/master@{#25229}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25229
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 10 Nov 2014 05:48:38 +0000 (05:48 +0000)]
[arm] Recognize SXTB, SXTH, UXTB and UXTH.
TEST=cctest,msjunit/asm,unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
709123005
Cr-Commit-Position: refs/heads/master@{#25228}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25228
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Mon, 10 Nov 2014 04:53:15 +0000 (04:53 +0000)]
X87: Turn ToNumberStub into a PlatformCodeStub again.
port
b6737c56eaf51d63ab83b6529f657c15f834623c (r25187)
original commit message:
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.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
714573003
Patch from Chunyang Dai <chunyang.dai@intel.com>.
Cr-Commit-Position: refs/heads/master@{#25227}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25227
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Mon, 10 Nov 2014 04:47:19 +0000 (04:47 +0000)]
X87: fix one GC issue.
The incorrect parameter number is set when recording safepoint.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
716463003
Patch from Chunyang Dai <chunyang.dai@intel.com>.
Cr-Commit-Position: refs/heads/master@{#25226}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25226
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Fri, 7 Nov 2014 23:34:13 +0000 (23:34 +0000)]
Arm64: Remove forced csp alignment to 16 byte values for Nvidia chips.
Remove the forced alignment of csp to 16 byte values on Nvidia chips.
Benchmarks on current devices show that this is no longer required.
R=rodolph.perfetta@arm.com, ulan@chromium.org
Review URL: https://codereview.chromium.org/
710613002
Cr-Commit-Position: refs/heads/master@{#25225}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25225
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Fri, 7 Nov 2014 18:49:24 +0000 (18:49 +0000)]
Revert "Avoid some unnecessary fast-properties map creations."
This reverts commit
e1f23eab4255d63344011dfb885b8e8962cb60e2.
Broke cctest/test-heap/ReleaseOverReservedPages on a bunch of builders
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/928/steps/Check/logs/ReleaseOverReservedPa..
BUG=None
LOG=N
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
709123002
Cr-Commit-Position: refs/heads/master@{#25224}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25224
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 7 Nov 2014 16:47:25 +0000 (16:47 +0000)]
[turbofan] Optimize add operations to use 'leal' instruction on x64
Add MemoryOperandMatcher that recognizes node clusters in the form
[%r1 + %r2*SCALE + OFFSET] and explicit support in the x64 Int32Add
selector to use it to translate complex adds to 'leal' instructions.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
704713003
Cr-Commit-Position: refs/heads/master@{#25223}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Fri, 7 Nov 2014 16:39:00 +0000 (16:39 +0000)]
Classes: Partial fix for constructor not calling super
Introduce two new function kind, one for default constructor and one
for default constructor call super. Then when we are about to pares
these we just generate the correct AST in source.
BUG=v8:3661, v8:3672
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
700523003
Cr-Commit-Position: refs/heads/master@{#25222}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 7 Nov 2014 16:33:08 +0000 (16:33 +0000)]
Avoid some unnecessary fast-properties map creations.
(1) When we have just normalized and re-fastified a map, we don't need to copy it again to set the is_prototype bit.
(2) When defining accessors causes a non-prototype object to go slow, don't force re-fastification.
BUG=v8:3267
LOG=n
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
706243002
Cr-Commit-Position: refs/heads/master@{#25221}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 7 Nov 2014 16:29:13 +0000 (16:29 +0000)]
harmony_scoping: Implement lexical bindings at top level
This implements correct semantics for "extensible" top level lexical scope.
The entire lexical scope is represented at runtime by GlobalContextTable, reachable from native context and accumulating global contexts from every script loaded into the context.
When the new script starts executing, it does the following validation:
- checks the GlobalContextTable and global object (non-configurable own) properties against the set of declarations it introduces and reports potential conflicts.
- invalidates the conflicting PropertyCells on global object, so that any code depending on them will miss/deopt causing any contextual lookups to be reexecuted under the new bindings
- adds the lexical bindings it introduces to the GlobalContextTable
Loads and stores for contextual lookups are modified so that they check the GlobalContextTable before looking up properties on global object, thus implementing the shadowing of global object properties by lexical declarations.
R=adamk@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
705663004
Cr-Commit-Position: refs/heads/master@{#25220}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25220
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 7 Nov 2014 16:03:11 +0000 (16:03 +0000)]
Add FLAG_trace_maps
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
694533003
Cr-Commit-Position: refs/heads/master@{#25219}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25219
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Fri, 7 Nov 2014 16:01:46 +0000 (16:01 +0000)]
MIPS: Try avoiding MISS for callic monomorphic case.
Port
c01061044028f7a31ba51496e44900481005eb38
Port r25207
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
684653007
Cr-Commit-Position: refs/heads/master@{#25218}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 7 Nov 2014 16:01:17 +0000 (16:01 +0000)]
Make scheduler handle floating non-naked loops.
R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithLoop
Review URL: https://codereview.chromium.org/
706123003
Cr-Commit-Position: refs/heads/master@{#25217}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 7 Nov 2014 15:34:42 +0000 (15:34 +0000)]
Teach TurboFan to call C functions with result_size > 1.
Happily, this fixes WIN64 failures too.
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
709033002
Cr-Commit-Position: refs/heads/master@{#25216}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25216
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 7 Nov 2014 14:31:54 +0000 (14:31 +0000)]
Scanner: disallow unicode escapes in regexp flags.
The spec explicitly forbids them. V8 never handled them properly either, just
the Scanner accepted them (it had code to add them literally to the
LiteralBuffer) and later on, Regexp constructor disallowed them.
According to the spec, unicode escapes in regexp flags should be an early error
("It is a Syntax Error if IdentifierPart contains a Unicode escape sequence.").
Note that Scanner is still more relaxed about regexp flags than the
spec. Especially, it accepts any identifier parts (not just a small set of
letters) and doesn't check for duplicates.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
700373003
Cr-Commit-Position: refs/heads/master@{#25215}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25215
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Fri, 7 Nov 2014 14:07:18 +0000 (14:07 +0000)]
[turbofan] Fix deoptimization of uint8, uint16 inputs.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
707443003
Cr-Commit-Position: refs/heads/master@{#25214}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 7 Nov 2014 13:07:04 +0000 (13:07 +0000)]
Remove heap size filter for context disposal garbage collection.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
712563002
Cr-Commit-Position: refs/heads/master@{#25213}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 7 Nov 2014 12:40:06 +0000 (12:40 +0000)]
Use current time to calculate context disposal rate.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
679363003
Cr-Commit-Position: refs/heads/master@{#25212}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 7 Nov 2014 12:01:00 +0000 (12:01 +0000)]
Revert r24922 "Windows: use SystemTimeToTzSpecificLocalTime instead of localtime_s."
SystemTimeToTzSpecificLocalTime doesn't work correctly inside Chrome sandbox.
BUG=chromium:417640
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
710643002
Cr-Commit-Position: refs/heads/master@{#25211}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Fri, 7 Nov 2014 09:55:39 +0000 (09:55 +0000)]
[turbofan][arm64] Optimize shifts combined with truncations or extensions.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
705983002
Cr-Commit-Position: refs/heads/master@{#25210}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25210
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Fri, 7 Nov 2014 09:47:08 +0000 (09:47 +0000)]
[arm64] Bug fix in sapefoint recording.
cp is handled by the register allocator and doesn't necessarily hold the
context pointer on arm64.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
695323005
Cr-Commit-Position: refs/heads/master@{#25209}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25209
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 7 Nov 2014 09:36:49 +0000 (09:36 +0000)]
Perform context disposal garbage collections only if contexts disposals happen at a high rate.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
710603003
Cr-Commit-Position: refs/heads/master@{#25208}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25208
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 7 Nov 2014 09:28:04 +0000 (09:28 +0000)]
Try avoiding MISS for callic monomorphic case.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
704143003
Cr-Commit-Position: refs/heads/master@{#25207}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25207
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 6 Nov 2014 18:56:33 +0000 (18:56 +0000)]
Enable inlining tests that pass with new scheduler.
R=titzer@chromium.org
TEST=test-run-inlining/InlineTwiceDependentDiamond
Review URL: https://codereview.chromium.org/
704293002
Cr-Commit-Position: refs/heads/master@{#25205}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
arv@chromium.org [Thu, 6 Nov 2014 18:44:44 +0000 (18:44 +0000)]
Enable ES6 numeric literals by default
BUG=v8:2783
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
703943002
Cr-Commit-Position: refs/heads/master@{#25204}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25204
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Thu, 6 Nov 2014 17:41:24 +0000 (17:41 +0000)]
Disable ranging for modulus in hopes it will fix arm.
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
705113002
Cr-Commit-Position: refs/heads/master@{#25203}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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