Commit Graph

19769 Commits

Author SHA1 Message Date
adamk@chromium.org
c9ea8d6512 SimpleSlice now calls [[Get]] before [[Has]] when generating copy
SparseSlice does not need this (non-optimal) reordering since its
callers guarantee that [[Get]] has no side effects on the passed-in array.

BUG=v8:3643
LOG=n
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24884}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 18:08:13 +00:00
adamk@chromium.org
02d37b8f10 Widen definition of %HasComplexElements() to include non-enumerability
This avoids using the Sparse methods on objects with non-enumerable elements,
which can cause the 'enumerable: false' bit to get lost in the operation.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24883}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 18:04:13 +00:00
baptiste.afsa@arm.com
878ff91c8f [arm64] Use logical immediates when matching tst instructions.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24882}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 15:29:44 +00:00
jkummerow@chromium.org
f916299225 Fix "jst" GDB macro
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24881}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 15:04:08 +00:00
dslomov@chromium.org
9b74675e0d Check string literals with escapes in PreParserTraits::GetSymbol()
LOG=Y
BUG=v8:3606
R=arv@chromium.org, marja@chromium.org

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

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

Cr-Commit-Position: refs/heads/master@{#24880}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 15:02:41 +00:00
machenbach@chromium.org
99124866e6 Whitespace change for testing gnumbd.
Cr-Commit-Position: refs/heads/master@{#24878}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 14:41:12 +00:00
titzer@chromium.org
21013d2641 Fix bugs in Scheduler hoisting and RPO loop bounds computations.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#24877}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:57:39 +00:00
mstarzinger@chromium.org
a9a7979e9e Add Schedule::InsertBranch to fuse control flow graphs.
R=jarin@chromium.org
TEST=cctest/test-schedule/TestScheduleInsertBranch

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

Cr-Commit-Position: refs/heads/master@{#24876}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:48:18 +00:00
svenpanne@chromium.org
e743eef448 only define ARRAYSIZE_UNSAFE for NaCl builds
Now that C++11 is allowed, we can use arraysize instead of
ARRAYSIZE_UNSAFE, except in NaCl builds.  So let's move this
macro inside an NaCl ifdef.

BUG=chromium:405225
LOG=y
R=jochen@chromium.org

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

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

Cr-Commit-Position: refs/heads/master@{#24875}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:21:48 +00:00
sigurds@chromium.org
df9ac2c165 Add Float64Floor, Float64Ceil, Float64RoundTruncate, Float64RoundTiesAway operators.
These operators are not supported by any backends yet, and a backend is free to not support them.

R=bmeurer@chromium.org
TEST=unittest/machine-operator

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

Cr-Commit-Position: refs/heads/master@{#24874}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:12 +00:00
marja@chromium.org
e0734a6519 AstValueFactory: make true, false, null, undefined and "the hole" unique values.
They were not, so we were creating several instances of them, one for each time
they occurred in the source code.

It's not known to have caused efficiency problems though, so this is a sanity
fix more than an efficiency fix.

Note that numbers are still not unique.

BUG=
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24873}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:11 +00:00
yangguo@chromium.org
484274346f Enable --serialize-toplevel by default.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24872}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:10 +00:00
yangguo@chromium.org
0e1124842a Tweaks to the code serializer.
- consider the source string as a special sort of back reference.
- use repeat op code for more root members.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24871}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:09 +00:00
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