Commit Graph

7180 Commits

Author SHA1 Message Date
danno@chromium.org
ad41b9ebc4 Optimize call sites that only ever see a single elements transition
R=jkummerow@chromium.org
TEST=imaging-gaussian-blur performance improves

Review URL: https://chromiumcodereview.appspot.com/9389001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-13 11:37:39 +00:00
yangguo@chromium.org
0801e4c3e0 Port r10674 to x64 and arm.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9384005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-13 08:21:01 +00:00
yangguo@chromium.org
b06c041448 MIPS: Fixed several bugs in SubStringStub::Generate.
A combination of bugs caused this function to almost always jump to runtime
which is why most tests passed.

BUG=
TEST=sputnik/S15.5.4.13_A2_T6

Review URL: https://chromiumcodereview.appspot.com/9382005
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-13 08:17:32 +00:00
jkummerow@chromium.org
7c695dcfa9 MIPS: Count-based profiling for primitive functions (hidden behind a flag)
Port r10657 (92073cf).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9383003
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 16:26:55 +00:00
loislo@chromium.org
384cc7fce2 Heap Snapshot maximum size limit is too low for really big apps.
At the moment the limit is 256MB.

BUG=113015
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9375047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 14:00:16 +00:00
yurys@chromium.org
97cbb319bd Provide user-friendly access to natively bound function parameters
For a closure created using native Function.prototype.bind() the most important information for the heap profiler user is bound function, receiver and arguments. This change adds shortcuts for those fields.
Review URL: https://chromiumcodereview.appspot.com/9382002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 13:54:20 +00:00
danno@chromium.org
eb71dfee89 Implement elements transitions in ia32 Array constructor with n args.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9369044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 12:41:48 +00:00
danno@chromium.org
f0c4b87f34 Implement KeyedStoreICs to grow arrays on out-of-bound stores.
Supports growing non-COW JSArray by a single element if the backing store has room, and initial allocation of a backing store for the store to index zero of an empty array  to kPreallocatedArrayElements elements (e.g. the [] array literal).

Review URL: https://chromiumcodereview.appspot.com/9310117

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 12:36:05 +00:00
yangguo@chromium.org
e74b57317b Fix crashes on x64 with smi-only arrays active.
Review URL: https://chromiumcodereview.appspot.com/9384002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 12:28:25 +00:00
kmillikin@chromium.org
581b7e6eb2 Streamline throwing in the C entry stub.
Remove a gratuitous level of indirection in favor of direct calls to the
macro assembler, and eliminate some duplicated code for the uncatchable
case.

R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9373022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 08:47:35 +00:00
kmillikin@chromium.org
f8421446e2 Small cleanup of ast.h.
Somehow the definition of DECLARE_NODE_TYPE was duplicated and never undef'd.

R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9372056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 08:35:57 +00:00
rossberg@chromium.org
0fa948d19e Make constructors explicit.
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9368026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:54:45 +00:00
yangguo@chromium.org
eae54f2a54 Prepare push to trunk. Now working on version 3.9.6.
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9374017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:49:30 +00:00
rossberg@chromium.org
5498a6345a Extend AST with basic module constructs (yet unused).
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9373023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:40:41 +00:00
rossberg@chromium.org
751508d6aa Split AST Declaration class, in preparation for new module declaration forms.
Turns Declaration into an abstract class, and introduces VariableDeclaration as a concrete subclass.

R=kmillikin@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9348057

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:39:26 +00:00
yangguo@chromium.org
d7934bd44c MIPS: Convert fast smi-only to fast object in generated code for array push.
Port r10648 (818a1aa).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9372022
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:32:11 +00:00
jkummerow@chromium.org
de510c3a58 Split experimental profiler flags
Review URL: https://chromiumcodereview.appspot.com/9374015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:30:01 +00:00
danno@chromium.org
1588f7224e Revert 9111036: Promote double arrays to FAST_ELEMENT that use generic KeyedLoadIC
It tanked Kraken.

TBR=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9368024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 13:07:46 +00:00
svenpanne@chromium.org
96cad0d9f0 Handlify GetSourceCode-related functions.
Review URL: https://chromiumcodereview.appspot.com/9374013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 10:46:50 +00:00
jkummerow@chromium.org
aa2e842134 Count-based profiling for primitive functions (hidden behind a flag)
Review URL: https://chromiumcodereview.appspot.com/9361026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 10:19:46 +00:00
svenpanne@chromium.org
fdf31d1bff Cleaned up DescriptorArray::CopyInsert a bit.
The point of this refactoring is to remove some copy 'n' paste from the code,
preparing some upcoming changes related to CopyFrom and CALLBACKS with
transitions. The index fiddling is tricky enough to warrant a separate
refacoring-only CL...

Review URL: https://chromiumcodereview.appspot.com/9371013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 09:55:14 +00:00
kmillikin@chromium.org
831ada2f0d Simplify handler pushing.
Instead of using two separate bits to encode three possible values, use
three values to encode the three possible values.

R=svenpanne@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9372016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 09:43:37 +00:00
mstarzinger@chromium.org
34f220001d Simplify stackframe of construct stub on ARM and MIPS.
This unifies the stackframe layout of the generic constructor stub to be
in sync with ia32 and x64. There was an unecessary copy of the construct
function saved on the stack which wasn't used at all.

R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9348058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 09:13:31 +00:00
danno@chromium.org
d89c0b9500 Promote double arrays to FAST_ELEMENT that use generic KeyedLoadIC
Review URL: https://chromiumcodereview.appspot.com/9111036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 09:11:04 +00:00
danno@chromium.org
d949c64688 Improve GVN handling of ElementTransitions.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9141016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-09 08:58:19 +00:00
yangguo@chromium.org
d714d8511b Convert fast smi-only to fast object in generated code for array push.
Review URL: https://chromiumcodereview.appspot.com/9365020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 17:05:59 +00:00
vegorov@chromium.org
96baf602df Ensure that regexp code flushing correctly updates slots buffer.
Enable code compaction again.

R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9365019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 15:44:07 +00:00
erik.corry@gmail.com
53c6838cce Remove 5 unused flags.
Review URL: https://chromiumcodereview.appspot.com/9362014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 15:39:41 +00:00
danno@chromium.org
7639836eca MIPS: Handle single element array growth + transition in generic KeyedStoreIC
Port r10583 (505679e).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9316061
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 14:43:36 +00:00
danno@chromium.org
3c6459285c MIPS: Don't allow large immediates for certain instructions.
Some instructions can use >16 bit immediates if they represent a <=16 bit signed value.
However some logical instructions (andi, xori, ori, lui) should always treat the immediate value as unsigned.
This patch adds an ASSERT to these places and a minor change to MacroAssembler::li to satisfy this.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9309077
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 14:41:10 +00:00
kmillikin@chromium.org
e505a085e3 Remove the JSON AST printing support.
We are not currently maintaining or testing this.

R=danno@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9363019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 13:53:24 +00:00
fschneider@chromium.org
3f50663371 Remove remaining occurrences of the unused --opt-eagerly flag.
Fix a lint error.
Review URL: https://chromiumcodereview.appspot.com/9365015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 12:49:04 +00:00
fschneider@chromium.org
b8b50400d2 Inline builtin Math functions functions in more cases.
Until now we only could inline as specialized HIR instructions when called
as a method (e.g. Math.abs)

It is very common practice to abbreviate calls to those functions by defining
a global or local variable like:

var a = Math.abs;
var x = a(123);

This change allows inlining them when called as a function (global or local).
Review URL: https://chromiumcodereview.appspot.com/9365013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 12:08:46 +00:00
rossberg@chromium.org
a0b287a3b1 Extend scanner with new Harmony module keywords (under flag).
R=mstarzinger@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9352013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 10:53:58 +00:00
fschneider@chromium.org
3ed0ab7a73 MIPS: Fix compilation error after removing an unused flag.
TBR=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9348049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 10:33:30 +00:00
fschneider@chromium.org
5bc8a69055 Remove another two unused flags.
Review URL: https://chromiumcodereview.appspot.com/9358019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 10:26:17 +00:00
svenpanne@chromium.org
6f573edc11 Prepare push to trunk. Now working on version 3.9.5.
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9358021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 10:23:10 +00:00
jkummerow@chromium.org
d795b7c620 Collect AstNode type information
Review URL: https://chromiumcodereview.appspot.com/9221011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 09:56:33 +00:00
kmillikin@chromium.org
9463c00d64 Remove unused --peephole-optimization flag.
R=danno@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9361022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 09:55:25 +00:00
yangguo@chromium.org
3e58827710 Fix elements transition bug related to array.concat.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9358018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 09:50:13 +00:00
lrn@chromium.org
f0a87d7c34 Fix handling of 'c: if (0) break c; else ()' where a parser optimization
leaves a trailing ";" after removing the break.

Review URL: https://chromiumcodereview.appspot.com/9159043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 08:40:11 +00:00
svenpanne@chromium.org
557fc46b62 Fixed assertions when accessing the hidden properties dictionary.
TBR=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9360012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-08 07:23:14 +00:00
vegorov@chromium.org
cc3c37ef61 Disable code compaction again.
Check failures are gone but now layout tests are failing.

R=fschneider@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9351019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 16:34:26 +00:00
vegorov@chromium.org
99fa8059c3 Try enabling (non-incremental) code compaction again.
This time include slot-recording fixes in code flushing that were accidentally omitted from the previous commit.

R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9348018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 14:43:51 +00:00
danno@chromium.org
889966a456 Properly initialize element-transitioning array literals on ARM.
R=erikcorry@gmail.com
BUG=v8:1930
TEST=unit tests with enable_vfp3=true

Review URL: https://chromiumcodereview.appspot.com/9316131

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 14:03:13 +00:00
jkummerow@chromium.org
730c134bd0 Prepare push to trunk. Now working on version 3.9.4.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9348014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 12:04:36 +00:00
vegorov@chromium.org
9920e441fa Disable code compaction again while we investigate buildbot check failures.
Review URL: https://chromiumcodereview.appspot.com/9351013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 10:03:08 +00:00
yangguo@chromium.org
988d1269de When rethrowing an exception, print the stack trace of its original site instead of rethrow site.
BUG=60240

Review URL: https://chromiumcodereview.appspot.com/9310122

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 09:31:06 +00:00
svenpanne@chromium.org
2a02f4838b DescriptorArray::IsProperty-related cleanup.
More minor changes related to property predicates:

 * Slightly simplify logic when handling hidden properties.

 * Make IsProperty usage more consistent in RemoveTransitions.

Review URL: https://chromiumcodereview.appspot.com/9352012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 08:59:03 +00:00
vegorov@chromium.org
029aa9ef92 Enable non-incremental code compaction.
It is intended to bring memory usage down on idle notifications.

R=erik.corry@gmail.com
BUG=v8:1726

Review URL: https://chromiumcodereview.appspot.com/9323079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 08:51:47 +00:00
erik.corry@gmail.com
79112684b5 Increase size of small stacks from 32k to 64k to avoid hitting
limits in Chromium.
http://code.google.com/p/chromium/issues/detail?id=112843
Review URL: https://chromiumcodereview.appspot.com/9353006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 08:00:36 +00:00
loislo@chromium.org
dc3f16a321 I will apply it to the nodes that can't be mapped to Heap object or Native object.
As example there are 'Detached DOM Tree' nodes in WebKit. It is very useful to be able to see all such
nodes grouped together. It can be done with help of some post processing but I did this explicitly
on v8 side because it is much faster. At the moment this kind of nodes has kNative type.
I'd like to hide these nodes from the Retainment View but I can filter them only by name.

BUG=none
TEST=HeapSnapshotRetainedObjectInfo

Review URL: https://chromiumcodereview.appspot.com/9323064

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 05:21:00 +00:00
fschneider@chromium.org
08bed81f83 Grow lists by a factor of 2 instead of 1.5 on a resize.
For zone lists this avoids resizing and reduces overall allocation
in most cases (especially for small lists).
Review URL: https://chromiumcodereview.appspot.com/9323078

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 16:23:40 +00:00
jkummerow@chromium.org
c142bc4c1c Bash completion for d8 flags
Review URL: https://chromiumcodereview.appspot.com/9307122

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 15:06:24 +00:00
svenpanne@chromium.org
49bcf5c396 Consolidated property counting methods a bit.
Review URL: https://chromiumcodereview.appspot.com/9317119

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 13:54:46 +00:00
svenpanne@chromium.org
ba6825012c Removed PropertyDetails::IsProperty.
This is just an intermediate step to remove IsRealProperty.

Review URL: https://chromiumcodereview.appspot.com/9325060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 12:11:40 +00:00
fschneider@chromium.org
25c71e6f39 X64: Fix bug in minus-zero check after int32 multiplication.
In optimized x64 code, the check for minus zero after multiplication
used the wrong size bit-or instruction (64-bit instead of 32-bit).

TEST=mjsunit/numops-fuzz.js
Review URL: https://chromiumcodereview.appspot.com/9316127

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 10:08:57 +00:00
rossberg@chromium.org
d6a368dda0 Prepare push to trunk. Now working on version 3.9.3.
R=danno@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9317116

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 10:03:35 +00:00
yangguo@chromium.org
364e864ad2 Add timestamp to --trace-gc output.
BUG=v8:1932
TEST=

Review URL: https://chromiumcodereview.appspot.com/9307116

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-06 08:59:43 +00:00
yurys@chromium.org
a13ad53191 Heap profiler should report implicit references.
Implicit references reported to V8 with V8::AddImplicitReferences calls are now reported by heap profiler as 'native' references with type kInternal.

Original WebKit bug report: https://bugs.webkit.org/show_bug.cgi?id=77414
Review URL: https://chromiumcodereview.appspot.com/9316092

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 14:51:53 +00:00
vegorov@chromium.org
405b875fec Fix compilation failure introduced by r10601.
Cast intptr_t to int in PrintFs.

TBR=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9325028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 14:30:48 +00:00
vegorov@chromium.org
a7b0481b6d Tweak compaction candidate selection to avoid keeping page with low occupancy around.
Increase slots buffer chain length to 15 to make compaction more aggressive and usefull.

Pass gc and collector selection reasons to GCTracer to allow more meaningull --gc-trace.

Print fragmentation of spaces that we do not compact.

R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9323007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 14:16:40 +00:00
svenpanne@chromium.org
b34e202b20 Removed IsTransitionType predicate.
With the upcoming changes to CALLBACKS properties, a predicate on the transition
type alone doesn't make sense anymore: For CALLBACKS one has to look into the
property's value to decide, and there is even the possibility of having a an
accessor function *and* a transition in the same property.

I am not completely happy with some parts of this CL, because they contain
redundant code, but given the various representations we currently have for
property type/value pairs, I can see no easy way around that. Perhaps one can
improve this a bit in a different CL, the current diversity really, really hurts
productivity...

As a bonus, this CL includes a few minor things:

 * CaseClause::RecordTypeFeedback has been cleaned up and it handles the
   NULL_DESCRIPTOR case correctly now. Under some (very unlikely) circumstances,
   we previously missed some opportunities for monomorphic calls. In general, it
   is rather unfortunate that NULL_DESCRIPTOR "shines through", it is just a
   hack for the inability to remove a descriptor entry during GC, something
   callers shouldn't have to be aware of.

 * DescriptorArray::CopyInsert has been cleaned up a bit, preparing it for later
   CALLBACKS-related changes.

 * LookupResult::Print is now more informative for CONSTANT_TRANSITION.

Review URL: https://chromiumcodereview.appspot.com/9320066

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 13:37:13 +00:00
erik.corry@gmail.com
039223af9a ARM: More micro-optimization of megamorphic lookup.
Review URL: https://chromiumcodereview.appspot.com/9323004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 12:48:21 +00:00
fschneider@chromium.org
aa4b77d761 Fix presubmit errors.
TBR=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9309079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 12:43:33 +00:00
fschneider@chromium.org
0ec7773680 Allow bailing out of the register allocator when running out of virtual registers.
1. Instead of checking upfront and estimating a limit for the number, we
now are able to stop register allocation and bailout when we don't
have enough virtual registers.

2. GCed some out-dated flags from flag-definition.h

3. Simplified the interface from the Lithium builder to the
register allocator in lithium-*.cc: For uses and definitions, we
just record the virtual register number given by the Hydrogen value id.
For temporaries, we request a new virtual register from the allocator.
For fixed temps, we don't need to do anything.

4. Increased number of deoptimization entries to 16K. Eventually we
probably want to make this array grow dynamically.
Review URL: https://chromiumcodereview.appspot.com/9325019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 12:05:08 +00:00
jkummerow@chromium.org
f6b6cd4d2c Prepare push to trunk. Now working on version 3.9.2.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9307065

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 16:18:52 +00:00
erik.corry@gmail.com
ea42869a44 ARM microoptimizations to megamorphic stub probing.
Review URL: https://chromiumcodereview.appspot.com/9323002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 13:41:06 +00:00
loislo@chromium.org
0d8ec7cd43 Using local file src/sconsbuild/Debug/test_shell_tests.
Leak of 16 bytes in 1 objects allocated from:
	@ 8c06b85 v8::internal::NativeObjectsExplorer::FindOrAddGroupInfo

BUG=112315
TEST=heapcheck build

Review URL: https://chromiumcodereview.appspot.com/9307050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 13:26:52 +00:00
danno@chromium.org
ee9c65e46d Fix elements transition bug on x64 in generic KeyedStoreIC
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9307056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 13:17:46 +00:00
vegorov@chromium.org
6f20db9767 Extend --trace-gc to output amount of memory reserved for V8 heap.
This allows one to spot fragmentation issues just by looking at --trace-gc output.

R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9316060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 11:47:23 +00:00
danno@chromium.org
f39ae6d5e0 Handle single element array growth + transition in generic KeyedStoreIC
BUG=none
TEST=3d-cube faster

Review URL: https://chromiumcodereview.appspot.com/9235007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 11:22:26 +00:00
ulan@chromium.org
8093e397e4 Do not ignore an empty context with extension when creating a scope object.
Runtime_DebugEvaluate creates an empty context which is not correctly handled in FullCodeGenerator::ContextSlotOperandCheckExtensions because the corresponding scope indicates that it has no context.

BUG=crbug.com/107996
TEST=test/mjsunit/regress/regress-crbug-107996.js

Review URL: https://chromiumcodereview.appspot.com/9310027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 09:35:12 +00:00
ulan@chromium.org
0cae1aa7a3 Fix compile error on linux shared.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9307038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 17:28:04 +00:00
ulan@chromium.org
56024c1511 Allow d8 to run a script multiple times, each time with a new context.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9310001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 16:47:06 +00:00
yurys@chromium.org
882ede3053 Add a getter for value set with AllowCodeGenerationFromStrings
Review URL: https://chromiumcodereview.appspot.com/9223016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 12:58:34 +00:00
danno@chromium.org
f3f28b290d Prepare push to trunk. Now working on version 3.9.1.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9315027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 10:43:19 +00:00
danno@chromium.org
5a294e5342 MIPS: Fix for assertion failure on kraken on ARM (Issue 1923).
Port r10570 (aa5a8c8e)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9318005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 10:28:00 +00:00
svenpanne@chromium.org
82d1f51534 Give uses within a loop a greater weight when doing representation inference.
Uses of a value are weighted by a factor of FLAG_loop_weight (default: 10) for
every loop they are in. This makes uses in inner loops "more important", which
should improve the result of the representation inference.

Review URL: https://chromiumcodereview.appspot.com/8277031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 08:49:18 +00:00
fschneider@chromium.org
b2ead52688 Save zone memory in LEnvironment by using a bit vector.
We don't need to store the full representation for each value. Instead
a bit to indicate tagged/untagged is enough.
Review URL: http://codereview.chromium.org/9104042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 17:19:19 +00:00
fschneider@chromium.org
86a0e828dc Remove a little more dead code from lithium-* files.
Review URL: http://codereview.chromium.org/9301040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 15:00:13 +00:00
danno@chromium.org
dab8048597 Fix for assertion failure on kraken on ARM (Issue 1923).
BUG=http://code.google.com/p/v8/issues/detail?id=1923
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9264039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 13:55:46 +00:00
erik.corry@gmail.com
3cfac4da0a Revert memory saving change due to failures on multithreaded tests
on Windows.
Review URL: https://chromiumcodereview.appspot.com/9104039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 13:33:44 +00:00
yangguo@chromium.org
6ab232b1f7 MIPS: Some assembler-level optimizations on ARM.
Port r10541 (0aab14ba).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9296046
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:45:27 +00:00
danno@chromium.org
ab5d47ef21 MIPS: Improve register allocation for Lithium representation changes on ARM
Port r10538 (21c5dc1).

MIPS-specific changes:
-moved MacroAssembler::SmiTagCheckOverflow definition to macro-assembler-mips.cc from the header
-added optimized 3-argument version of said function
-removed the related, completely unused TrySmiTag function

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9296045
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:33:46 +00:00
erik.corry@gmail.com
8bd56abed0 More compile breakage.
Review URL: https://chromiumcodereview.appspot.com/9303030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:15:21 +00:00
yangguo@chromium.org
c1f95cca94 Add GC handling for new field in DeoptimizedFrameInfo.
Review URL: https://chromiumcodereview.appspot.com/9301030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:08:33 +00:00
erik.corry@gmail.com
664669cf17 Fix compile error on Mac.
Review URL: https://chromiumcodereview.appspot.com/9293032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:06:00 +00:00
erik.corry@gmail.com
f5feac9e98 Reduce memory use immediately after boot.
This is a recommit of https://chromiumcodereview.appspot.com/9289047
with changes noted in comments in the codereview tool.
Review URL: https://chromiumcodereview.appspot.com/9233050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 11:22:35 +00:00
danno@chromium.org
14a3c4e6b3 MIPS: Add signal context definitions for use with Android. (2nd try)
As with Arm, the kernel defines this stuff, but bionic lib does not.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9298016
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 08:41:16 +00:00
fschneider@chromium.org
1604871e80 Get rid of a useless helper method in the register allocator.
Reading the virtual register from a LOperand is only needed used for
unallocated LOperands (LUnallocated). There is no need for having a
method for that on LOperand.
Review URL: http://codereview.chromium.org/9293003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 15:40:50 +00:00
mstarzinger@chromium.org
ef45c3bfc9 Fix dictionary size for type feedback oracle.
R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9293005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 15:24:35 +00:00
svenpanne@chromium.org
d466fbd312 Handle CALLBACKS with map transitions when doing GC in the map tree.
This is yet anoter part of a long chain of CLs to achieve map sharing
when JavaScript accessors are used.

Review URL: https://chromiumcodereview.appspot.com/9225056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 14:23:35 +00:00
yangguo@chromium.org
f7c09d99b7 Find correct source position in inlined functions on debug break.
BUG=110010
TEST=test-debug/DebugBreakInline

Review URL: https://chromiumcodereview.appspot.com/9295014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 13:07:01 +00:00
svenpanne@chromium.org
375be4ae25 Inline an inline function into the CHECK macro
CheckHelper was only used within the macro itself. Furthermore, GCC
with -Winline was not always happy with the inline function. Simple
solution: Inline the inline function into the macro itself. Inlining
squared!

Review URL: https://chromiumcodereview.appspot.com/9295048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 13:02:48 +00:00
yangguo@chromium.org
f8115b345d Removing some dead flags.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9121075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 12:25:29 +00:00
fschneider@chromium.org
c26695e75b Remove a dead method from lithium-* files.
Review URL: http://codereview.chromium.org/9297059

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 12:16:31 +00:00
mstarzinger@chromium.org
f97cd1a0ef MIPS: Fix and adapt debugger for new call target caches.
Port of r10540.

R=yangguo@chromium.org
TEST=mjsunit/debug-stepout-scope

Review URL: https://chromiumcodereview.appspot.com/9225055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 11:10:14 +00:00
mstarzinger@chromium.org
9ece818b56 MIPS: Implement target cache for constructor calls.
Port r10531 (d61db240).

Original commit message:

This caches call targets of constructor calls by associating one element
caches with call sites. The type feedback oracle can use the recorded
valued to gather type information for monomorphic constructor call sites.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9298014
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 10:58:22 +00:00
yangguo@chromium.org
95c37ecbc9 Fix presubmit.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9297058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 10:49:25 +00:00
erik.corry@gmail.com
a9428d2bcc Revert 10542 (boot time memory reduction) due to map alignment
issues on 64 bit.
Review URL: https://chromiumcodereview.appspot.com/9295047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 10:20:13 +00:00
yangguo@chromium.org
97a0e497ca Include what you use for the files zone*
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9297052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 10:13:21 +00:00
erik.corry@gmail.com
419ea5fcc3 Reduce boot-up memory use of V8.
This is a recommit of http://codereview.chromium.org/9179012
after fixing what turned out to be unrelated out-of-memory
errors.
That was a rebase of http://codereview.chromium.org/9017009/
Review URL: https://chromiumcodereview.appspot.com/9289047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 09:15:34 +00:00
yangguo@chromium.org
f2eda210d0 Some assembler-level optimizations on ARM.
Review URL: https://chromiumcodereview.appspot.com/9223011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 16:54:22 +00:00
mstarzinger@chromium.org
74feaa6c3d Fix and adapt debugger for new call target caches.
R=yangguo@chromium.org
TEST=mjsunit/debug-stepout-scope

Review URL: https://chromiumcodereview.appspot.com/9297019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 16:09:20 +00:00
kmillikin@chromium.org
87ccb1d740 Break a circular include dependency.
1. heap-inl.h has a function Heap::_inline_get_heap_ that calls
Isolate::Current() defined in isolate.h, so heap-inl.h requires
isolate.h.

2. Isolate has an embedded Heap member, so isolate.h requires heap.h.

3. heap.h has inline functions functions defined that call
Heap::_inline_get_heap_, so heap.h requires heap-inl.h (!).

The upshot is that all three need to be included wherever one is.  A
simpler way is to break the cycle by moving the inlined functions in
heap.h to heap-inl.h.

R=vegorov@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9121033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 15:53:24 +00:00
danno@chromium.org
900a0012ce Improve register allocation for Lithium representation changes on ARM
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9207006
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 14:55:20 +00:00
danno@chromium.org
1c254fb59c MIPS: Store transitioned JSArray maps in global context
Port r10523 (79463).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9298011
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 14:40:42 +00:00
mstarzinger@chromium.org
7bc6526e64 Fix build for ARM in release mode after r10531.
TBR=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9225022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:20:01 +00:00
loislo@chromium.org
e3f2cc292e Another fix for Linux64 compilation.
BUG=none
TEST=none
TBR=mnaganov

Review URL: https://chromiumcodereview.appspot.com/9297015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:09:15 +00:00
rossberg@chromium.org
b05d7619c8 Do not turn on typeof null reform with --harmony switch.
R=yangguo@chromium.org
BUG=v8:1913
TEST=

Review URL: https://chromiumcodereview.appspot.com/9232047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:07:39 +00:00
mstarzinger@chromium.org
8c12b6b743 Implement target cache for constructor calls.
This caches call targets of constructor calls by associating one element
caches with call sites. The type feedback oracle can use the recorded
valued to gather type information for monomorphic constructor call sites.

R=kmillikin@chromium.org,vegorov@chromium.org

Review URL: https://chromiumcodereview.appspot.com/8932004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:03:19 +00:00
loislo@chromium.org
449d7e7def Build fix for Linux64 after r10529.
BUG=none
TEST=none
TBR=mnaganov

Review URL: https://chromiumcodereview.appspot.com/9225021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:01:16 +00:00
loislo@chromium.org
b60805627f Build fix for Win64 bot after r10528.
BUG=none
TEST=none
TBR=mnaganov

Review URL: https://chromiumcodereview.appspot.com/9297014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 12:36:13 +00:00
loislo@chromium.org
07d720ec41 Detailed heap snapshot usability improvement.
The detailed heap snapshot has two groups of nodes. The first one
is the group for v8 heap nodes and the second one is the group for
native objects. At the moment we have two different sets of native
objects. There are 'Detached DOM trees' and 'Document DOM trees' type of objects.

I think it'd be nice to replace one group containing all native objects with
separate groups for different types of native objects.

BUG=none
TEST=HeapSnapshotRetainedObjectInfo

Review URL: https://chromiumcodereview.appspot.com/9223009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 12:02:57 +00:00
danno@chromium.org
a890d245b4 Rollback 10525: MIPS: Add signal context definitions for use with Android.
TBR=ulan@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9232046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 11:43:40 +00:00
svenpanne@chromium.org
a538072a08 By popular demand: Slightly more honest typing in ClearNonLiveMapTransitions
Review URL: https://chromiumcodereview.appspot.com/9290049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 09:34:05 +00:00
danno@chromium.org
14d23b710b MIPS: Add signal context definitions for use with Android.
As with Arm, the kernel defines this stuff, but bionic lib does not.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9298003
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 08:59:42 +00:00
danno@chromium.org
39cab48faf Add undefined check for default Array map in ArrayCodeGenericCommon
TBR=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9290064

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 22:33:54 +00:00
danno@chromium.org
57525ef893 Store transitioned JSArray maps in global context
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9073007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 21:47:57 +00:00
danno@chromium.org
18f28fb2c0 MIPS: Added Android-specific version of cacheflush call.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9234059
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 16:54:44 +00:00
yangguo@chromium.org
ea041a187c Use cmp instead of tst to check for zero.
Review URL: https://chromiumcodereview.appspot.com/9169088

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 16:05:28 +00:00
fschneider@chromium.org
0d4fc913d0 MIPS: Reverted the number of deopt entries to 4096.
On MIPS we cannot double the number of deoptimization entries easily
because the generated code would contain long branches (>128K) and we use
BlockTrampolinePoolScope in the Deoptimizer::TableEntryGenerator::GeneratePrologue method.
Also, we cannot use the Jr instruction here because the Deoptimizer::CreateCode method asserts
that the generated code does not contain reloc information.

BUG=
TEST=
Patch from Daniel Kalmar.
Review URL: http://codereview.chromium.org/9169079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 15:53:21 +00:00
erik.corry@gmail.com
448b6bbc41 Flush number string cache on GC (bug 1605). Also start with a small
number string cache and only grow it if needed, which will be useful
for saving boot time memory use.
This is a second try for  https://chromiumcodereview.appspot.com/923502
after fixing an unrelated stack overflow issue.
Review URL: https://chromiumcodereview.appspot.com/9169080

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 11:32:01 +00:00
vegorov@chromium.org
c712ecfdb0 MIPS: Support inlining at call-sites with mismatched number of arguments.
Port r10483 (8785a3ef)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9271068
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 11:26:45 +00:00
erik.corry@gmail.com
d6f476dd41 Fix intermittent stack overflow in Hydrogen code generation in tests.
Review URL: https://chromiumcodereview.appspot.com/9290044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 11:14:19 +00:00
yangguo@chromium.org
8e7c28c5b2 Prepare push to trunk. Now working on version 3.9.0.
R=svenpanne@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9169076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-26 07:35:56 +00:00
kmillikin@chromium.org
cb876c25a4 Include what you use for allocation, api, assembler, and ast.
R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9288011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 16:31:25 +00:00
erik.corry@gmail.com
248adeb110 Revert 10502 (smaller number string cache) due to test failures.
Review URL: https://chromiumcodereview.appspot.com/9113060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 15:17:26 +00:00
vegorov@chromium.org
67d72eab45 When preparing heap for breakpoints make sure not to flush away non-optimized code for inlined functions.
Debug::PrepareForBreakPoints was not fully populating active_functions list.

R=erik.corry@gmail.com
TEST=test/mjsunit/regress/regress-debug-code-recompilation.js

Review URL: https://chromiumcodereview.appspot.com/9290013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 15:11:59 +00:00
erik.corry@gmail.com
a49c8a19ee Flush number string cache on GC (bug 1605). Also start with a small
number string cache and only grow it if needed, which will be useful
for saving boot time memory use.
Review URL: https://chromiumcodereview.appspot.com/9235029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 14:27:58 +00:00
svenpanne@chromium.org
7719981078 Refactoring only: Extracted 2 methods from ClearNonLiveTransitions
This simple refactoring makes it very clear that clearing non-live transitions
actually consists of 2 quite separate things. Things would even be nicer if the
prototype transitions were represented by a separate data structure instead of
reusing FixedArray in an interesting way once again.

As an additional bonus, this CL makes it possible to read each of the methods in
question on a 30" screen without scrolling!

Review URL: https://chromiumcodereview.appspot.com/9169045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 14:22:59 +00:00
mstarzinger@chromium.org
4b913965a9 Fix responsiveness of high promotion mode heuristics.
This changes the heuristics for the high promotion mode to be checked
on all GCs (including scavenges), so that changes in the applications
behavior are recognized earlier. It also fixes miscalculations in the
survival counter and rate which caused heuristics to fail completely.

R=vegorov@chromium.org
BUG=v8:1899

Review URL: https://chromiumcodereview.appspot.com/9196003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 13:46:42 +00:00
yurys@chromium.org
09ff5c4c44 Provide access to function inferred name in v8 public API
Review URL: https://chromiumcodereview.appspot.com/9146039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 12:45:54 +00:00
danno@chromium.org
557e2cd90e Fix disasm assertions for undefined instructions.
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9228006
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 12:43:32 +00:00
danno@chromium.org
adc196d86e Silence warning from presubmit lint script
R=yangguo@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9234025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 12:32:05 +00:00
svenpanne@chromium.org
6859247172 Do not follow accessor map transitions when marking descriptor arrays.
Note that we currently have no such transitions, but we will in the future, and
we have to avoid keeping maps live too long.

Review URL: https://chromiumcodereview.appspot.com/9212045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 08:50:55 +00:00
svenpanne@chromium.org
891f0efa3f Handle map transitions in CALLBACKS when doing map tree traversal.
We will have such transitions in the future and this CL is necessary to keep
slack tracking working then.

Review URL: https://chromiumcodereview.appspot.com/9285008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 07:26:07 +00:00
kmillikin@chromium.org
12f982cf6a Include what you use in accessors.{h,cc}.
R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9113041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-25 00:16:07 +00:00
jkummerow@chromium.org
6c85119c6a Fix building with clang
BUG=v8:1912

Review URL: https://chromiumcodereview.appspot.com/9285013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 16:36:55 +00:00
erik.corry@gmail.com
be288cf2b4 Initially unmap one of the semispaces to reduce memory use at boot time.
Review URL: https://chromiumcodereview.appspot.com/9117035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 16:00:19 +00:00
erik.corry@gmail.com
ee1d0fc5c6 Reduce the space used by the stack for the profiling thread.
Review URL: https://chromiumcodereview.appspot.com/9117032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 15:48:16 +00:00
yangguo@chromium.org
22f97d99be Fix shared library build.
Review URL: https://chromiumcodereview.appspot.com/9117028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 12:10:28 +00:00
yangguo@chromium.org
4aa558f22d Introduce readbinary function in d8 to read binary files.
Review URL: https://chromiumcodereview.appspot.com/9283015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 11:55:11 +00:00
vegorov@chromium.org
d16c6a9874 Fix Win64 compilation failure introduced by r10483.
R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/9284017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 09:05:15 +00:00
vegorov@chromium.org
04289e8d17 Support inlining at call-sites with mismatched number of arguments.
Review URL: https://chromiumcodereview.appspot.com/9265004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 08:43:12 +00:00
fschneider@chromium.org
0b3ce1dd9e Remove unnecessary IGNORE policy from Lithium operands.
1. This policy was only used for unused spill operands. I'm assigning
an INVALID LOperand to those instead. As a result, we only need
3 bits to encode the policy and have one more available for virtual
registers.

2. Furthermore, corrected the calculation of the maximal number of virtual
registers and changed the upper limit for the size of the Hydrogen IR
accordingly.

3. Doubled the maximal number of deoptimization entries to 8K.
Review URL: http://codereview.chromium.org/9160018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 02:13:28 +00:00
fschneider@chromium.org
c6e1d11885 Put a slow assert under the enable_slow_asserts flag.
Otherwise really large functions take too long to compile
in debug mode.
Review URL: http://codereview.chromium.org/9212040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-24 01:46:26 +00:00
fschneider@chromium.org
2284996cc1 Add range information to external array loads.
Review URL: http://codereview.chromium.org/9226014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-23 18:11:36 +00:00
erik.corry@gmail.com
83b439a0f9 Further robustify the keyed lookup cache against unlucky hash
seeds.  This change is performance neutral on most snapshot
VM builds, but provides a big improvement on string-fasta
on around 5% of builds.
Review URL: https://chromiumcodereview.appspot.com/9193015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-23 16:18:10 +00:00