Commit Graph

19406 Commits

Author SHA1 Message Date
mvstanton@chromium.org
59d9651931 TurboFan calls to vector-based ics need to resolve a slot to an index.
This is to cope with the recent division of the TypeFeedbackVector into
Slots and ICSlots.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24870}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:08 +00:00
mvstanton@chromium.org
b0bfef00f3 Improve printing for Symbols.
Private symbols we create in the heap don't have names, but we can
resolve them to a constant string.

This gives handy debugger output like:

(gdb) job 0x2020c67d
0x2020c67d: [Symbol]
 - hash: 547385396
 - name: 0x20208091 <undefined> (uninitialized_symbol)
 - private: 1
 - own: 1
$7 = void
(gdb)

or with ShortPrint() in an array:

...
  [5]: 0x2020c67d <Symbol: 547385396 (uninitialized_symbol)>
...

Printing help for internal symbols

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24869}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:07 +00:00
yangguo@chromium.org
7259d87f36 Use memcpy in List::AddAll for fundamental types.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24868}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:06 +00:00
mstarzinger@chromium.org
119bbee895 Generate fake basic block for Terminate node.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24867}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:05 +00:00
mvstanton@chromium.org
80afe016a8 PropertyICCompiler: expose monomorphic keyed load handler creation.
Simple refactoring that is useful for upcoming --vector-ic changes.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24866}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:04 +00:00
machenbach@chromium.org
87f52869d2 Whitespace change.
Cr-Commit-Position: refs/heads/master@{#24865}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:03 +00:00
machenbach@chromium.org
f1a5c2808e Whitespace change.
Cr-Commit-Position: refs/heads/master@{#24864}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:02 +00:00
machenbach@chromium.org
9e0e6567ca Whitespace change to test gnumbd.
TBR=agable@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24863}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:01 +00:00
bmeurer@chromium.org
548fb46331 [x86] Fix register constraints for multiply-high.
TEST=mjsunit/compiler,unittests
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 09:36:40 +00:00
yangguo@chromium.org
e6ac285bd3 Log code event for deserialized code.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 08:37:03 +00:00
bmeurer@chromium.org
eb1aa6aee3 Unbreak c1visualizer.
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 08:25:00 +00:00
weiliang.lin@intel.com
70a11f5697 X87: Classes: implement 'new super'.
port r24825.

original commit message:

  Classes: implement 'new super'.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 07:34:20 +00:00
yangguo@chromium.org
518ddc9317 Make block writes in the serializer more efficient.
And also fix a OOB read in SerializeExternalString.

R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 07:29:39 +00:00
verwaest@chromium.org
8189922e1e Limit the number of transitions allowed per hidden class.
Each time a transition is added to a hidden class, the whole
transitions array must be copied, which causes poor performance
in some circumstances.  This change limits the maximum size of
the transition array, avoiding this behavior in the pathological
case.  For example, this improves the performance of the EtchMark
benchmark by nearly 60%.

BUG=v8:3616
LOG=
R=verwaest@chromium.org, svenpanne@chromium.org

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

Patch from Kevin M. McCormick <mckev@amazon.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 05:29:54 +00:00
adamk@chromium.org
0ef073d556 Fix sparse versions of Array slice/splice to use [[DefineOwnProperty]] to generate return value
BUG=chromium:423633
LOG=n
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 21:13:29 +00:00
adamk@chromium.org
5f1ae66d56 Narrow cases where Sparse/Smart versions of Array methods are used
Added a new %HasComplexElements runtime function (meaning elements that are
non-writable, non-configurable, or have getters and setters) and use it
in UseSparseVariant to filter out cases where the sparse optimizations
can cause V8 to fall out of spec compliance.

Renamed SmartMove/SmartSlice to SparseMove/SparseSlice and guarded them
with the new and improved UseSparseVariant.

These two changes combine let us pass nearly every test in bug-2615.js,
as well as fixing reverse and join on sparse arrays.

Note that there are various test changes in this patch that correct existing
tests to match the correct-by-spec behavior.

This patch depends on https://codereview.chromium.org/666883009, which
better-aligns the behavior of SmartMove with SimpleMove.

BUG=v8:2615,v8:3612,v8:3621
LOG=y
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 18:21:50 +00:00
adamk@chromium.org
f3c3697521 Change SmartMove no-op behavior to match SimpleMove (and ES6 spec)
The previous behavior, which caused Array.prototype.unshift() (with no args)
to have side-effects, no longer matches the spec (ES6 changed the no-arg behavior
in April 2014). The new SmartMove behavior is also compatible with current
versions of Firefox.

This is a baby step towards getting rid of SmartMove; it isolates the test
change in this patch, instead of lumping it in confusingly with all the
other test updates necessary for moving away from SmartMove.

R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 17:46:34 +00:00
mstarzinger@chromium.org
f194b3cc9e Move special RPO computation into separate class.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 16:29:43 +00:00
mstarzinger@chromium.org
48a52aef74 Make GIT ignore all turbo.cfg files.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 16:11:56 +00:00
ulan@chromium.org
8d9381129e Shrink new space in idle notification.
BUG=chromium:424423
LOG=Y
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 15:16:27 +00:00
jarin@chromium.org
463f9ebcb8 Disambiguate pow
TBR=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 15:09:38 +00:00
ishell@chromium.org
5509cc2c07 Fixed mutable heap numbers leak in JSON parser.
BUG=chromium:423687
LOG=N
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:41:39 +00:00
jarin@chromium.org
c7685a59f0 [turbofan] Use range types to type and lower arithmetic ops.
This is based on Georg's work on typing arithmetic operations (https://codereview.chromium.org/658743002/).

Instead of weakening to bitset types, we weaken to the closest 2^n
limit if we see that we are re-typing a node with a range type (which
means that the node can be part of a cycle, so we might need
to speed up the fixpoint there).

BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:40:43 +00:00
machenbach@chromium.org
a8ff27ab55 Whitespace change to trigger bots.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:38:25 +00:00
machenbach@chromium.org
12ed19d412 Switch release scripts to new git workflow.
BUG=410721
TBR=tandrii@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:27:15 +00:00
dcarney@chromium.org
a280b89b6f fix another static initializer
TBR=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:59:48 +00:00
dslomov@chromium.org
96105a90fc harmony-scoping: Allow 'const' iteration variables in strict mode.
R=rossberg@chromium.org
BUG=v8:2506
LOG=N

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:30:20 +00:00
akos.palfi@imgtec.com
0f1548405a MIPS: Classes: implement 'new super'.
Port r24825 (b26f0181)

BUG=
R=dslomov@chromium.org, dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:05:46 +00:00
svenpanne@chromium.org
b3fa671ea2 Reland 'Simplify TurboFan's c1visualizer file handling.'
This is r24819 plus some tiny fixes to make the Mac toolchain happy.

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:56:26 +00:00
dslomov@chromium.org
707ed29a51 Revert "harmony-scoping: Allow 'const' iteration variables in strict mode."
This reverts commit r24834 for breaking debug tests.

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:55:19 +00:00
bmeurer@chromium.org
4ac3d1407b Remove deprecated lexer-shell.
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:42:30 +00:00
ishell@chromium.org
209855a6b6 More details printed for Map, DescriptorArray and TransitionArray.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:31:33 +00:00
yangguo@chromium.org
aaa104c8da De-virtualize snapshot sink.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:23:57 +00:00
dcarney@chromium.org
4568813a34 fix build after r24830
TBR=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:19:44 +00:00
dslomov@chromium.org
b54f7d3c46 harmony-scoping: Allow 'const' iteration variables in strict mode.
R=rossberg@chromium.org
BUG=v8:2506
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:18:50 +00:00
mstarzinger@chromium.org
778c500df7 Make sure floating phi nodes are coupled to their control (2).
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 10:33:49 +00:00
bmeurer@chromium.org
80836787a3 [turbofan] Improve code generation for inline comparisons with zero.
TEST=cctest,unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 10:22:06 +00:00
yangguo@chromium.org
cedd140126 Fix memory leak in RootIndexMap.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:32:18 +00:00
dcarney@chromium.org
5f83dabb60 [turbofan] split compilation stats off from HStatistics and track high water marks
R=jarin@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:14:35 +00:00
yangguo@chromium.org
b6f66b5fc7 Second compile fix to r24826.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:01:09 +00:00
yangguo@chromium.org
c5a040fcf8 Fix compile errors in r24826.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:56:54 +00:00
yangguo@chromium.org
601b776e7e Use hash map to look for objects in the root array when serializing.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:43:17 +00:00
dslomov@chromium.org
98c208447d Classes: implement 'new super'.
R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:32:23 +00:00
yangguo@chromium.org
7753ace135 Small fixes for the code serializer.
- assertions regarding max heap object size.
- ensure string table capacity upfront.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:25:42 +00:00
dslomov@chromium.org
6442348d6e Revert "Classes: implement 'new super'."
This reverts commit r24822 for breaking debug compilation.

TBR=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:21:30 +00:00
dslomov@chromium.org
99cafa0d5a Classes: implement 'new super'.
R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:11:51 +00:00
svenpanne@chromium.org
ea3a205af2 Revert "Simplify TurboFan's c1visualizer file handling."
This reverts r24819, it broke the build on Mac due to header incompatibilities.

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:36:39 +00:00
bmeurer@chromium.org
6d5f6914f7 [turbofan] Currently we cannot handle typed arrays bigger than 2GiB.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:34:36 +00:00
svenpanne@chromium.org
c5a8743a1b Simplify TurboFan's c1visualizer file handling.
Still having GetTurboCfgFileName in Isolate is ugly, but if we decide that we
don't want to truncate the output file (which would be consistent with
--trace-hydrogen), this could be moved to TurboCfgFile where it actually
belongs.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:26:13 +00:00
dcarney@chromium.org
887b3ca079 Cleanup ConsStringIteratorOp.
R=yangguo@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 05:57:01 +00:00