platform/upstream/v8.git
11 years agoConsistently use HStringAdd instead of HCallStub with CodeStub::StringAdd.
bmeurer@chromium.org [Fri, 19 Jul 2013 09:42:15 +0000 (09:42 +0000)]
Consistently use HStringAdd instead of HCallStub with CodeStub::StringAdd.

Previously there were two ways to actually use the StringAddStub
from Hydrogen:

- Either using HStringAdd (which implied NO_STRING_CHECK_IN_STUB
  and and does the argument handling internally),
- or using HCallStub with CodeStub::StringAdd (which implied
  NO_STRING_ADD_FLAGS and expected the arguments to be on the
  stack already).

R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMove FindCodeObject from Heap to Isolate.
svenpanne@chromium.org [Fri, 19 Jul 2013 09:39:01 +0000 (09:39 +0000)]
Move FindCodeObject from Heap to Isolate.

This removes the isolate=>heap=>isolate nonsense and has the additional bonus
that it re-enables printing of code objects in GDB. NOT: To make the latter
work, one has to adapt GDB any macros using FindCodeObject! Keeping things as it
is and outlining Isolate::heap() was not really an option...

Side note: Currently we are lucky that we still have Isolate::Current()
available in GDB, although it is marked as INLINE. :-}

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDeprecate some debugger methods
yurys@chromium.org [Fri, 19 Jul 2013 09:38:18 +0000 (09:38 +0000)]
Deprecate some debugger methods

These methods have been superceeded by equivalents accepting object arguments exposing more details.

This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes. Now that Blink is rolled to 154493 it should be safe to land this (required Blink change is 154386).

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse kPointerSize to compute the call instruction offset in the PatchedReturnSequence...
haitao.feng@intel.com [Fri, 19 Jul 2013 08:49:47 +0000 (08:49 +0000)]
Use kPointerSize to compute the call instruction offset in the PatchedReturnSequence for X64

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix wrong bailout id in polymorphic stores.
verwaest@chromium.org [Fri, 19 Jul 2013 08:45:47 +0000 (08:45 +0000)]
Fix wrong bailout id in polymorphic stores.

BUG=chromium:259787
R=titzer@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix %NeverOptimizeFunction runtime call.
mstarzinger@chromium.org [Fri, 19 Jul 2013 08:25:44 +0000 (08:25 +0000)]
Fix %NeverOptimizeFunction runtime call.

The current usage of this runtime function is broken as it does not
prevent inlining of the affected function but rather bails out from the
whole unit of compilation after trying to inline affected functions.
This simplifies said runtime function to avoid accidental misuse.

R=titzer@chromium.org
TEST=mjsunit/never-optimize

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agox64 support for d-to-i (truncated)
danno@chromium.org [Fri, 19 Jul 2013 08:21:41 +0000 (08:21 +0000)]
x64 support for d-to-i (truncated)

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoLogger: remove dependency between Logger and LogMessageBuilder.
loislo@chromium.org [Thu, 18 Jul 2013 17:19:31 +0000 (17:19 +0000)]
Logger: remove dependency between Logger and LogMessageBuilder.

LogMessageBuilder is a helper class for Log.
So I made it a nested class and removed the dependency from Logger.

BUG=none
TEST=no changes in the logic
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDo not inline printing functions typically used via GDB.
svenpanne@chromium.org [Thu, 18 Jul 2013 14:40:59 +0000 (14:40 +0000)]
Do not inline printing functions typically used via GDB.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoOne more Windows compilation fix after r15750
yurys@chromium.org [Thu, 18 Jul 2013 14:32:06 +0000 (14:32 +0000)]
One more Windows compilation fix after r15750

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix Windows compilation after r15750
yurys@chromium.org [Thu, 18 Jul 2013 14:28:00 +0000 (14:28 +0000)]
Fix Windows compilation after r15750

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd named links to dependent_code in Map objects in heap snapshot.
alph@chromium.org [Thu, 18 Jul 2013 14:14:56 +0000 (14:14 +0000)]
Add named links to dependent_code in Map objects in heap snapshot.

R=loislo@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHandlify Accessors::FunctionGetArguments method.
mstarzinger@chromium.org [Thu, 18 Jul 2013 14:00:53 +0000 (14:00 +0000)]
Handlify Accessors::FunctionGetArguments method.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix data race in SamplingCircularQueue
yurys@chromium.org [Thu, 18 Jul 2013 13:42:04 +0000 (13:42 +0000)]
Fix data race in SamplingCircularQueue

This change fixes data race described in the bug by adding Acquire_Load to SamplingCircularQueue::StartDequeue and Acquire_Store to SamplingCircularQueue::Enqueue.

Also the queue implementation imposed a constraint on the records it stored: the first AtomicWord in each record was a marker. For that purpose TickSampleEventRecord had filter field of type int. This approach is error prone, e.g. on x64 sizeof(AtomicWord) is 8 while sizeof(int) is 4. Moreover the queue needs such marker only at the beginning of chunk. I changed the queue so that it stores the marker explicitly as the first Cell in chunk and removed the filter field.

BUG=251218
R=loislo@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoExtract JitLogger from Logger class.
loislo@chromium.org [Thu, 18 Jul 2013 13:18:46 +0000 (13:18 +0000)]
Extract JitLogger from Logger class.

Second patch from the set.

BUG=260203
TEST=logic wasn't changed
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix --track_gc_object_stats option.
danno@chromium.org [Thu, 18 Jul 2013 13:00:40 +0000 (13:00 +0000)]
Fix --track_gc_object_stats option.

 - Update ObjectStatsVisitTracker::Visit function to check if CodeCache is of
   CodeCache type, and extract the FixedArray from the struct if so
 - Fix typo in v8-counters.h where count_of_FIXED_ARRAY_XXX fields weren't being
   initialized.

BUG=v8:2780
R=danno@chromium.org, hpayer@chromium.org

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

Patch from Ross McIlroy <mcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix GC issue in Runtime_DebugEvaluate.
yangguo@chromium.org [Thu, 18 Jul 2013 12:25:22 +0000 (12:25 +0000)]
Fix GC issue in Runtime_DebugEvaluate.

R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUpdate blink test expectations.
machenbach@chromium.org [Thu, 18 Jul 2013 12:22:23 +0000 (12:22 +0000)]
Update blink test expectations.

The original expectations from blink contain crash expectations for these three tests. We overwrote those by adding timeout.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDisable some tests for nacl runs.
machenbach@chromium.org [Thu, 18 Jul 2013 12:21:46 +0000 (12:21 +0000)]
Disable some tests for nacl runs.

These tests fail with the nacl/v8 builders.

Patch from bradchen@chromium.org.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix NaCl regression caused by pepper revision 28.
machenbach@chromium.org [Thu, 18 Jul 2013 12:18:35 +0000 (12:18 +0000)]
Fix NaCl regression caused by pepper revision 28.

Patch from bradchen@chromium.org.

Prevents use of PROT_EXEC for NaCl builds

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHydrogen array accesses: switch from elements_kind to map based polymorphism
jkummerow@chromium.org [Thu, 18 Jul 2013 09:46:56 +0000 (09:46 +0000)]
Hydrogen array accesses: switch from elements_kind to map based polymorphism

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse C++11 deleted functions feature if available.
bmeurer@chromium.org [Thu, 18 Jul 2013 09:25:54 +0000 (09:25 +0000)]
Use C++11 deleted functions feature if available.

Implement DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS
using C++11 deleted functions if possible.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFixed type feedback in presence of negative lookups.
svenpanne@chromium.org [Thu, 18 Jul 2013 09:12:44 +0000 (09:12 +0000)]
Fixed type feedback in presence of negative lookups.

To fix the issue at hand regarding constant function calls and perhaps
other hidden issues regarding negative lookups, we basically add a
"marker instruction", just for harvesting purposes. Our type feedback
oracle is really, really fragile, we should better switch to some more
explicit and robust scheme soon.

BUG=chromium:252797
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDouble align fast literals of fast double elements kind.
hpayer@chromium.org [Thu, 18 Jul 2013 08:42:03 +0000 (08:42 +0000)]
Double align fast literals of fast double elements kind.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake deoptimization stress count global.
machenbach@chromium.org [Thu, 18 Jul 2013 08:12:01 +0000 (08:12 +0000)]
Make deoptimization stress count global.

Store the deopt stress counter per isolate instead of per shared function info. The old field is removed.

Enable output of the counter value with a new flag.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHandlify JSFunction::SetPrototype method.
mstarzinger@chromium.org [Thu, 18 Jul 2013 07:59:48 +0000 (07:59 +0000)]
Handlify JSFunction::SetPrototype method.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoJust check for C++ version.
bmeurer@chromium.org [Thu, 18 Jul 2013 07:50:33 +0000 (07:50 +0000)]
Just check for C++ version.

This fixes build breakage introduced with r15736.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse C++11 static_assert() if available.
bmeurer@chromium.org [Thu, 18 Jul 2013 07:43:41 +0000 (07:43 +0000)]
Use C++11 static_assert() if available.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Deprecate some debugger methods"
yurys@chromium.org [Thu, 18 Jul 2013 07:34:19 +0000 (07:34 +0000)]
Revert "Deprecate some debugger methods"

This reverts commit 69957c36edaebe0b9b614099eb1b067fb0208671. Blink roll this patch depends on was reverted for some reason.

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDeprecate some debugger methods
yurys@chromium.org [Thu, 18 Jul 2013 06:51:03 +0000 (06:51 +0000)]
Deprecate some debugger methods

These methods have been superceeded by equivalents accepting object arguments exposing more details.

This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes.

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Improve code aging sequence.
palfia@homejinni.com [Wed, 17 Jul 2013 23:57:32 +0000 (23:57 +0000)]
MIPS: Improve code aging sequence.

Port r15697 (61d56196)

Original commit message:
The code aging sequence contains a load which is unecessary for optimised
function. This has been replaced by a nop.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: The gc should be able to traverse all AllocationSites for decision making.
palfia@homejinni.com [Wed, 17 Jul 2013 18:39:34 +0000 (18:39 +0000)]
MIPS: The gc should be able to traverse all AllocationSites for decision making.

Port r15715 (2e830d4)

Original commit message:
The gc should be able to traverse all AllocationSites for decision making. The sites are threaded into a weak list. Special problems include:

* Allocations of AllocationSites occur in generated code, so generated code needs to be able to add to the list. For now I have a special hydrogen instruction, though it would be nice to use general purpose instructions.
* The snapshot contains AllocationSites, and these need to be re-threaded into the list on deserialization.

Something nice is that the AllocationSites are only created in old space, so a special new space visitor isn't required.

BUG=

Review URL: https://codereview.chromium.org/19635002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDo not report unessential weak references in heap snapshot.
alph@chromium.org [Wed, 17 Jul 2013 18:23:16 +0000 (18:23 +0000)]
Do not report unessential weak references in heap snapshot.

R=verwaest@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHandlify JSReceiver/JSObject::DeleteProperty method.
mstarzinger@chromium.org [Wed, 17 Jul 2013 16:38:49 +0000 (16:38 +0000)]
Handlify JSReceiver/JSObject::DeleteProperty method.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd support for empty hydrogen filter that matches only the top-level JSFunction.
titzer@chromium.org [Wed, 17 Jul 2013 16:21:03 +0000 (16:21 +0000)]
Add support for empty hydrogen filter that matches only the top-level JSFunction.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoBetter fix for LiteralCompareTypeof
jkummerow@chromium.org [Wed, 17 Jul 2013 15:58:59 +0000 (15:58 +0000)]
Better fix for LiteralCompareTypeof

This reverts r15725 and replaces it with the following one-liner
in hydrogen.cc's HandleLiteralCompareTypeof:

-  CHECK_ALIVE(VisitForValue(sub_expr));
+  CHECK_ALIVE(VisitForTypeOf(sub_expr));

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDo not materialize context-allocated values for debug-evaluate.
yangguo@chromium.org [Wed, 17 Jul 2013 15:29:00 +0000 (15:29 +0000)]
Do not materialize context-allocated values for debug-evaluate.

BUG=259300
R=ulan@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix gc stress builder.
hpayer@chromium.org [Wed, 17 Jul 2013 15:21:22 +0000 (15:21 +0000)]
Fix gc stress builder.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix LiteralCompareTypeof breakage introduced in r15723
jkummerow@chromium.org [Wed, 17 Jul 2013 14:58:00 +0000 (14:58 +0000)]
Fix LiteralCompareTypeof breakage introduced in r15723

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoThere is no undefined Literal.
olivf@chromium.org [Wed, 17 Jul 2013 14:10:38 +0000 (14:10 +0000)]
There is no undefined Literal.

BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSynchronize Compare-Literal behavior in FullCodegen and Hydrogen
jkummerow@chromium.org [Wed, 17 Jul 2013 13:13:38 +0000 (13:13 +0000)]
Synchronize Compare-Literal behavior in FullCodegen and Hydrogen

BUG=chromium:260345
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoProvide named links to code objects in heap snapshot.
alph@chromium.org [Wed, 17 Jul 2013 13:12:48 +0000 (13:12 +0000)]
Provide named links to code objects in heap snapshot.

R=loislo@chromium.org, verwaest@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnable compiled transitions by default.
bmeurer@chromium.org [Wed, 17 Jul 2013 12:19:40 +0000 (12:19 +0000)]
Enable compiled transitions by default.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove V8_DISABLE_DEPRECATIONS=1 from test-cpu-profiler.cc
yurys@chromium.org [Wed, 17 Jul 2013 12:16:16 +0000 (12:16 +0000)]
Remove V8_DISABLE_DEPRECATIONS=1 from test-cpu-profiler.cc

BUG=None
R=loislo@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoThe gc should be able to traverse all AllocationSites for decision making. The sites...
mvstanton@chromium.org [Wed, 17 Jul 2013 11:50:24 +0000 (11:50 +0000)]
The gc should be able to traverse all AllocationSites for decision making. The sites are threaded into a weak list. Special problems include:

* Allocations of AllocationSites occur in generated code, so generated code needs to be able to add to the list. For now I have a special hydrogen instruction, though it would be nice to use general purpose instructions.
* The snapshot contains AllocationSites, and these need to be re-threaded into the list on deserialization.

Something nice is that the AllocationSites are only created in old space, so a special new space visitor isn't required.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSome tests involving AllocationSites are failing in GcStress test mode.
mvstanton@chromium.org [Wed, 17 Jul 2013 11:42:32 +0000 (11:42 +0000)]
Some tests involving AllocationSites are failing in GcStress test mode.
The reason is that an AllocationMemento associated with an array only
lives for one gc (it is unrooted). So an excess of garbage collections
in these tests cause the Memento to be lost, and expected behavior
can't be guaranteed.

BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".
bmeurer@chromium.org [Wed, 17 Jul 2013 11:37:20 +0000 (11:37 +0000)]
Reland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".

Fix the invalid array length check, replacing it with a check of
the elements pointer similar to TransitionElementsKindStub.
Refactor common code from ElementsTransitionAndStoreStub and TransitionElementsKindStub into BuildTransitionElementsKind() helper method.
Add test case for the MD5 computation that used to crash before,
and a small test case for the specific issue.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd BYTES_PER_ELEMENT property to constructors of typed arrays.
dslomov@chromium.org [Wed, 17 Jul 2013 11:16:07 +0000 (11:16 +0000)]
Add BYTES_PER_ELEMENT property to constructors of typed arrays.

ES6 does not prescribe it, but both Blink and Firefox have it.

Also does a small rename of parameter in test.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReport initial_map field of JSFunction in heap snapshot.
alph@chromium.org [Wed, 17 Jul 2013 10:16:40 +0000 (10:16 +0000)]
Report initial_map field of JSFunction in heap snapshot.

R=verwaest@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Deprecate some debugger methods"
yurys@chromium.org [Wed, 17 Jul 2013 10:03:49 +0000 (10:03 +0000)]
Revert "Deprecate some debugger methods"

This reverts commit r15708 to make WebKit bots happy while Blink change https://src.chromium.org/viewvc/blink?view=rev&revision=154386 is not rolled into Chromium.

BUG=None
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse private field chunk_
hpayer@chromium.org [Wed, 17 Jul 2013 09:57:56 +0000 (09:57 +0000)]
Use private field chunk_

R=hpayer@chromium.org

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

Patch from HaiTao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDeprecate some debugger methods
yurys@chromium.org [Wed, 17 Jul 2013 09:20:16 +0000 (09:20 +0000)]
Deprecate some debugger methods

These methods have been superceeded by equivalents accepting object arguments exposing more details.

BUG=None
R=loislo@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDo not call reinterpret_cast when converting from NULL.
ulan@chromium.org [Wed, 17 Jul 2013 08:46:44 +0000 (08:46 +0000)]
Do not call reinterpret_cast when converting from NULL.

If NULL is a nullptr (such as on my FreeBSD system), it is not possible to
use reinterpret_cast to convert it to another pointer. Plus, just using NULL
directly achieves the same effect.

R=ulan@chromium.org

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

Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCalls to HCheckFunction can be eliminated if the value is an HConstant.
mvstanton@chromium.org [Wed, 17 Jul 2013 08:46:01 +0000 (08:46 +0000)]
Calls to HCheckFunction can be eliminated if the value is an HConstant.

Reland "Calls to HCheckFunction can be eliminated if the value is an HConstant"
(https://codereview.chromium.org/18751003/).

The CL failed because of heap snapshot issues. alph@chromium.org just checked in
a fix for that (https://code.google.com/p/v8/source/detail?r=15694).

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMore aggressively inline optimized code.
hpayer@chromium.org [Wed, 17 Jul 2013 08:44:10 +0000 (08:44 +0000)]
More aggressively inline optimized code.

BUG=
R=danno@chromium.org, mstarzinger@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnable building for android on x86_64 machines.
ulan@chromium.org [Wed, 17 Jul 2013 08:37:48 +0000 (08:37 +0000)]
Enable building for android on x86_64 machines.

R=ulan@chromium.org
BUG=

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix invalid array length check in TransitionElementsKindStub.
bmeurer@chromium.org [Wed, 17 Jul 2013 08:32:28 +0000 (08:32 +0000)]
Fix invalid array length check in TransitionElementsKindStub.

The stub used to check the length of the JS array to see if
there's a need to duplicate the elements backing store. This
way it will not duplicate the elements array when going from
double to object even if the elements array is not the empty
fixed array. Later on it will then store pointers into a
FixedDoubleArray.

The native code stub used to check whether elements points to
the empty_fixed_array singleton instead of testing the length.
The Hydrogen stub does that as well now.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.20.7.
jkummerow@chromium.org [Wed, 17 Jul 2013 08:19:34 +0000 (08:19 +0000)]
Prepare push to trunk.  Now working on version 3.20.7.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoARM: Improve code aging sequence.
rodolph.perfetta@gmail.com [Wed, 17 Jul 2013 08:09:52 +0000 (08:09 +0000)]
ARM: Improve code aging sequence.

The code aging sequence contains a load which is unecessary for optimised
function. This has been replaced by a nop.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemoved unused HOptimizedGraphBuilder::BuildCallSetter method.
svenpanne@chromium.org [Wed, 17 Jul 2013 08:02:08 +0000 (08:02 +0000)]
Removed unused HOptimizedGraphBuilder::BuildCallSetter method.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix bug introduced by r15640.
palfia@homejinni.com [Tue, 16 Jul 2013 18:02:43 +0000 (18:02 +0000)]
MIPS: Fix bug introduced by r15640.

This bug causes segfault in the octane benchmark,
because the deoptimization entries do not fit in the
deopt table.
This change increases the table entry size.

TEST=octane benchmark

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd missing links from GlobalPropertyCell to dependent_code
alph@chromium.org [Tue, 16 Jul 2013 17:47:35 +0000 (17:47 +0000)]
Add missing links from GlobalPropertyCell to dependent_code

It produced orphan DependentCode nodes because links were not created explicitly in ExtractPropertyCellReferences and IndexedReferencesExtractor was disabled for ProperyCells.

R=danno@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTry to remove invalidated stubs before falling back to checking the constant state.
verwaest@chromium.org [Tue, 16 Jul 2013 14:01:46 +0000 (14:01 +0000)]
Try to remove invalidated stubs before falling back to checking the constant state.

BUG=chromium:260585
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake TransitionArray internal references originate from TA in heap snapshot.
alph@chromium.org [Tue, 16 Jul 2013 12:48:34 +0000 (12:48 +0000)]
Make TransitionArray internal references originate from TA in heap snapshot.

TransitionArray references were added to the TA's map object instead
of TA itself.

R=verwaest@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdded mark bit cell iterator.
hpayer@chromium.org [Tue, 16 Jul 2013 12:14:16 +0000 (12:14 +0000)]
Added mark bit cell iterator.

BUG=
R=mstarzinger@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoExtend expectations for slow test cases on the V8/blink trunk builder.
machenbach@chromium.org [Tue, 16 Jul 2013 11:21:48 +0000 (11:21 +0000)]
Extend expectations for slow test cases on the V8/blink trunk builder.

The second test has an existing expectation that is extended.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix cctest/test-cpu-profiler/FunctionApplySample fakiness on ARM simulator
yurys@chromium.org [Tue, 16 Jul 2013 09:34:09 +0000 (09:34 +0000)]
Fix cctest/test-cpu-profiler/FunctionApplySample fakiness on ARM simulator

For STM and LDM instuctions with writeback update base register only after all registers have been saved/loaded. This guarantees that invariant sp <= fp is always true when iterating stack in the Sampler.

BUG=v8:2782
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdded tracing information to the case when allocation folding cannot be performed.
hpayer@chromium.org [Tue, 16 Jul 2013 08:54:41 +0000 (08:54 +0000)]
Added tracing information to the case when allocation folding cannot be performed.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMinor cleanup of GVN state pushing.
mstarzinger@chromium.org [Tue, 16 Jul 2013 08:37:49 +0000 (08:37 +0000)]
Minor cleanup of GVN state pushing.

R=hpayer@chromium.org, hpayer@google.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoThrow if first argument to TypedArray.set is a number.
dslomov@chromium.org [Tue, 16 Jul 2013 08:11:30 +0000 (08:11 +0000)]
Throw if first argument to TypedArray.set is a number.

Further refinement to semantics that I have missed in previous change.
Both Blink and Firefox are permissive with arguments to .set method.
However, when first argument to "set" is a number, all implementations
throw, so that users know that
   a.set(0,27)
does not assign 27 to 0th element of a, not 0 to 27th element of a.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse BitVector instead of handcrafted SparseSet.
bmeurer@chromium.org [Tue, 16 Jul 2013 07:07:04 +0000 (07:07 +0000)]
Use BitVector instead of handcrafted SparseSet.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years ago[Object.observe] Lazily allocate callbackInfo structure
adamk@chromium.org [Mon, 15 Jul 2013 22:16:30 +0000 (22:16 +0000)]
[Object.observe] Lazily allocate callbackInfo structure

This patch allows callbacks to lazily allocate the InternalArray which is used to store pendingChangeRecords. This moves some of the expense of observation to the case where changes actually occurred.

When there are no pendingChangeRecords, the callbackInfo structure is a number which is the callbacks priority. Whenever a changeRecord is enqueued to the callback, it "normalizes" to be an InternalArray with a priority property. Immediately before its changeRecords are delivered, it returns to its optimized state.

---
Note: Naming confusion resolved:

This patch corrects some naming confusion in object-observe.js. Previously, we used the terms "callback" and "observer" to mean roughly the same thing, and overloaded the term "observer" to be both the callback itself and the *registration* on a object to observe (which now includes an accept map).

This patch resolves this confusion:

"object" (objectInfo, objectInfoMap): This refers to the observed object and its structures

"callback" (callbackInfo, callbackInfoMap): This refers to the callback to whom change records may be delivered

"observer" (objectInfo.changeObservers): This refers to a registration to observe a given object by a given callback with the specified accept list.
---

R=rossberg@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake deopt testing compatible with runtime optimization status queries.
machenbach@chromium.org [Mon, 15 Jul 2013 18:47:40 +0000 (18:47 +0000)]
Make deopt testing compatible with runtime optimization status queries.

When deopt testing is activated, a new status code will be returned by optimization status queries (status=maybe deopted).

This will make those tests work that test for 'not status=no', when performing deopt testing.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert r15649 and fix for loop dominator propagation in GVN.
hpayer@chromium.org [Mon, 15 Jul 2013 16:58:20 +0000 (16:58 +0000)]
Revert r15649 and fix for loop dominator propagation in GVN.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDisable compiled_transitions by default.
bmeurer@chromium.org [Mon, 15 Jul 2013 16:56:32 +0000 (16:56 +0000)]
Disable compiled_transitions by default.

This was accidently re-enabled with r15674.

TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake optimizations for debug configurable with compile flag.
machenbach@chromium.org [Mon, 15 Jul 2013 16:33:06 +0000 (16:33 +0000)]
Make optimizations for debug configurable with compile flag.

To turn on optimizations for debug when building standalone, a compiler flag can be used:

make optdebug=on

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix gyp_v8 to work with use_system_icu=1
jochen@chromium.org [Mon, 15 Jul 2013 15:41:21 +0000 (15:41 +0000)]
Fix gyp_v8 to work with use_system_icu=1

If you want to use the system icu library, you'll need to use gyp_v8 (as
opposed to the standalone Makefiles)

BUG=v8:2475
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub
danno@chromium.org [Mon, 15 Jul 2013 15:23:52 +0000 (15:23 +0000)]
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub

Causes breakage in crypto-(sha1|md5) SunSpider

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReland deprecation of HAllocateObject in favor of HAllocate.
mstarzinger@chromium.org [Mon, 15 Jul 2013 15:12:16 +0000 (15:12 +0000)]
Reland deprecation of HAllocateObject in favor of HAllocate.

This essentially relands r14930 and r14935 with adaptions to the current
code base. It models the instantiation of an implicit receiver for
CallNew nodes in hydrogen using HAllocate together with generic stores
instead of one specialized HAllocateObject instruction, hence creating a
single choking point for inlined allocation in optimized code.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix sloppy-mode 'const' under Harmony flag.
rossberg@chromium.org [Mon, 15 Jul 2013 14:12:20 +0000 (14:12 +0000)]
Fix sloppy-mode 'const' under Harmony flag.

R=yangguo@chromium.org
BUG=173361

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix --deopt-every-n-times flag
jkummerow@chromium.org [Mon, 15 Jul 2013 13:36:36 +0000 (13:36 +0000)]
Fix --deopt-every-n-times flag

(was broken since r15640)

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAndroid lacks support for cxxabi.h.
bmeurer@chromium.org [Mon, 15 Jul 2013 12:24:13 +0000 (12:24 +0000)]
Android lacks support for cxxabi.h.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse internal array as API function cache.
mstarzinger@chromium.org [Mon, 15 Jul 2013 11:41:41 +0000 (11:41 +0000)]
Use internal array as API function cache.

R=yangguo@chromium.org
BUG=chromium:260106
TEST=cctest/test-api/Regress260106

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCurrent logger code is messy. It mixes together
loislo@chromium.org [Mon, 15 Jul 2013 11:35:39 +0000 (11:35 +0000)]
Current logger code is messy. It mixes together
four or even five different logging destinations.
I think we can extract the code related to a destination
into a separate class, do the same for the all destinations
and have four classes with more or less simple common logging
API

BUG=none
Meta-bug= https://code.google.com/p/chromium/issues/detail?id=260203

R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix possible stack overflow in range analysis.
bmeurer@chromium.org [Mon, 15 Jul 2013 09:53:46 +0000 (09:53 +0000)]
Fix possible stack overflow in range analysis.

Avoid the implicit recursion for range analysis, using a loop with
an explicit stack instead.

BUG=chromium:259452
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTurn propagate deoptimizing mark into a proper HPhase.
bmeurer@chromium.org [Mon, 15 Jul 2013 09:53:00 +0000 (09:53 +0000)]
Turn propagate deoptimizing mark into a proper HPhase.

Also turn the recursion on the domination chain into a loop with
an explicit stack, to avoid possible stack overflow here.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse corerct conversions for DataView accessors.
dslomov@chromium.org [Mon, 15 Jul 2013 09:32:15 +0000 (09:32 +0000)]
Use corerct conversions for DataView accessors.

We now use DoubleTo(U)Int32 that follows ES specification.

R=titzer@chromium.org,rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.20.6.
danno@chromium.org [Mon, 15 Jul 2013 08:00:10 +0000 (08:00 +0000)]
Prepare push to trunk.  Now working on version 3.20.6.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoThis does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.
dslomov@chromium.org [Mon, 15 Jul 2013 07:43:46 +0000 (07:43 +0000)]
This does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCleanup leftover definitions in HGraph.
bmeurer@chromium.org [Mon, 15 Jul 2013 07:41:18 +0000 (07:41 +0000)]
Cleanup leftover definitions in HGraph.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDon't use StoreIC_ArrayLength on frozen arrays
danno@chromium.org [Sun, 14 Jul 2013 22:03:46 +0000 (22:03 +0000)]
Don't use StoreIC_ArrayLength on frozen arrays

The code previously assumed that an array with fast properties must have
a writable length property. But Object.freeze() now exposes a way to make
length read-only without moving the object into slow mode. This patch
simply adds a !is_frozen check to the IC code. Any future optimizations
to attribute-setting on JSArrays will need to make similar accomodations.

R=danno
BUG=v8:2711,259548

Review URL: https://chromiumcodereview.appspot.com/19115002
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd map transition for observed objects
adamk@chromium.org [Sat, 13 Jul 2013 00:20:40 +0000 (00:20 +0000)]
Add map transition for observed objects

This patch enables objects to undergo a single transition when they become observed, avoiding the need to create a new map for every observed objects.

Observed objects which become unobserved does not cause another map transition and unobserved does not clear the observed bit on the map. The unobserved object.

R=verwaest@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCollect side effects on paths to dominated block including the dominator.
hpayer@chromium.org [Fri, 12 Jul 2013 15:06:50 +0000 (15:06 +0000)]
Collect side effects on paths to dominated block including the dominator.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix windows build breakage due to 15645
danno@chromium.org [Fri, 12 Jul 2013 13:45:41 +0000 (13:45 +0000)]
Fix windows build breakage due to 15645

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix number tag for no-sse2.
olivf@chromium.org [Fri, 12 Jul 2013 13:05:39 +0000 (13:05 +0000)]
Fix number tag for no-sse2.

FCmp() pops 2 arguments from the stack...

BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix LGapResolver::EmitMove for X64 when the dst is a double register and src is a...
danno@chromium.org [Fri, 12 Jul 2013 12:34:11 +0000 (12:34 +0000)]
Fix LGapResolver::EmitMove for X64 when the dst is a double register and src is a constant

R=danno@chromium.org

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

Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImplement truncated d-to-i as a stub on x86
danno@chromium.org [Fri, 12 Jul 2013 12:28:32 +0000 (12:28 +0000)]
Implement truncated d-to-i as a stub on x86

- Added a general DoubleToIStub so that it's possible to extend to other platforms and non-truncating case.
- This version handles all cases of truncation (previous code deopted in some cases) and all source/destination register combinations without clobbering any temps.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd a common templatized implementation of OS::DumpBacktrace() and OS::StackWalk...
bmeurer@chromium.org [Fri, 12 Jul 2013 12:02:26 +0000 (12:02 +0000)]
Add a common templatized implementation of OS::DumpBacktrace() and OS::StackWalk() to platform-posix.h and use it for Linux, Mac OS X and FreeBSD.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCheck for scheduled exceptions after a failed-access-check callback.
yangguo@chromium.org [Fri, 12 Jul 2013 11:42:07 +0000 (11:42 +0000)]
Check for scheduled exceptions after a failed-access-check callback.

R=verwaest@chromium.org
BUG=v8:2524

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTest case for missing access checks in object observe.
yangguo@chromium.org [Fri, 12 Jul 2013 10:11:18 +0000 (10:11 +0000)]
Test case for missing access checks in object observe.

BUG=v8:2778
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00