Commit Graph

18930 Commits

Author SHA1 Message Date
mvstanton@chromium.org
134a89b11f Introduce TypeFeedbackVector, as FixedArray grew constrictive.
The TypeFeedbackVector is poised to host significant functionality. While it
remains a FixedArray under the covers, we need a place to hold logic and
definitions unique to its function.

BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:59:53 +00:00
svenpanne@chromium.org
80d9d6df30 Thread the Lithium instruction down to DeoptimizeIf and friends.
This is a purely mechanical refactoring and a first step towards being
able to report more helpful deoptimization reasons. With this
refactoring, we know at least the mnemonic of the instruction causing
the deopt, although this is not used yet. Future steps will be using
the mnemonic, passing additional explicit deopt reasons and removing
the fragile machinery of searching for code comments.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:53:08 +00:00
mstarzinger@chromium.org
1debacf6aa Remove Compiler::RecordFunctionCompilation from interface.
R=sigurds@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:41:45 +00:00
mstarzinger@chromium.org
4413d318a6 Unify use-sites of EnsureDeoptimizationSupport.
R=sigurds@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:02:36 +00:00
sigurds@chromium.org
68075b0a05 Reland "Add handling for argument adaptor frames to inlining."
Original: https://codereview.chromium.org/573703002/

Reland Fixes:
- Add deopt framestate to CollectStackTrace runtime call

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 08:56:52 +00:00
titzer@chromium.org
892e6621f2 Don't update the compilation size statistics when doing an optimized compile.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 08:47:13 +00:00
hpayer@chromium.org
97bce5e668 Use allocation throughput to estimate next scavenge event in idle notification.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 08:44:46 +00:00
machenbach@chromium.org
0fce2201b9 Revert "Don't use OwnPrototypeChainLength in GetOwnPropertyNames"
This reverts commit r23997 for causing check failures in
layout tests:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/498

TBR=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 06:57:12 +00:00
v8-autoroll@chromium.org
34835388a8 [Auto-roll] Bump up version to 3.29.73.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 17:31:19 +00:00
dusan.milosavljevic@imgtec.com
febc3fa415 MIPS64: Fix move operations from coprocessor in simulator.
This resolves calculation errors for trigonometric functions.

TEST=test262/S15.8.2.7_A6.js
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 16:21:22 +00:00
titzer@chromium.org
f6807d7897 Rename Runtime_CompileUnoptimized to Runtime_CompileLazy, because that is what it does. Split Compiler::GetUnoptimizedCode into two variants, one for lazy compilation (which can return optimized code!) and the other that actually returns unoptimized code.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 15:29:42 +00:00
sigurds@chromium.org
b8dd74779c Revert "Add handling for argument adaptor frames to inlining."
This reverts commit r24008.

TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 15:00:57 +00:00
mstarzinger@chromium.org
79e095c8d0 Introduce simplified BooleanToNumber operator.
R=titzer@chromium.org
TEST=cctest/test-simplified-lowering/LowerBooleanToNumber

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:47:25 +00:00
sigurds@chromium.org
887b77aa83 Add handling for argument adaptor frames to inlining.
- Lazy deopt from inlined calls
- Lazy deopt from inlined calls with parameter mismatch

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:41:30 +00:00
mvstanton@chromium.org
18ea0084a0 Fix the IsTheHole bug.
For Double constant of non nan, object_ may be uninitialized.

(This patch comes from weiliang.lin@intel.com )

BUG=
R=mvstanton@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:28:48 +00:00
sigurds@chromium.org
4ef5915741 This is a reland of issue 563813002:
https://codereview.chromium.org/575473002/

This time with additional include headers and MSVC specific guards. Previously, only V8 Win32 - nosnap - shared failed:

http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/2916

R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:20:20 +00:00
wingo@igalia.com
00375fba59 Array.prototype.sort: Unchecked calls to hasOwnProperty and push and sort
BUG=v8:3537
LOG=
R=arv@chromium.org, wingo@igalia.com, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:01:25 +00:00
v8-autoroll@chromium.org
6cbeb6d00e [Auto-roll] Bump up version to 3.29.72.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 13:31:26 +00:00
yangguo@chromium.org
2fd6e380ca Fix compile error introduced in 24002.
TBR=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 13:18:50 +00:00
yangguo@chromium.org
a49ac519c8 Serialize code stubs using stub key.
Also add some tracing to the code serializer.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:50:17 +00:00
titzer@chromium.org
cbf66711af Minor compiler pipeline refactoring. Inline UpdateSharedFunctionInfo and make Parser::Parse responsible for setting the strict mode of the CompilationInfo.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:34:46 +00:00
yangguo@chromium.org
1cc4b0b95e Support stepping into generator function.
R=aandrey@chromium.org, wingo@igalia.com
BUG=v8:3572
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:27:16 +00:00
weiliang.lin@intel.com
8a4e0680ab X87: turn on some tests of test-serialize
They were disabled by r21661. We turn on it because x87 snapshot can work now.

BUG=
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:03:59 +00:00
verwaest@chromium.org
d0ad526359 Don't use OwnPrototypeChainLength in GetOwnPropertyNames
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 09:56:51 +00:00
svenpanne@chromium.org
ac1b9b11dc Fixed deopt reasons in TaggedToI.
Every DeoptimizeIf should be preceded by a RecordComment explaining
the reason. In the long run, the reason should be an argument of
DeoptimizeIf, but we're not there yet.

On x87, things are a bit ugly due to some pushing/popping, so if
somebody feels inclined to improve this: Feel free. Probably the right
approach would be reloading instead of the push/pop horror.

Another thing is our inconsistent handling of the "done" continuation
of deferred code on the various platforms, I made tiny changes on the
way, but this should better be unified somehow, with all those
micro-optimizations removed.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 09:51:17 +00:00
svenpanne@chromium.org
fdcf5f99b2 Unbreak build
TBR=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 09:49:57 +00:00
hpayer@chromium.org
fe626586da Measure new space allocation throughput.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 08:50:57 +00:00
v8-autoroll@chromium.org
7cee8d5cd2 [Auto-roll] Bump up version to 3.29.71.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 08:01:35 +00:00
weiliang.lin@intel.com
ac6074707a X87: Removing ic.h from code-stubs.h
port r23977.

original commit message:

  Removing ic.h from code-stubs.h

  CodeStubs use state types defined in ic.h, but this has the unfortunate effect of spreading ic.h all over the place. Instead, define these shared state types in ic-public.h and allow ic.h to concern itself with internal state change of the ICs.

  More work could/should be done here, but this is a first step.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 05:21:36 +00:00
arv@chromium.org
7efd2eb144 Class syntax parsing
This implements parsing for ClassExpression and ClassDeclaration.
The runtime is not yet implemented and the value is currently
hard coded to undefined.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 22:15:39 +00:00
v8-autoroll@chromium.org
7062b8fb49 [Auto-roll] Bump up version to 3.29.69.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 21:01:27 +00:00
akos.palfi@imgtec.com
8c56583573 MIPS64: Fixed int vs. uintptr_t confusion (plus some cleanup on the way).
Port r23966 (a498d5e3)

BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 20:16:11 +00:00
akos.palfi@imgtec.com
a97f2b1014 MIPS64: Removing ic.h from code-stubs.h
Port r23977 (d0cba839)

Original commit message:
CodeStubs use state types defined in ic.h, but this has the unfortunate effect of spreading ic.h all over the place. Instead, define these shared state types in ic-public.h and allow ic.h to concern itself with internal state change of the ICs.

More work could/should be done here, but this is a first step.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 17:59:41 +00:00
v8-autoroll@chromium.org
e4c3b699bb [Auto-roll] Bump up version to 3.29.68.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 17:31:23 +00:00
mstarzinger@chromium.org
2c04afb9ce Avoid usage of temporary MachineOperatorBuilder.
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 16:20:10 +00:00
jochen@chromium.org
cc66fb85e3 Track how much we miss the idle notification limit
We can't report negative values using histograms, so we split the data
up into two histograms

BUG=chromium:397026
LOG=n
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 16:18:02 +00:00
jochen@chromium.org
5134a1806e Remove unused histogram definitions
R=marja@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 13:16:02 +00:00
hpayer@chromium.org
b105da2061 Allow IdleNotification to trigger Scavenges.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 13:00:05 +00:00
rossberg@chromium.org
5d520f9ed1 Re-reland "Use unsigned type bitsets to limit undefined behaviour"
Change: make bitset uint32_t, to avoid weird sign extension bugs on Win64.

BUG=
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:58:43 +00:00
mvstanton@chromium.org
a4176d2052 Removing ic.h from code-stubs.h
CodeStubs use state types defined in ic.h, but this has the unfortunate effect of spreading ic.h all over the place. Instead, define these shared state types in ic-public.h and allow ic.h to concern itself with internal state change of the ICs.

More work could/should be done here, but this is a first step.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:51:33 +00:00
hpayer@chromium.org
c54b0bc717 Use the regular start incremental marking strategy in the idle notification.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:48:59 +00:00
verwaest@chromium.org
7d90f7e931 Simplify the LookupIterator
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:42:04 +00:00
wingo@igalia.com
a76fe0a2cf Enable ES6 generators
R=rossberg@chromium.org

BUG=v8:2355
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:30:39 +00:00
mstarzinger@chromium.org
d20bd6dac1 Adapt some typed lowering unit tests after r23972.
R=rossberg@chromium.org
TEST=cctest/test-js-typed-lowering

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:17:40 +00:00
mstarzinger@chromium.org
429924b780 Fix typed lowering to number comparison.
R=titzer@chromium.org
TEST=mjsunit/regress/regress-3564
BUG=v8:3564
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 11:33:30 +00:00
Jacob.Bramley@arm.com
aedae395b1 Allow trace-codegen to dereference handles.
This fixes --print-all-code for some tests.

BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 10:42:54 +00:00
Jacob.Bramley@arm.com
647e6cf2ac ARM64: Remove the unused 'SmiAbs'.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 10:42:09 +00:00
verwaest@chromium.org
3a448aac19 The value register in storefield(smi) is not used as a temp
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:47:45 +00:00
v8-autoroll@chromium.org
5bd28c6e07 [Auto-roll] Bump up version to 3.29.67.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:31:36 +00:00
svenpanne@chromium.org
bd25cbe359 Fixed int vs. uintptr_t confusion (plus some cleanup on the way).
BUG=v8:3556
LOG=y
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:23:27 +00:00