Commit Graph

8283 Commits

Author SHA1 Message Date
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
vegorov@chromium.org
a297d3f9af Optionally export metadata with libv8 to enable debuggers to inspect V8 state.
Review URL: https://chromiumcodereview.appspot.com/8803024
Patch from David Pacheco <dap@joyent.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 20:18:19 +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
danno@chromium.org
4f56fb5a87 merge-to-branch.sh should correctly handle added/deleted files
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-02 13:51:05 +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
jkummerow@chromium.org
e952765ea0 Adding new marker for targets that rely on static library dependencies
traversing none type targets. In preparation for a gyp change to the default
behavior.

BUG=None
TEST=None
R=ager@chromium.org

Review URL: https://chromiumcodereview.appspot.com/7616013
Patch from Brad Nelson <bradnelson@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-01 15:31:57 +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
mstarzinger@chromium.org
5dc4859fa4 Fix test case to correctly check expected result.
R=vegorov@chromium.org
TEST=mjsunit/regress/regress-1229

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 12:31:24 +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
a59b2a96fa Add a script to automatically merge patches to a branch
Review URL: https://chromiumcodereview.appspot.com/9298012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-31 11:17:17 +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
96b590d95e Fix for an obscure ARM GCC bug
Removing 2 "static" modifiers which didn't really serve a purpose did
the trick...

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-30 14:57:36 +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