loislo@chromium.org
693354a621
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
2013-07-18 13:18:46 +00:00
danno@chromium.org
05ec5921be
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
2013-07-18 13:00:40 +00:00
yangguo@chromium.org
c86ad36304
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
2013-07-18 12:25:22 +00:00
machenbach@chromium.org
01c39159f3
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
2013-07-18 12:18:35 +00:00
jkummerow@chromium.org
2c7b8cf5c1
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
2013-07-18 09:46:56 +00:00
bmeurer@chromium.org
4abd57dc2d
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
2013-07-18 09:25:54 +00:00
svenpanne@chromium.org
b951f03cee
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
2013-07-18 09:12:44 +00:00
hpayer@chromium.org
ced115b6ae
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
2013-07-18 08:42:03 +00:00
machenbach@chromium.org
f24997c1c7
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
2013-07-18 08:12:01 +00:00
mstarzinger@chromium.org
13f7c56e05
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
2013-07-18 07:59:48 +00:00
bmeurer@chromium.org
31eeeab30d
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
2013-07-18 07:50:33 +00:00
bmeurer@chromium.org
aaad82db0e
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
2013-07-18 07:43:41 +00:00
yurys@chromium.org
a7d1cb3f2a
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
2013-07-18 07:34:19 +00:00
yurys@chromium.org
9f65cf6bff
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
2013-07-18 06:51:03 +00:00
palfia@homejinni.com
4e0e41871a
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
2013-07-17 23:57:32 +00:00
palfia@homejinni.com
462f6be930
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
2013-07-17 18:39:34 +00:00
alph@chromium.org
86bfd87fa6
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
2013-07-17 18:23:16 +00:00
mstarzinger@chromium.org
dfc945d594
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
2013-07-17 16:38:49 +00:00
titzer@chromium.org
b1373531ba
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
2013-07-17 16:21:03 +00:00
jkummerow@chromium.org
9ed1fe1ac4
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
2013-07-17 15:58:59 +00:00
yangguo@chromium.org
9d6445cf32
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
2013-07-17 15:29:00 +00:00
jkummerow@chromium.org
f5cae51e20
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
2013-07-17 14:58:00 +00:00
olivf@chromium.org
d75b34db33
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
2013-07-17 14:10:38 +00:00
jkummerow@chromium.org
22f2fd8397
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
2013-07-17 13:13:38 +00:00
alph@chromium.org
eafc8c971a
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
2013-07-17 13:12:48 +00:00
bmeurer@chromium.org
871dacd415
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
2013-07-17 12:19:40 +00:00
mvstanton@chromium.org
b9f0c06ab2
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
2013-07-17 11:50:24 +00:00
bmeurer@chromium.org
410b4b2db4
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
2013-07-17 11:37:20 +00:00
dslomov@chromium.org
517cbe4dd3
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
2013-07-17 11:16:07 +00:00
alph@chromium.org
a6087dae80
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
2013-07-17 10:16:40 +00:00
yurys@chromium.org
9a51aa2197
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
2013-07-17 10:03:49 +00:00
hpayer@chromium.org
a3b856008b
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
2013-07-17 09:57:56 +00:00
yurys@chromium.org
16bb1dc210
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
2013-07-17 09:20:16 +00:00
ulan@chromium.org
b75063bea8
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
2013-07-17 08:46:44 +00:00
mvstanton@chromium.org
4465c83104
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
2013-07-17 08:46:01 +00:00
hpayer@chromium.org
29ad06f684
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
2013-07-17 08:44:10 +00:00
bmeurer@chromium.org
a72b5d6c4d
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
2013-07-17 08:32:28 +00:00
jkummerow@chromium.org
397163f0c8
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
2013-07-17 08:19:34 +00:00
rodolph.perfetta@gmail.com
1248321eb5
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
2013-07-17 08:09:52 +00:00
svenpanne@chromium.org
0e99e77143
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
2013-07-17 08:02:08 +00:00
palfia@homejinni.com
fbb8b84039
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
2013-07-16 18:02:43 +00:00
alph@chromium.org
09131296ac
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
2013-07-16 17:47:35 +00:00
verwaest@chromium.org
f24a5d3200
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
2013-07-16 14:01:46 +00:00
alph@chromium.org
86ca2c133c
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
2013-07-16 12:48:34 +00:00
hpayer@chromium.org
147163fc41
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
2013-07-16 12:14:16 +00:00
yurys@chromium.org
7fee06a6d9
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
2013-07-16 09:34:09 +00:00
hpayer@chromium.org
a65cb03955
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
2013-07-16 08:54:41 +00:00
mstarzinger@chromium.org
f8f5be2366
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
2013-07-16 08:37:49 +00:00
dslomov@chromium.org
11a38ed875
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
2013-07-16 08:11:30 +00:00
bmeurer@chromium.org
c0637c1828
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
2013-07-16 07:07:04 +00:00
adamk@chromium.org
fab9f4e126
[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
2013-07-15 22:16:30 +00:00
machenbach@chromium.org
5e343cd2a9
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
2013-07-15 18:47:40 +00:00
hpayer@chromium.org
38a87d2c4a
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
2013-07-15 16:58:20 +00:00
bmeurer@chromium.org
bbb2cf3fac
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
2013-07-15 16:56:32 +00:00
danno@chromium.org
5713ca0d8f
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
2013-07-15 15:23:52 +00:00
mstarzinger@chromium.org
35052bc2ea
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
2013-07-15 15:12:16 +00:00
rossberg@chromium.org
db76aa2717
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
2013-07-15 14:12:20 +00:00
jkummerow@chromium.org
8be50bbd70
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
2013-07-15 13:36:36 +00:00
bmeurer@chromium.org
b43e8f1e66
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
2013-07-15 12:24:13 +00:00
mstarzinger@chromium.org
0599225187
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
2013-07-15 11:41:41 +00:00
loislo@chromium.org
d13ad5be9b
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
2013-07-15 11:35:39 +00:00
bmeurer@chromium.org
01080fa7dc
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
2013-07-15 09:53:46 +00:00
bmeurer@chromium.org
fb77805ab7
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
2013-07-15 09:53:00 +00:00
dslomov@chromium.org
1c2d005b3c
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
2013-07-15 09:32:15 +00:00
danno@chromium.org
d8b7c721cc
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
2013-07-15 08:00:10 +00:00
dslomov@chromium.org
a6419e3e47
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
2013-07-15 07:43:46 +00:00
bmeurer@chromium.org
1384094efc
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
2013-07-15 07:41:18 +00:00
danno@chromium.org
c65f4f7f7b
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
2013-07-14 22:03:46 +00:00
adamk@chromium.org
625a0e9759
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
2013-07-13 00:20:40 +00:00
hpayer@chromium.org
f5ab1b2a4a
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
2013-07-12 15:06:50 +00:00
olivf@chromium.org
da7f6a68aa
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
2013-07-12 13:05:39 +00:00
danno@chromium.org
5086db3d30
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
2013-07-12 12:34:11 +00:00
danno@chromium.org
48b65f8cd5
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
2013-07-12 12:28:32 +00:00
bmeurer@chromium.org
4780c99790
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
2013-07-12 12:02:26 +00:00
yangguo@chromium.org
bd04a838a7
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
2013-07-12 11:42:07 +00:00
yangguo@chromium.org
e002207321
Fall back to generic on access checks in JSON.stringify.
...
BUG=259366
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18225006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 10:04:35 +00:00
titzer@chromium.org
2b9836af8c
Remove special-casing of EAGER and SOFT deoptimization calling conventions, allowing calling address to always be available to deoptimization entries.
...
BUG=
Review URL: https://codereview.chromium.org/18356008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 07:26:00 +00:00
olivf@chromium.org
bdf4fc96b0
Encapsulate compare nil ic_state.
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18602003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 17:20:57 +00:00
titzer@chromium.org
28aca51e8f
Refactor JavaScriptFrame::function() to return a JSFunction* and remove associated casts.
...
BUG=
Review URL: https://codereview.chromium.org/18404009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 16:45:58 +00:00
danno@chromium.org
d1d5f59d87
Fix build breakage after 15630
...
Use EXTRA_CALL_FRAME rather than NO_EXTRA_FRAME in
ElementsTransitionAndStoreIC_Miss.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/18812005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 16:25:58 +00:00
hpayer@chromium.org
90056df999
Use filler maps for folded allocations when verify heap is turned on.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18863011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 15:29:02 +00:00
bmeurer@chromium.org
6c13f097d6
Turn ElementsTransitionAndStore stub into a HydrogenCodeStub.
...
R=danno@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:29:00 +00:00
mvstanton@chromium.org
9b856d724d
Bogus assert needs to be removed on non-ia32 platforms
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18384007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:26:01 +00:00
verwaest@chromium.org
a7d38e483b
Support grow-stub by >1 if the target is holey.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18484006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:21:14 +00:00
titzer@chromium.org
9e7819fac4
Added %NeverOptimize runtime call that can disable optimizations for a method for tests.
...
BUG=
Review URL: https://codereview.chromium.org/18214005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:17:56 +00:00
hpayer@chromium.org
90a8ac78bd
Remove filler map when folding allocations and turn on allocation folding.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:53:54 +00:00
bmeurer@chromium.org
c0603d2974
Enable compiled transitions by default.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19005005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:53:06 +00:00
mvstanton@chromium.org
10615aef7b
AllocationSites: when updating allocation site transition information,
...
be careful to merge feedback appropriately. For example, one array may
have gone holey, and then another allocated at the same place instead
went DOUBLE but remained packed. In this case the ElementsKind
ultimately stored in the AllocationSite should be HOLEY_DOUBLE.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18531007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:08:36 +00:00
olivf@chromium.org
a5a144c7c0
Implement X87 stack tracking and x87 multiplication
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18041003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:07:04 +00:00
bmeurer@chromium.org
b2f909cf3e
Turn array index dehoisting into a proper HPhase.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18562009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 12:03:43 +00:00
verwaest@chromium.org
a5397dce98
Keep IC monomorphic on transition, even if previously not STANDARD_STORE.
...
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18034023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:54:43 +00:00
rossberg@chromium.org
b17713e405
Introduce type Bounds record
...
Refactoring in anticipation of handling variable bounds.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18415005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:47:05 +00:00
hpayer@chromium.org
99d541a486
Allocation folding integrated into the GVN phase.
...
BUG=
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/18596005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:41:33 +00:00
bmeurer@chromium.org
e3676e9135
Cleanup common POSIX functionality.
...
The Mutex implementation is the same for all 6 POSIX platformats, just
like of them use the sched_yield() to implement Thread::YieldCPU().
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18335008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:37:08 +00:00
hpayer@chromium.org
fba07ddd23
Perform new space evacuation based on marking bits.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18531004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:24:38 +00:00
rossberg@chromium.org
3d9586c431
This adds the following array iterator methods:
...
Array.prototype.values
Array.prototype.keys
Array.prototype.entries
These all return an Array Iterator object which has a next
method.
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.4.5
BUG=v8:2722
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/16848004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:20:54 +00:00
jochen@chromium.org
2809793a4f
Only depend on icudata on windows.
...
On windows, this triggers the dll to be copied to the correct
locations. On other platforms, icudata is compiled in, and depending on
it results in an invalid linker archive ordering.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18734003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:01:00 +00:00
jochen@chromium.org
97409c2363
Move InitializeICU() to the V8 API and use it.
...
I can't get rid of the enable_i18n flag yet, as we need to be able to
turn off all extensions for creating the snapshot.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18860007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:58:54 +00:00
mvstanton@chromium.org
b61dfd4a82
A bug in AllocationSite::GetMode(from, to) meant that we didn't update
...
boilerplates for SMI to SMI_HOLEY transitions.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18917003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:39:22 +00:00
hpayer@chromium.org
c518bee54e
Implemented lazy sweeping of new space.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18998004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:17:03 +00:00