Commit Graph

11354 Commits

Author SHA1 Message Date
dcarney@chromium.org
982fa4d381 delete eternal handle blocks correctly
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 06:34:54 +00:00
palfia@homejinni.com
8575ae5530 MIPS: Migrate instance of deprecated maps in HCheckMaps.
Port r16057 (b73ae514)

Original commit message:
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 01:12:10 +00:00
haitao.feng@intel.com
fe7df8c703 Make some constants' meaning clear for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 00:09:01 +00:00
palfia@homejinni.com
3b347f45a6 MIPS: Replace HCheckPrototypeMaps by explicit map checks of constant values.
Port r16055 (7567e57f)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 17:04:10 +00:00
verwaest@chromium.org
2622158aa0 Change environment padding value to value with smi representation.
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:53:28 +00:00
mstarzinger@chromium.org
e9f6a2d7b4 Use first hit when dumping heap constants.
This makes sure that the first hit is used when dumping heap constants
and hence "TheHoleValue" is not overwritten with other roots that are
initialized to the hole as well.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:47:45 +00:00
verwaest@chromium.org
9d9930ce99 Migrate instance of deprecated maps in HCheckMaps.
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:42:39 +00:00
verwaest@chromium.org
04b5e7fa63 Replace HCheckPrototypeMaps by explicit map checks of constant values.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 13:45:16 +00:00
hpayer@chromium.org
983a8621e0 More cleanup regarding the maximum non-large object allocation size.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:52:53 +00:00
haitao.feng@intel.com
e8fe083eb0 Introduce Push and Pop register macro instructions for all platforms
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:43:04 +00:00
bmeurer@chromium.org
274f254236 Revert "Return start/end profiling time in microseconds instead of milliseconds"
This reverts r16049 for breaking build on windows.

TBR=svenpanne@chromium.org,machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:27:12 +00:00
yurys@chromium.org
d38bbe354b Return start/end profiling time in microseconds instead of milliseconds
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double.

TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:48:24 +00:00
jochen@chromium.org
cb68e2cd9b Expose JSON parser through V8 API
BUG=v8:2821
TEST=cctest/test-api/JSONParse
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:14:46 +00:00
dcarney@chromium.org
207396101f introduce eternal handles
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:46:23 +00:00
mstarzinger@chromium.org
a50827e044 Add explicit transition flag to HStoreNamedField.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:35:18 +00:00
yangguo@chromium.org
b58093c953 Add notice when parallel recompilation is disabled by tracing.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:28:22 +00:00
yangguo@chromium.org
1ed4df6b57 Disable parallel recompilation for --trace-hydrogen-stubs.
R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:02:47 +00:00
verwaest@chromium.org
251c191824 Fix the loop-builder to tag the entire body as part of the loop.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 08:59:55 +00:00
dcarney@chromium.org
14ed15e7e1 Make GlobalHandle::NodeBlock deletable
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:34:29 +00:00
yurys@chromium.org
411d21b2b1 Add start and end profiling time to v8::CpuProfile
I'm going to change CPU profiler API and deprecate GetSelfTime, GetTotalTime and GetTotalSamplesCount on CpuProfileNode as all of those values are derived from self samples count and sampling rate. The sampling rate in turn is calculate based on the profiling duration so having start/end time and total sample count is enough for calculating smpling rate.

BUG=267595
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:17:08 +00:00
svenpanne@chromium.org
e544f130c5 Remove unused UNARY_MINUS builtin.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:00:38 +00:00
dcarney@chromium.org
eb52c66fd0 IsNearDeath needs to include pending nodes
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:58:48 +00:00
svenpanne@chromium.org
d5b9616991 Clean some unuse code of unary negation
R=svenpanne@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:34:26 +00:00
palfia@homejinni.com
ea38ee8782 MIPS: Avoid redundant smi check for Math.abs
Port r16021 (d79f4450)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 18:35:19 +00:00
haitao.feng@intel.com
dfda85a91a Introduce PopReturnAddressTo and PushReturnAddressFrom macro-assembler instructions for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:42:02 +00:00
dslomov@chromium.org
5230c19d8b Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16031

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:03:06 +00:00
dslomov@chromium.org
f8b80ca66d Revert "Add size_t length argument to v8::ArrayBuffer::Allocator::Free."
This reverts r16031 for breaking shared build.

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:56:53 +00:00
dslomov@chromium.org
1688f3c167 Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:19:22 +00:00
svenpanne@chromium.org
bf71023ba5 Replaced unary negation by multiplication with -1.
This fixes a deopt loop in the Epic Citadel demo and removes some code. Apart from that, this change is performance-neutral.

When we do something similar for BIT_NOT, the whole UnaryOp stuff can go away.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:56:35 +00:00
mstarzinger@chromium.org
1e296936eb Store transition on HStoreNamedField as HConstant.
This allows optimization passes that run in the parallel compiler thread
to use the map that a store transitions to for further analysis even
though the map handle cannot be dereferenced.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:24:55 +00:00
titzer@chromium.org
af2663afd8 Remove instructions and infrastructure related to IDEFs that is now obsolete (and was never turned on). The new bounds check elimination phase doesn't make use of these features, as they were the first parts of the previous approach which was never completed.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:17:26 +00:00
mstarzinger@chromium.org
c87abd1117 Add new Harmony methods to Array.prototype object.
Array.prototype.find
Array.prototype.findIndex

http://people.mozilla.org/~jorendorff/es6-draft.html

BUG=v8:2776,v8:2777
TEST=mjsunit/harmony/array-find,mjsunit/harmony/array-findindex
R=mstarzinger@chromium.org

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

Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 10:57:48 +00:00
loislo@chromium.org
d2c443b774 Extract hardcoded error strings into a single place and replace them with enum.
I'd like to propagate bailout reason to cpu profiler.
So I need to save it into heap object SharedFunctionInfo.
But:
1) all bailout reason strings spread across all the sources.
2) they are native strings and if I convert them into String then I may have a performance issue.
3) one byte is enough for 184 bailout reasons. Otherwise we need 8 bytes for the pointer.

Also I think it would be nice to have error strings collected in one place.
In that case we will get additional benefits:

It allows us to keep this set of messages under control.
It gives us a chance to internationalize them.
It slightly reduces the binary footprint.

From the other hand the developers have to add new strings into that enum.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:53:11 +00:00
mstarzinger@chromium.org
477b41c89b Fix Mac build after r16022.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:35:44 +00:00
mstarzinger@chromium.org
12c8d36331 Generate grokdump constants with 'make grokdump' now.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:02:02 +00:00
jkummerow@chromium.org
a47705644e Avoid redundant smi check for Math.abs
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:59:02 +00:00
jkummerow@chromium.org
15c1d23fbc Use test(reg, imm) when the operand is a register on ia32
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:55:26 +00:00
jkummerow@chromium.org
865582e02b TSan: Move definition of AtomicOps_x86CPUFeatureStruct into v8::internal namespace
This matches other atomicops_internals_* files.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:52:59 +00:00
jochen@chromium.org
738237e877 Move helper methods from i18n extension into runtime.
BUG=v8:2475
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:25:27 +00:00
jochen@chromium.org
71cad9edb6 Fix incorrect #ifdef statements for I18N support.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:21:16 +00:00
danno@chromium.org
40dff5067c Prepare push to trunk. Now working on version 3.20.13.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:57:58 +00:00
jkummerow@chromium.org
61f531cf23 Remove buggy ToNumber truncation
BUG=v8:2813
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:12:31 +00:00
ulan@chromium.org
4de5d18077 Fix mozilla regress-398085-01 failure on windows.
Make sure that all stack pages are mapped before accessing them.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 12:55:19 +00:00
dslomov@chromium.org
f62ffeef31 Calling Map etc without new should throw TypeError
Even though we do not yet allow Map, Set, WeakMap and WeakSet to be
subclassed we need to ensure that we do not allow them to be [[Call]]ed
to allow them to be subclassed in the future.

BUG=v8:2819
R=dslomov@chromium.org, mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 09:18:28 +00:00
dslomov@chromium.org
4ebeda216d Speed-up 'new TypedArray(arrayLike)'.
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.

Allocate backing store uninitialized in cases when we can guarantee
complete initialization.

R=bmeurer@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=15998

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:52:21 +00:00
hpayer@chromium.org
3e7e3f70a6 Pretenure heap number in high promotino mode if a store requires a mutable heap number to be allocated.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:49:27 +00:00
dslomov@chromium.org
791e1a9cb2 Revert "Speed-up 'new TypedArray(arrayLike)'."
This reverts commit r15998 for breaking NaCl build.

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:47:39 +00:00
bmeurer@chromium.org
3da5d1ad7b Get rid of HStringLength.
Use HLoadNamedField to load the string length field instead.

Depends on: https://codereview.chromium.org/21488002

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:42:47 +00:00
mstarzinger@chromium.org
2e7c5d4988 Fix printing of Harmony Set and Map instances.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:36:21 +00:00
hpayer@chromium.org
9e8058146e Cleaning up HAllocate space and double alignment selection.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:34:36 +00:00
bmeurer@chromium.org
9f8d162471 Fix broken HCheckInstanceType::Canonicalize().
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:27:46 +00:00
dslomov@chromium.org
d208eea478 Speed-up 'new TypedArray(arrayLike)'.
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.

Allocate backing store uninitialized in cases when we can guarantee
complete initialization.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:19:51 +00:00
bmeurer@chromium.org
a4c072ed47 Fix a crash when generating forward jumps to labels at very high assembly offsets
The first jump to a specific label was marked as jump to absolute
position -4. This value was stored in the assembly as a branch to a
offset (-4 - (instruction offset + 8)). The offset is only 24 bit
long on ARM. Thus instruction offsets higher than 2^23 - 12 would overflow
the offset.

Fix by denoting the first jump to a label by storing the jump
instruction location as the target. This will result in offset of -8,
which of course always fits in the branch instruction.

BUG=2736
TEST=cctest/test-assembler-arm/17
R=bmeurer@chromium.org, svenpanne@chromium.org

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

Patch from Kimmo Kinnunen <kkinnunen@nvidia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:13:08 +00:00
hpayer@chromium.org
68271ddc0e Print HAllocate flags in --trace-hydrogen.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 07:56:36 +00:00
verwaest@chromium.org
e53471dbaa Remove elements transitions from the transition array.
This is preparatory work for reordering the transition tree. Since elements transitions will be at the root of the transition tree, runtime access to them is slow since we have to walk the transition tree backwards first. Hence remove the optimization that promoted them to a special field, requiring a pointer (mostly NULL) in every non-simple transition array.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 17:08:50 +00:00
danno@chromium.org
04a9f00238 Make sure that bce creates constants of right type
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 16:41:51 +00:00
danno@chromium.org
e5e0100504 Fix overzealous casting that erroneously lead to ASSERTs
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 15:40:24 +00:00
danno@chromium.org
4cdffbf4fe Improve instruction creating/adding shorthand in HGraphBuilder
Add multi-argument templates for New, NewUncasted, Add and AddUncasted that
call boilerplate HInstruction::New methods rather than the constructor directly.
This allows for automatic passing of the zone and context for instructions that
need them.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 14:58:39 +00:00
bmeurer@chromium.org
8c0f2eabbf Stores to external references don't need write barriers.
This also applies to stores with an external field representation.

Also cleans up the CreateAllocationSiteStub.

R=mstarzinger@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 13:45:51 +00:00
ulan@chromium.org
7ad3db7485 Fix SHL when shift amount is zero for arm and mips.
BUG=v8:2817
R=titzer@chromium.org
TEST=octane

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:46:54 +00:00
dslomov@chromium.org
693301702b Reimplement TypedArray.set in Javascript.
Implement all cases for TypedArray.set in Javascript, except the case
where memmove is used. This makes it many times faster.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:10:49 +00:00
bmeurer@chromium.org
44e4c2756a Avoid the use of set_type() in instruction constructors.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:56:46 +00:00
bmeurer@chromium.org
8823e8e89f Get rid of HLinkObjectInList.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:47:44 +00:00
verwaest@chromium.org
3143f5f88b Remove special handling of fields in combination with elements transitions in Crankshaft.
Instead first try to keep ICs monomorphic if elements kinds generalize. If that fails, use standard polymorphic handling. The Try*PolymorphicAsMonomorphic methods will automatically produce code similar to the previous approach using CheckMapsWithTransitions.

BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:08:05 +00:00
bmeurer@chromium.org
843cf1f654 Compile fix for older GCCs.
TBR=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:03:59 +00:00
bmeurer@chromium.org
bacc626f57 Fix HType handling for HConstant with external references.
We cannot use set_type() with HType::None() in the HConstant
constructor, since set_type() asserts that the new type is a
subtype of the previous one, but HType::None() is not a subtype
of HType::Tagged() which is the initial type set by the HValue
constructor.

This patch adds an optional type parameter to the HValue,
HInstruction and HTemplateInstruction constructors.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:38:37 +00:00
titzer@chromium.org
d87296eb1f Eagerly set the types of many kinds of hydrogen instructions.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:29:30 +00:00
mstarzinger@chromium.org
a1c7478a38 Fix stale unhandlified value in JSObject::SetPropertyForResult.
R=danno@chromium.org
BUG=chromium:265894

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 08:51:18 +00:00
bmeurer@chromium.org
e9fcf8fc98 Revert the latest set of platform changes.
Revert "Fix NaCl build."
Revert "Revert target arch detection."
Revert "Fix typo."
Revert "Simplify implementation of Mutex."
Revert "Fix for older clang releases that lack __has_extension."
Revert "Reland initial bits of "Implement correct OS and CC detection.""

TBR=danno@chromium.org,svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:51:46 +00:00
dcarney@chromium.org
a5e87c8459 make Intl non-enumerable
R=jochen@chromium.org, svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:34 +00:00
hpayer@chromium.org
2bd5405dc2 Free slots buffer entries when tearing down the heap.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:03 +00:00
bmeurer@chromium.org
662958c56c Fix NaCl build.
TBR=machenbach@chromium.org,svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:08:52 +00:00
bmeurer@chromium.org
ae2c2ad46d Revert target arch detection.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:04:30 +00:00
hpayer@chromium.org
b6a6fc76dc Allocation space decisions are precisely made in hydrogen.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:03:16 +00:00
bmeurer@chromium.org
dff0e84b1b Fix typo.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 06:56:02 +00:00
haitao.feng@intel.com
e0eaee29d3 Introduce StackOperandForReturnAddress operand for X64 to access return address in the stack
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 00:19:32 +00:00
haitao.feng@intel.com
e4cdcc6576 Introduce the SetFp function in StackHandler
The FP setting is different for X32 than the other platforms as
kFPOnStackSize is double the kPointerSize and we have to clear the
higher 32 bits to 0.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 23:59:55 +00:00
palfia@homejinni.com
bfc98bc0c8 MIPS: Fix flaky mjsunit/harmony/generators-iteration test failure.
This fixes the result allocation in EmitCreateIteratorResult,
when a GC is required. The Runtime call returns the allocated
pointer in v0 register, but the rest of the function was
expected it in a0 register. Refactored the function to use v0 for
the result in the whole function.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 22:28:54 +00:00
bmeurer@chromium.org
64bfd42a4c Simplify implementation of Mutex.
Also moves Mutex to its own file mutex.{cc,h}.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:12:49 +00:00
mstarzinger@chromium.org
96fc677d25 Pipe a script's CORS status through V8 during compilation.
In order to properly sanitize exception data during a 'window.onerror'
handler, we need to know whether a script was served with proper CORS
headers at the time it was loaded into V8. This patch adds a single bool
to ScriptOrigin, and pipes that through the compiler to land on the
Script object. We can then retrieve the parameter when calling the
embedder's exception callback.

BUG=crbug.com/159566
R=mstarzinger@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:05:50 +00:00
mstarzinger@chromium.org
8a019050ff Reland "Compilation type and state allocate an unnecessary Smi on v8::Script" (r15940).
It turns out that this change is not related to the test failures.

TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:00:05 +00:00
verwaest@chromium.org
2af164f4d9 Mark maps as unstable if their instances potentially transition away.
Use this as a prerequisite for adding code dependencies.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:58 +00:00
mstarzinger@chromium.org
0627d433b0 Add new Harmony methods to String.prototype object.
String.prototype.repeat
String.prototype.startsWith
String.prototype.endsWith
String.prototype.contains

http://people.mozilla.org/~jorendorff/es6-draft.html

BUG=v8:2796,v8:2797,v8:2798,v8:2799
TEST=mjsunit/string-repeat,mjsunit/string-startswith,mjsunit/string-endswith,mjsunit/string-contains
R=mstarzinger@chromium.org

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

Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:08 +00:00
bmeurer@chromium.org
306d944e3e Fix for older clang releases that lack __has_extension.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 14:49:44 +00:00
titzer@chromium.org
0af94e4ac4 Don't generate a shift left by one if can deoptimize on ia32 and arm and mips.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 13:30:03 +00:00
danno@chromium.org
f3fff3c2f4 Revert 15940: "Compilation type and state allocate an unnecessary Smi on v8::Script."
Due to Mozilla test failures on Win32 debug

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:24:11 +00:00
danno@chromium.org
570138742e Prepare push to trunk. Now working on version 3.20.12.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:08:56 +00:00
bmeurer@chromium.org
a59d3ba977 Reland initial bits of "Implement correct OS and CC detection."
This adds the OS and CC detection and cleans up the globals.h to
some degree. It also places all of the C++11 feature detection into
globals.h.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:36:58 +00:00
bmeurer@chromium.org
82e4ba6f70 Turn mark deoptimize on undefined into a proper HPhase.
This patch also removes the implicit recursion on phi operands,
using a loop and a worklist instead, to avoid potential stack
overflows.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:25:20 +00:00
verwaest@chromium.org
f328c2c77c HasNonSmiUse should ignore tagged uses
R=verwaest@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 09:06:42 +00:00
mstarzinger@chromium.org
3202e1d795 Re-revert "Flush parallel recompilation queues on context dispose notification" (r15883).
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 08:35:48 +00:00
svenpanne@chromium.org
31e56df122 Prepare some ValueOf renamings.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:05:15 +00:00
yurys@chromium.org
6ba502fa4d Simplify sampling rate calculation
Sampling rate is now calculated as total number of samples divided by profiling time in ms. Before the patch the sampling rate was updated once per 100ms which doesn't have any obvious advantage over the simpler method.

Also we are going to get rid of the profile node self and total time calculation in the v8 CPU profiler and only expose profiling start/end time for CpuProfile and number of ticks on each ProfileNode and let clients do all the math should they need it.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:01:16 +00:00
haitao.feng@intel.com
1f9dc8b1bf This patch is to support Vtune on Android platform.
The Vtune API provides the support for Android platform. So we fix the
compilation issue and it works on Android platform.

R=danno@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 01:01:04 +00:00
yurys@chromium.org
c301f8203c Remove unused methods from RuntimeProfiler
Also removed Logger fields that used to be used for writing compressed logs.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 19:02:16 +00:00
mstarzinger@chromium.org
9f4fc77e1e Compilation type and state allocate an unnecessary Smi on v8::Script.
This patch combines them into a single field, and adjusts the accessors
and setters to take the enum type directly, rather than converting to and
from a Smi value.

R=mstarzinger@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:59:02 +00:00
verwaest@chromium.org
4ab26b7ed4 Revert "Smi-support for HSar."
Reverting https://chromiumcodereview.appspot.com/21049003

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:17:19 +00:00
verwaest@chromium.org
480729ff79 Smi-support for HSar.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:07:28 +00:00
bmeurer@chromium.org
b019910a38 This adds generic support for ExternalReferences in Hydrogen (and Lithium), as required for AddIncrementCounter.
R=danno@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 13:56:51 +00:00
titzer@chromium.org
37ee4a0369 Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode.
BUG=
R=mstarzinger@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:35:43 +00:00
bmeurer@chromium.org
e3901e919d Revert new OS and CC detection and related changes since r15923.
Revert "Attempt to fix leftover test breakage on Mac."
Revert "Fix d8 build error when V8_SHARED is unset on Linux."
Revert "Fix V8_GNUC_PREREQ macro."
Revert "Fix typo."
Revert "Implement correct OS and CC detection."

TBR=svenpanne@chromium.org,danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:12:39 +00:00
danno@chromium.org
837276829e Fix HasResult method of LTemplateInstruction to properly handle LCheckSmi
LCheckSmi sometimes has a result register and sometimes not, even though its
LTemplateInstruction alwasys has room for one. Debug output use HasResult to
determine whether it was ok to de-ref result(), but HasResult doesn't check for
the case where LTemplateInstruction has a result but it's NULL.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:57:42 +00:00
danno@chromium.org
504f94fcbd Make it easier to get JS stack crawls from gdb
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:56:45 +00:00
mvstanton@chromium.org
e9cc78af7e Fix for V8 issue 2795: Check fails with deopt for mjsunit/array-store-and-grow
(https://code.google.com/p/v8/issues/detail?id=2795)

The reason is when allocating and building arrays in hydrogen we need to ensure
we do any int32-to-smi conversions BEFORE the allocation. These conversions can
at least theoretically deoptimize. If this happens before all the fields of the
newly allocated object are filled in, we will have a corrupted heap.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:50:39 +00:00
bmeurer@chromium.org
41a4831fd9 Attempt to fix leftover test breakage on Mac.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:38:34 +00:00
bmeurer@chromium.org
4d56810eeb Fix d8 build error when V8_SHARED is unset on Linux.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 10:23:07 +00:00
bmeurer@chromium.org
ac5e3e080c Fix V8_GNUC_PREREQ macro.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:56:34 +00:00
titzer@chromium.org
f403969d1f Remove Uninitialized from HType.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:42:57 +00:00
bmeurer@chromium.org
45e77c2b66 Fix typo.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:29:00 +00:00
bmeurer@chromium.org
2e7193f897 Implement correct OS and CC detection.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:19:10 +00:00
bmeurer@chromium.org
709012021a The compiled_transitions flag was enabled for quite some time now and seems to work out quite well, so time has come to remove the obsolete code paths and remove the unused methods.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:12:16 +00:00
bmeurer@chromium.org
3126012664 Really fix break in r15919 now.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:33:57 +00:00
bmeurer@chromium.org
0f5178dcba Fix break in r15919.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:07:52 +00:00
bmeurer@chromium.org
c147c58c59 Properly implement OS::GetRandomMmapAddr() for Win32.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:50:56 +00:00
danno@chromium.org
c1e7d38f49 Prepare push to trunk. Now working on version 3.20.11.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:45:01 +00:00
palfia@homejinni.com
7ac6d35d1d MIPS: Fix debug mode webkit failures.
* Handles SMI case in EmitLoadRegister correctly.
* Fix minor mistake in the assembler.

BUG=v8:2808
TEST=webkit/dfg-dead-min-two-args,webkit/fast/js/excessive-comma-usage

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-27 01:07:53 +00:00
palfia@homejinni.com
bac2da6421 MIPS: Add Smi support to Shl
Port r15910 (8e65c434)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 23:56:03 +00:00
loislo@chromium.org
141ada02f2 Logger: introduce abstract interface for CodeEvent listeners.
New abstract class CodeEventListener was created.

CodeEventLogger which is the base class for Jit, LowLevel
and CodeAddressMap loggers was inherited from CodeEventListener.

CodeAddressMap class was moved to serializer.cc because serializer is the only user for it. Actually it collects code names and pushes them to the standard log as SnapshotCodeNameEvent. So I extracted this code into separate function CodeNameEvent. It happens that this method works only when Serializer serializes an object. So I added direct log call there.

CodeEventLogger class declaration was moved to the header
because CodeAddressMap needs it.
The code for the nested class CodeEventLogger::NameBuffer was left in the cc file.

CpuProfiler now is inherit CodeEventListener but not used
the loggers infrastructure yet due to the complex initialization schema. I'd like to fix that in a separate cl.

BUG=none
TEST=current test set.
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:50:23 +00:00
verwaest@chromium.org
7471ae893e Add Smi support to Shl
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:35:44 +00:00
yurys@chromium.org
630999d1a2 Remove --prof-auto flag
There is already --prof-lazy flag which should be enough.

BUG=None
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:18:56 +00:00
yangguo@chromium.org
b62a6d0e2e Do not allow external strings in old pointer space.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:32:06 +00:00
verwaest@chromium.org
565699669e Fix Smi-based MathMinMax on x64, and reenable smi mode.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:06:22 +00:00
yangguo@chromium.org
372763897d Lazy call to custom stack trace formatting using Error.prepareStackTrace.
This enables custom stack trace formatting for stack overflow.
A consequence is that stack trace formatting is now easily observable,
but we already established that the default stack trace formatting can
be observed anyways. It is only triggered by the .stack getter, and
it has to be explicitly called, (e.g. not implicitly after GC).

R=mstarzinger@chromium.org
BUG=v8:2559

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:28:08 +00:00
mstarzinger@chromium.org
aded201670 Revert "Check that ExternalString objects get aligned resources" (r15894).
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 10:40:00 +00:00
jkummerow@chromium.org
a6a1163036 Prepare push to trunk. Now working on version 3.20.10.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:22:45 +00:00
mstarzinger@chromium.org
40d5faea73 Check that ExternalString objects get aligned resources.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:02:34 +00:00
jkummerow@chromium.org
e9046dccb3 Disable Smi representation support for HMathMinMax
because it's incomplete on x64.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:43 +00:00
bmeurer@chromium.org
90249cf92b Inline platform-tls*.h files into platform.h.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:07 +00:00
palfia@homejinni.com
61a78e2a11 MIPS: Adding Smi support to Add, Sub, Mul, and Bitwise
Port r15879 (ec1e278b)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:57:10 +00:00
palfia@homejinni.com
c12a0774ea MIPS: New array bounds check elimination pass (focused on induction variables and bitwise operations).
Port r15866 (52e8581c)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:55:55 +00:00
jochen@chromium.org
0826f85a02 Put object templates of the i18n extension on the heap object.
Using function local statics doesn't work, as we need the templates per
isolate.

I'm not #ifdef'ing the definitions out, because kEmptyStringRootIndex
changes depending on whether the two additional slots are present or
not.

BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 16:01:02 +00:00
m.m.capewell@googlemail.com
cc9398cd42 ARM: Make double registers low/high safe
This patch prevents taking the low/high part of a double-precision VFP register that has no corresponding single-precision VFP registers.

BUG=none
TEST=Added to test-disasm-arm.cc, test-assembler-arm.cc

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:38 +00:00
jkummerow@chromium.org
32e2e37230 Fix JSArray-specific length lookup in polymorphic array handling
BUG=chromium:263276
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:21 +00:00
yangguo@chromium.org
14e205e9cf Reland "Flush parallel recompilation queues on context dispose notification."
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:01:23 +00:00
mstarzinger@chromium.org
f06f57f7fb Make standalone D8 trace to single hydrogen.cfg file.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 14:11:53 +00:00
verwaest@chromium.org
8e719ea472 Remove support for smi-based keyed accesses on 64bit.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:22:23 +00:00
hpayer@chromium.org
b832d8e089 Ignore external strings in old pointer space migration invariant check.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:10:45 +00:00
verwaest@chromium.org
5de783d47e Adding Smi support to Add, Sub, Mul, and Bitwise
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 11:53:38 +00:00
bmeurer@chromium.org
69fe1ff281 Don't duplicate OS::ActivationFrameAlignment() for every POSIX platform.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:49:28 +00:00
titzer@chromium.org
5dd517ff3b Move representation into HObjectAccess and remove from HLoadNamedField and HStoreNamedField.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:37:52 +00:00
bmeurer@chromium.org
0da0309128 Drop redundant GetRandomMmapAddr() in platform-openbsd.cc.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:28:21 +00:00
bmeurer@chromium.org
401af139b5 Don't duplicate OS::CpuFeaturesImpliedByPlatform for every POSIX platform.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:16:39 +00:00
bmeurer@chromium.org
e1b36b3b6b Don't duplicate ceiling() for every POSIX platform.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:49:52 +00:00
hpayer@chromium.org
09b1b9e4d5 Removed pointer space to pointer space compaction check when migrating objects.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:44:40 +00:00
yangguo@chromium.org
f5e6fbef6e move 32 bit heap hint on sunos
Setting the V8 heap at or near 0x20000000 on 32bit sunos only allows
512 MB of heap space, instead on sunos move this to 0x80000000.

To quote the comment

For our Solaris/illumos mmap hint, we pick a random address in the bottom
half of the top half of the address space (that is, the third quarter).
Because we do not MAP_FIXED, this will be treated only as a hint -- the
system will not fail to mmap() because something else happens to already
be mapped at our random address. We deliberately set the hint high enough
to get well above the system's break (that is, the heap); Solaris and
illumos will try the hint and if that fails allocate as if there were
no hint at all. The high hint prevents the break from getting hemmed in
at low values, ceding half of the address space to the system heap.

BUG=
R=yangguo@chromium.org

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

Patch from Timothy J. Fontaine <tjfontaine@joyent.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:06:13 +00:00
bmeurer@chromium.org
71c563f8e3 Drop leftover unused kNoThread in platform-openbsd.cc.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:04:45 +00:00
bmeurer@chromium.org
3b8c7ffa61 Setting the thread name may fail, so don't assert that the result is 0.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:00:32 +00:00
mmassi@chromium.org
fbc7770702 Added missing header.
BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 06:49:53 +00:00
mmassi@chromium.org
b5a43f48a6 New array bounds check elimination pass (focused on induction variables and bitwise operations).
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 06:37:25 +00:00
dslomov@chromium.org
a418b36b75 Make DataView setters throw when only offset is provided.
Also fix typo in error message id.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 17:35:15 +00:00
palfia@homejinni.com
2a680c59d2 MIPS: Convert CONSTANT_FUNCTION to CONSTANT
Port r15858 (e3a6d2a)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 15:41:00 +00:00
yangguo@chromium.org
67acbd6a62 Allow handle dereference for --print-code.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 14:28:56 +00:00
haitao.feng@intel.com
2f4b0e31bd Add the emitp function for X64 assembler
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 13:50:45 +00:00
dcarney@chromium.org
323f15c5a9 wrap gc callbacks in handlescopes
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:50:53 +00:00
titzer@chromium.org
54cc492225 Add --trace-hydrogen-stubs flag (default = false).
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:38:52 +00:00
verwaest@chromium.org
6b83c868f0 Convert CONSTANT_FUNCTION to CONSTANT
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:34:50 +00:00
svenpanne@chromium.org
2d6fa933e0 More Math.abs tweaks for Intel platforms.
Made ia32/x64 code more uniform. Minor jump tweaks.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:17:45 +00:00
yangguo@chromium.org
eaedafad4b Restore test and behavior prior to deferred stack trace formatting.
R=mstarzinger@chromium.org
TEST=stack-traces-overflow.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:16:02 +00:00
titzer@chromium.org
f612a29f8c Factor out common code from platform-specific deoptimization. Fix Deoptimizer not to need to partition functions, but revoke their code before patching, allowing deoptimizing_code_list to be removed from Code; Add DeoptimizeCodeList API to deoptimizer, which works on a ZoneList<Code*>.
BUG=
R=mstarzinger@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 11:12:17 +00:00
titzer@chromium.org
82a54b0077 Remove HCompareConstantEqAndBranch (never used), and its corresponding Lithium instructions.
BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 10:48:16 +00:00
hpayer@chromium.org
d6126a0a48 Added check to debug object migration crashes.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 09:19:55 +00:00
hpayer@chromium.org
92ce527203 Objects can no longer be migrated or evacuated into large object space.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:50:03 +00:00
svenpanne@chromium.org
564381281b Removed usesless test instruction.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:32:21 +00:00
yangguo@chromium.org
72d2c92d5f Prepare push to trunk. Now working on version 3.20.9.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:17:32 +00:00
mstarzinger@chromium.org
3cdeb2f9cd Avoid adding HWrapReceiver during graph building.
This adds an early check to the graph builder which prevents adding an
HWrapReceiver instruction if the receiver type is already known at graph
building time. Also HAllocate no longer unnecessarily postpones setting
it's type until type inference but sets it right away. These changes are
in preparation for escape analysis.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:05:49 +00:00
jkummerow@chromium.org
b7369c38ec Fix assert/crash in HandlePolymorphicCallNamed
R=jkummerow@chromium.org
TEST=Ryan Sturgell's test runs through without crashing

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

Patch from Daniel Clifford <danno@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:00:52 +00:00
yangguo@chromium.org
6cbe01edae Revert "Flush parallel recompilation queues on context dispose notification."
This reverts r15833.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 07:45:54 +00:00
hpayer@chromium.org
c3c0be7160 Simplified large object allocation strategy.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 20:01:38 +00:00
hpayer@chromium.org
6c83b7d6c1 Support double allocations when folding allocation.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 19:27:00 +00:00
hpayer@chromium.org
3c0483af52 Fix TargetSpace() method for box type.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 19:05:00 +00:00
yangguo@chromium.org
f70cc6e114 Flush parallel recompilation queues on context dispose notification.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:15:00 +00:00
yurys@chromium.org
97f8f91bb5 Fix call stack sampling for the case when native callback invokes JS function
The SafeStackFrameIterator used by CPU profiler checked if Isolate::c_entry_fp is null and if it is not it would think that the control flow currently is in some native code. This assumption is wrong because the native code could have called a JS function but JSEntryStub would not reset c_entry_fp to NULL in that case. This CL adds a check in SafeStackFrameIterator::IsValidTop for the case when there is a JAVA_SCRIPT frame on top of EXIT frame.

Also this CL changes ExternalCallbackScope behavior to provide access to the whole stack of the scope objects instead of only top one. This allowed to provide exact callback names for those EXIT frames where external callbacks are called. Without this change it was possible only for the top most native call.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:01:38 +00:00
palfia@homejinni.com
f48a8d1ca4 MIPS: Eliminate map checks of constant values.
Port r15819 (a453a0e)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 14:29:04 +00:00
bmeurer@chromium.org
cb055f1732 Avoid duplication of OS::Thread methods for every POSIX platform.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:47:50 +00:00
haitao.feng@intel.com
875fd8424b Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
BUG=None
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:46:10 +00:00
yurys@chromium.org
682a0d65c6 Deprecate v8::V8::Pause/ResumeProfiler
The methods were added to the public API in r1185 when Chrome DevTools were using the same output as produced for tick processor when --prof option is specified.

I don't see any existing clients of these methods and since they add a noticeable complexity to the profiler code I'd like to remove them.

BUG=None
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:44:15 +00:00
danno@chromium.org
8cbbdd066c Unify SoftDeoptimize and Deoptimize hydrogen instructions
BUG=chromium:258519
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:35:10 +00:00
haitao.feng@intel.com
fa037d1602 Revert "Addressed danno's comments" and "Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants"
BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:30:44 +00:00
haitao.feng@intel.com
24e0d7f860 Addressed danno's comments
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:01:59 +00:00
haitao.feng@intel.com
a9253143de Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:01:42 +00:00
verwaest@chromium.org
7e08f81e6d Also eliminate map checks with transitions.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 10:01:06 +00:00
bmeurer@chromium.org
558c42373d Fix duplicated methods for POSIX platforms.
No need to duplicate OS::NumberOfCores() for every POSIX platform.
No need to duplicate OS::Sleep() for every POSIX platform.
No need to duplicate OS::Abort() and OS::DebugBreak() for every POSIX platform.
No need to duplicate OS::Free() for every POSIX platform.
Move #ifdef'd OS::ProtectCode() and OS::Guard() to platform-posix.cc.
No need to duplicate OS::AllocateAlignment() for every POSIX platform.
No need to duplicate OS::PostSetUp() for every POSIX platform.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:59:14 +00:00
verwaest@chromium.org
babce318d1 Eliminate map checks of constant values.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:18:42 +00:00
olivf@chromium.org
b8d7bee4a3 Avoid tagged values for Instructions that truncate the operands with ToNumber.
I case the ToNumber is applied to a non numeric value but its not observable (some constants and oddballs) we should already do it in hydrogen...

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:13:59 +00:00
loislo@chromium.org
ecd807b980 Move CpuProfiler code create events behind Logger code api.
CpuProfiler has almost the same api for CodeCreate* events
but it was calling separately.

BUG=260203
R=svenpanne@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 08:12:15 +00:00
yangguo@chromium.org
925375520c Rip out infrastructure for deferred stack trace formatting.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 07:41:46 +00:00
yangguo@chromium.org
5aa717a0ad Cosmetic changes.
R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 07:31:46 +00:00
bmeurer@chromium.org
c4f77b3e40 Turn ToNumberStub into a hydrogen code stub.
R=danno@chromium.org, hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 06:02:54 +00:00
palfia@homejinni.com
439a425676 MIPS: Ensure space for lazy deoptimization before calling IC.
Port r15808 (cc16b500)

Original commit message:
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 22:00:41 +00:00
palfia@homejinni.com
d6e54c5f58 MIPS: Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.
Port r15798 (3b92806)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 18:16:44 +00:00
ulan@chromium.org
b2dd5c67f7 ARM: Ensure space for lazy deoptimization before calling IC.
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.

R=verwaest@chromium.org
BUG=247688
TEST=mjsunit/regress/regress-247688.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 17:21:41 +00:00
verwaest@chromium.org
b94d2cd610 Add fixed array to Type::LubBitset
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 15:27:38 +00:00
verwaest@chromium.org
46ca825561 Avoid repeated rewrites of global store to constant IC due to store of same value.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 14:15:58 +00:00
verwaest@chromium.org
a6c0ae417e Exclude const-strings from global constant tracking.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:43:01 +00:00
hpayer@chromium.org
067d921cc0 Limit the amount of memory that can be folded together.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:34:23 +00:00
verwaest@chromium.org
d816fd1333 Track all non-hole global constants.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:15:13 +00:00
hpayer@chromium.org
ecc31a0cee Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 11:07:43 +00:00
mvstanton@chromium.org
f59c36589d In MacroAssembler::JumpIfNotBothSequentialAsciiStrings a custom mask
helps us decide if we have two ascii strings. We don't care if they
are internalized or not. A few days ago we flipped the meaning of the
internalized bit in INSTANCE_TYPE, and that broke this custom mask.
This CL effects a repair.

BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:55:14 +00:00
jkummerow@chromium.org
b43a3c85ad Prepare push to trunk. Now working on version 3.20.8.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:19:43 +00:00
yangguo@chromium.org
cd41cb9b6d Turn on parallel recompilation for tests that assert optimization status.
R=mvstanton@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:16:33 +00:00
mstarzinger@chromium.org
ce81b0d3a8 ES6: Implement WeakSet
WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.

This is available under --harmony-collections

BUG=v8:2785
R=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:32:24 +00:00
bmeurer@chromium.org
44f576ba65 Replace BuildExternalArrayElementAccess() with AddExternalArrayElementAccess().
This is trivial cleanup. All calls to BuildExternalArrayElementAccess()
pass the result to AddInstruction().

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:20:47 +00:00
bmeurer@chromium.org
e8a7302ec4 Add AssertSmi() in x64 MacroAssembler::SmiTest().
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 07:09:13 +00:00
bmeurer@chromium.org
1b73068626 Replace BuildFastElementAccess() with AddFastElementAccess().
This is trivial cleanup. All calls to BuildFastElementAccess() pass
the result to AddInstruction().

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 07:00:46 +00:00
bmeurer@chromium.org
fe83bc3622 Fix invalid SMI test in x64 ToNumberStub::Generate().
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 06:13:45 +00:00
bmeurer@chromium.org
9364d9740e Unify SMI case inlining for ToNumberStub.
Use ShouldInlineSmiCase() on arm, mips and x64 similar to the ia32 port.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 05:50:10 +00:00
jkummerow@chromium.org
0963c220b1 Revert "Implement simple effect typing for variables" and "Handle switch effects".
This reverts r15776 and r15777 due to compile failures on Chromium Mac bots.

TBR=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 19:55:09 +00:00
loislo@chromium.org
24dec186b4 Logger: reorder methods in log.cc
No logic changes.

BUG=none
TEST=current test set
TBR=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 15:57:18 +00:00
loislo@chromium.org
19fdbc2653 Logger: extract CodeEventLogger classes.
The idea is to extract all the CodeEvent loggers into separate classes
make an interface for code events and put them into a listeners array.

I extracted code that works with name_buffer into a separate base class CodeEventLogger.
And made JitLogger, LowLevelLogger and new CodeMap its descendants.

As a side effect I converted NameBuffer into nested class of CodeEventLogger
and converted NameMap into nested class of CodeMap.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:58:53 +00:00
palfia@homejinni.com
a9c074b8ee MIPS: With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test.
Port r15773 (60aa9f0)

Original commit message:
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358) But that change caused a regression, so here is an improvement:

Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:56:43 +00:00
palfia@homejinni.com
4c3269a43d Fix unaligned accesses in back_edge tables.
This patch fixes the step size of masm->pc_ in back_edge tables to words (4 bytes) to ensure 4 bytes alignment for read/write operations. Read and write of words (4 bytes) data from aligned space (address % 4 == 0) is more efficient on all platforms and especially on MIPS where without this alignment fix a kernel exception handler is used for every unaligned access.

This patch increases the size of back_edge tables by 3 bytes in every row. By the test it seem the back_edge table quite small in every/most cases (maximal length is 18 so in that case there are only 54 additional bytes with this patch).

BUG=

Patch from Douglas Leung <Douglas.Leung@imgtec.com>

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:46:23 +00:00
rossberg@chromium.org
ac2b8c04f3 Proxies: Make 'with' work, plus minor other fixes
Also fixes internal exception handling in several places of the runtime.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:07:23 +00:00
ulan@chromium.org
88a4b0d6ca Fix deopt in store with effect context.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:45:26 +00:00
mvstanton@chromium.org
ec8c6f4692 Rename AllocationSiteInfo to AllocationMemento
This is just a rename change with the exception of a bug found along the way in
CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub(). There, the
intent is to get the boilerplate object from an AllocationSite. But the wrong
HObjectAccess was used. It only succeeds because it happened to be the same
offset :).

BUG=
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:30:49 +00:00
rossberg@chromium.org
961d154d99 Handle switch effects
R=titzer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:04:41 +00:00
rossberg@chromium.org
02649f08bc Implement simple effect typing for variables
For that, we maintain an abstract store typing of all variables with LOCAL location (i.e., those that do not escape the function's own scope). We treat assignments as sequential effects that modify this store.

When control flow branches, we have to compute the disjunction of possible effects. To that end, we represent the store as a stack of effect sets, such that we can cheaply push and pop "local" effects when control flow has to branch.

In cases of non-local control transfer from an unknown source, we currently erase all knowledge about the store.

The 'switch' statement is still to come.

For a formulation of the typing rules, see:

https://docs.google.com/a/google.com/file/d/0B3wuXSv9YKuKeUNkVXZDemZ0Z1E

;)

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 12:54:27 +00:00
bmeurer@chromium.org
5e85399572 Cleanup StringAddFlags.
Avoid duplication of StringAddFlags in the platform specific code stubs header files.
Fix the inverted flag logic, replacing it with a scheme that is easier to understand.

Depends on: https://codereview.chromium.org/19541003

R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:52:42 +00:00
bmeurer@chromium.org
784e233ea9 Cleanup useless parameter object_is_smi for NumberToStringStub::GenerateLookupNumberStringCache().
object_is_smi was always false so there's no need to actually have it.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:42:57 +00:00
mvstanton@chromium.org
3761e0388d With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358) But that change caused a regression, so here is an improvement:
Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.

BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:29:11 +00:00
rossberg@chromium.org
83d9e6e7ee Add support for explicit octal and binary integer literals
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.3

ES6 extends the numeric literals to support explicit support
for binary and octal literals using the following syntax:

  0b10101
  0o777

This is currently behind the flag, --harmony-numeric-literals

BUG=2783
R=rossberg@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:57:35 +00:00
bmeurer@chromium.org
d750a6dcd8 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
2013-07-19 09:42:15 +00:00
svenpanne@chromium.org
00ed79fb8b 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
2013-07-19 09:39:01 +00:00
yurys@chromium.org
260af16ede 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
2013-07-19 09:38:18 +00:00
haitao.feng@intel.com
fc5806454d 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
2013-07-19 08:49:47 +00:00
verwaest@chromium.org
be472d82fd 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
2013-07-19 08:45:47 +00:00
mstarzinger@chromium.org
3eded2c06c 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
2013-07-19 08:25:44 +00:00
danno@chromium.org
76cbaf407f 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
2013-07-19 08:21:41 +00:00
loislo@chromium.org
ea97288e64 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
2013-07-18 17:19:31 +00:00
svenpanne@chromium.org
607a531435 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
2013-07-18 14:40:59 +00:00
yurys@chromium.org
eeb7452a44 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
2013-07-18 14:32:06 +00:00
yurys@chromium.org
56cc999f93 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
2013-07-18 14:28:00 +00:00
alph@chromium.org
b5fa92eb0a 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
2013-07-18 14:14:56 +00:00
mstarzinger@chromium.org
2165d4008d 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
2013-07-18 14:00:53 +00:00
yurys@chromium.org
97681be4e5 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
2013-07-18 13:42:04 +00:00
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
bmeurer@chromium.org
c294a40e0a Turn canonicalization into a proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 08:21:50 +00:00
verwaest@chromium.org
e6721cdcb4 Fix StoreIsUninitialized, and add Soft Deopt if keyed store is uninitialized.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 07:52:57 +00:00
adamk@chromium.org
25ca62b6ad HasRealIndexedProperty doesn't work on JSGlobalProxy
HasRealIndexedProperty didn't unwrap the JSGlobalProxy and therefore always
returned false.

BUG=257748
R=adamk@chromium.org, rossberg@chromium.org

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

Patch from Adam Barth <abarth@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 19:03:58 +00:00
bmeurer@chromium.org
695b18c050 Turn merge removable simulates into a proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:34:28 +00:00
dslomov@chromium.org
5eb63e483d Change DataView accessors behavior for insufficient args.
ES6 spec for DataView is not fully finished, but Blink, WebKit and
Firefox agree in that for DataView use of getters/setters with no
arguments should result in exceptions, while undefined offset argument
is the same as zero.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:18:59 +00:00
verwaest@chromium.org
6efe8ca229 Flag rewriting an IC while writing to a global constant property as a failure caused by the constant property turning mutable.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:06:30 +00:00
olivf@chromium.org
e84649d85e Fix unary op type feedback.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:03:00 +00:00
verwaest@chromium.org
d1155a1f09 Revert "Allow NORMAL ICs to go polymorphic."
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:00:48 +00:00
olivf@chromium.org
01b4c2831e Use static_cast instead of reinterpret_cast
BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:00:08 +00:00
rodolph.perfetta@gmail.com
762157d697 ARM: Implement memcpy using NEON.
Add support for a few NEON and ARM SIMD instructions and use them for various
memcpy operations.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:32:39 +00:00
palfia@homejinni.com
c04a72e76b MIPS: Replace custom builtin invocation instructions by a generic version.
Port r15582 (585c121)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:26:38 +00:00
verwaest@chromium.org
51aa0c13da Allow NORMAL ICs to go polymorphic.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:24:15 +00:00
danno@chromium.org
5bace7178d Prepare push to trunk. Now working on version 3.20.5.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 14:49:05 +00:00
bmeurer@chromium.org
5664bcaed3 Refactor compute minus zero checks into a proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 14:08:19 +00:00
bmeurer@chromium.org
854e9b99fb Insert HTrapAllocationMemento only when required for TransitionElementsKindStub.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 13:24:51 +00:00
verwaest@chromium.org
cc877e4836 Turn polymorphic calls using the same prototype monomorphic.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 13:05:41 +00:00
loislo@chromium.org
487a61934f Improve test-cpu-profiler.cc tests stability
The tests sometimes fail on bots as they don't have time to collect enough samples. This change makes them use counter of samples taken when v8 is either in JS or EXTERNAL state and repeat sampling until desired threshold is reached.

BUG=v8:2628
R=loislo@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:56:58 +00:00
mvstanton@chromium.org
448b268962 Revert "Calls to HCheckFunction can be eliminated if the value is an HConstant"
This reverts commit 3f96122cc572f7a0b638c30f65328c3cb3666795.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:19:37 +00:00
bmeurer@chromium.org
bdff9c70b8 Use BuildGrowElementsCapacity for the TransitionElementsKind stub.
R=danno@chromium.org, dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:19:02 +00:00
verwaest@chromium.org
22d7a85519 Unify Count Operation assignment with other assignments
This relands 15578, disables 1 test in harmony observe re bug v8:2774

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:02:18 +00:00
olivf@chromium.org
9a61947869 Fix missing spaces
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:01:29 +00:00
olivf@chromium.org
c5f20ef8dc Type::GetName(...) for inspecting Types in the debugger
BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 11:20:00 +00:00
jochen@chromium.org
865ce5806f Factor out toolset definitions in a separate gypi file
That way, third-party libraries use the correct toolset settings.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 11:15:16 +00:00
palfia@homejinni.com
7c8883f3ce MIPS: Adjust default Heap sizes.
This change decreases the default Heap sizes on MIPS (sets the
same sizes as on Android).

Most MIPS hw has smaller RAM size than 700MB, which can lead
to test failures, if a test does not set the  Heap sizes explicitly
(like cctest/test-mark-compact/MarkCompactCollector).

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 10:01:30 +00:00
olivf@chromium.org
857178ad23 Replace custom builtin invocation instructions by a generic version
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 09:02:23 +00:00
dslomov@chromium.org
6071894047 Revert "Unify the Count Operation assignment with other assignments."
This reverts commit r15578.

This change made mjsunit/harmony/object-observe.js flaky.

TBR=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 07:53:16 +00:00
dslomov@chromium.org
cfa91762ac Allow parameterless typed array constructors.
ES6 spec tacitly allows them, and they are allowed in Firefox and in
WebKit/Blink.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 19:34:21 +00:00
verwaest@chromium.org
5eeed4636d Unify the Count Operation assignment with other assignments.
This does not enable inlining of setters (yet).

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 17:08:47 +00:00
palfia@homejinni.com
b7a2c88f0f MIPS: Do not omit the write-barrier if the input value is a smi.
Port r15573 (3954d53)

Original commit message:
ARM: Do not omit the write-barrier if the input value is a smi.
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.

BUG=chromium:254570

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 15:58:31 +00:00
palfia@homejinni.com
17e228d3dd MIPS: Implement Polymorphic Store ICs.
Port r15566 (a76585e)

Original commit message:
- Makes a common superclass for Load and Store stub compiler.
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 15:54:43 +00:00
mvstanton@chromium.org
3f1fc1d3ab Bugfix: AllocationSite objects need to be walkable by the heap snapshot
generator.

BUG=
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 14:16:59 +00:00
yangguo@chromium.org
b99ca1ab12 Do not implicitly convert receivers for builtin functions when inspecting frames.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 13:58:11 +00:00
verwaest@chromium.org
a1dfbc4627 ARM: Do not omit the write-barrier if the input value is a smi.
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.

BUG=chromium:254570
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 12:31:59 +00:00
jochen@chromium.org
518ca395cc Initialize ICU data files in d8 and disable i18n for other code samples
BUG=v8:2745
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 12:26:07 +00:00
rossberg@chromium.org
189c0782d3 Unrevert^2 "Derive synthetic type bounds for expressions""
Reenables https://codereview.chromium.org/17842004 (again).

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 11:48:47 +00:00
verwaest@chromium.org
125b7d0848 Add support to turn polymorphic loads from the same prototype into a monomorphic load.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 09:59:23 +00:00
hpayer@chromium.org
42c82d5e4f Do not iterate the new space on marking deque overflow.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:40:34 +00:00
verwaest@chromium.org
a9fd01d567 - Makes a common superclass for Load and Store stub compiler.
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:22:41 +00:00
jochen@chromium.org
c2b039970e Don't use the identifiers TRUE and FALSE
icu uses the same identifiers, so we can't just #undef them

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 07:19:51 +00:00
palfia@homejinni.com
6edaa525eb MIPS: Fix debug mode failures introduced by r15561.
The commit r15561 introduced a lot of debug mode test failures
on MIPS. This change solves these failures by making
the FP-saved version of StoreBufferOverflowStub available
at snapshot time. This stub was added to ARM by commit r14359.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 00:00:15 +00:00
palfia@homejinni.com
0565ca5604 MIPS: Rename AllocationSite::payload to AllocationSite::transition_info
Port r15556 (3cd37fff)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 18:00:24 +00:00
palfia@homejinni.com
82d8580215 MIPS: Bugfix: The general array constructor stub did not handle the case properly when it is called with a function pointer in the type cell, instead assuming that an AllocationSite object should be present.
Port r15555 (262c081)

Original commit message:
The case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.

A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 17:58:03 +00:00
palfia@homejinni.com
28d1314362 MIPS: Create AllocationSite objects, pointed to by AllocationSiteInfo.
Port r15545 (8cf04c4)

Original commit message:
This creates a platform where we can do additional things with allocation sites,
other than just aid in reducing array transitions.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 17:01:12 +00:00
rossberg@chromium.org
b04abd892f Fix stupidity
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:41:06 +00:00
rossberg@chromium.org
65170b3b9e Revert^2 "Derive synthetic type bounds for expressions""
Reverts https://codereview.chromium.org/17842004 (again), due to SS regression.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:38:39 +00:00
verwaest@chromium.org
b5f63ae659 Revert "Introduce a handle zapping setting, and enable it by default for release and debug" due to performance impact.
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:28:25 +00:00
jochen@chromium.org
ae2709f800 Fix an implicit cast from int64 to double in the i18n extension
On MSVS, this throws an error

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:22:12 +00:00
mvstanton@chromium.org
23695eb86e Rename AllocationSite::payload to AllocationSite::transition_info
BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:00:12 +00:00
mvstanton@chromium.org
c1e19bfc35 Bugfix: The general array constructor stub did not handle the case
properly when it is called with a function pointer in the type cell,
instead assuming that an AllocationSite object should be present. The
case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.

A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:54 +00:00
ulan@chromium.org
2c33325114 Fix estimation of released pages when collecting evacuation candidates.
Do at least two GCs in LowMemoryNotification.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:33 +00:00
rossberg@chromium.org
1d51b7a760 Unrevert "Derive synthetic type bounds for expressions"
Reenables https://codereview.chromium.org/17842004

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 13:19:58 +00:00
rossberg@chromium.org
2461d2a540 Add Type::cast
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 13:07:41 +00:00
ulan@chromium.org
7ab931ee62 Fix early exit condition for LowMemoryNotification.
When computing next_gc_likely_to_collect_more do not take into account already
free nodes in PostGarbageCollectionProcessing.

This reduces the number of full GC in LowMemoryNotification from 7 to ~2.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:51:34 +00:00
jochen@chromium.org
ab5addd86d Introduce a handle zapping setting, and enable it by default for release and debug
The checks are split out from "extra checks" which are too expensive to
turn on by default.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:29:55 +00:00
jkummerow@chromium.org
f0811f4e6f Fix and cleanup can_be_minus_zero computation
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:15:24 +00:00
mvstanton@chromium.org
67d9051bcd Create AllocationSite objects, pointed to by AllocationSiteInfo.
This creates a platform where we can do additional things with allocation sites,
other than just aid in reducing array transitions.

BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 10:02:16 +00:00
yangguo@chromium.org
c1c10b452f Remove bogus assertion in parallel recompilation.
Functions that are optimized by the parallel thread and ready for installing
are not necessarily marked as in-recompilation-queue. For example, OSR could
have replaced the code by optimized code.

R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:29:49 +00:00
bmeurer@chromium.org
47df386841 Turn the representation changes into a proper HPhase.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:02:09 +00:00
mvstanton@chromium.org
eea586f2a1 Calls to HCheckFunction can be eliminated if the value is an HConstant
function, and that function handle matches the target handle.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:00:59 +00:00
bmeurer@chromium.org
99f171a128 Turn redundant bounds checks elimination into a proper HPhase.
R=dslomov@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:36:28 +00:00
mstarzinger@chromium.org
a634b527fb Prepare push to trunk. Now working on version 3.20.4.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:35:11 +00:00
bmeurer@chromium.org
b899185790 Turn infer types into proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:33:03 +00:00
bmeurer@chromium.org
e5b69658e4 Turn redundant phi elimination into proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:18:29 +00:00
hpayer@chromium.org
6c4594b7cd Refactor MacroAssembler::Allocate a little bit for X64
R=hpayer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:10:12 +00:00
bmeurer@chromium.org
5fd94c9ba1 Turn stack check elimination into proper HPhase.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 07:03:57 +00:00
loislo@chromium.org
5571dc4273 CPUProfiler: Improve line numbers support in profiler.
1) report line number even if a script has no resource_name (evals);
  a) do that for already compiled functions in log.cc;
  b) do that for fresh evals in compiler.cc;

2) Implement the test for LineNumbers and make it fast and stable, otherwise we have to wait for tick samples;
  a) move processor_->Join() call into new Processor::StopSynchronously method;
  b) Process all the CodeEvents even if we are stopping Processor thread;
  c) make getters for generator and processor;

3) Fix the test for Jit that didn't expect line numbers;

4) Minor refactoring:
  a) in ProcessTicks;
  b) rename enqueue_order_ to last_code_event_id_ for better readability;
  c) rename dequeue_order_ to last_processed_code_event_id_ and make it a member for better readability;

BUG=
TEST=test-profile-generator/LineNumber
R=jkummerow@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-07 11:42:30 +00:00
bmeurer@chromium.org
17e58e8198 Turn dead code elimination into a proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-07 06:00:15 +00:00
yurys@chromium.org
696090196d Delete deprecated CPU profiler code that supports filtering by security token
The methods that allow to filter CPU profile by security token were introduced to support console.profiles in WebKit. Now that console.profiles is removed and corresponding V8 API methods have been deprecated in 3.19 branch(https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h) it is safe to remove all that code.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-06 09:12:09 +00:00
palfia@homejinni.com
a925b6b8de MIPS: Refactoring and cleanup of control instructions.
Port r15513 (6f50861)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 16:13:32 +00:00
palfia@homejinni.com
79ce581420 MIPS: Generate StoreGlobal stubs with Hydrogen.
Port r15512 (bdf9918)

Original commit message:
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 14:51:57 +00:00
palfia@homejinni.com
075863538b MIPS: Convert UnaryOpStub to a HydrogenCodeStub.
Port r15506 (d0ea1f6)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 14:48:50 +00:00
yangguo@chromium.org
fa001d1b6a Refactored code a bit to improve StringReplace performance
1. Use inline macro to mitigate the side effect emulation overhead
2. Refactor Zone::DeleteAll() to merge two loops together

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

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 12:57:38 +00:00
yangguo@chromium.org
a3b6452d02 Unload debugger on isolate deinit.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 12:52:20 +00:00
danno@chromium.org
bd50e6d38f Refactoring and cleanup of control instructions
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:40:14 +00:00
danno@chromium.org
345cc98a25 Generate StoreGlobal stubs with Hydrogen
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.

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

Committed: http://code.google.com/p/v8/source/detail?r=15419

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:34:02 +00:00
dslomov@chromium.org
7e0ee5301e Add internal fields to JSArrayBufferViews (JSTypedArray and JSDataView)
In Blink, JSTypedArray and JSDataView objects act as "wrappers" for C++
objects. Wrapping protocol in Blink requires all wrapper JavaScript objects
to have a certain amount of internal fields that Blink uses for
book-keeping (essentially a pointer to C++ object and some type
information). This change adds those internal fields to JSTypedArray and
JSDataView, in a similiar way to how it is done for JSArrayBuffer.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:12:36 +00:00
yangguo@chromium.org
02674ee414 Keep two empty lines between declarations for cpp files
R=yangguo@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
mstarzinger@chromium.org
709600afc3 Switch to RETURN_IF_EMPTY_HANDLE for empty handle checks.
This makes sure that every place where we assume an empty handle is
indicating a pending exception gets asserted accordingly.

R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:49:53 +00:00
mstarzinger@chromium.org
328191d093 Handlify GlobalObject::EnsurePropertyCell method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:38:29 +00:00
danno@chromium.org
d00a14392d Add trampoline to enable pointer -> handle code calls
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:36:11 +00:00
olivf@chromium.org
240c7aced9 Convert UnaryOpStub to a HydrogenCodeStub
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:26:22 +00:00
rossberg@chromium.org
437f8b0c24 Unrevert "Remove BinaryOp::result_type""
Reenables https://code.google.com/p/v8/source/detail?r=15265

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:49:37 +00:00
rossberg@chromium.org
929e193fc2 Tweak error message
R=yangguo@chromium.org
BUG=v8:2758

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:31 +00:00
jkummerow@chromium.org
7456e290f3 Fix stack alignment corruption for MinGW32 build
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>

BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org

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

Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:17 +00:00
hpayer@chromium.org
8983f669e4 Set GVN ChangesNewSpacePromotion for OSR Entry.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:17:30 +00:00
jkummerow@chromium.org
c255fba681 Merge two lines into one for V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch}
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:15:32 +00:00
machenbach@chromium.org
deefeb15d9 Prepare push to trunk. Now working on version 3.20.3.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 07:05:12 +00:00
bmeurer@chromium.org
8767fdbb28 Turn range analysis into proper HPhase.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 19:25:16 +00:00
yurys@chromium.org
44981e4f5e Remove deprecated heap profiler methods from V8 public API
v8::HeapProfiler::FindHeapSnapshot was already deprecated when 3.19 branch was created (https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h).

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:34:07 +00:00
alph@chromium.org
cc97192cb1 Change the type of system root nodes in heap snapshot to kSynthetic
R=mstarzinger@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:18 +00:00
yurys@chromium.org
53cf35405a Remove #include "heap-snapshot-generator-inl.h" from v8.h
This reduces number of dependent .cc files to 9 (was whole v8).

BUG=None
R=loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:12 +00:00
palfia@homejinni.com
d64472814a MIPS: Fix bug in StringConstructCode builtin.
BUG=

TEST=webkit/dfg-to-string-bad-toString, webkit/dfg-to-string-bad-valueOf,
webkit/dfg-to-string-int-or-string, webkit/dfg-to-string-side-effect,
webkit/dfg-to-string-bad-toString, webkit/dfg-to-string-bad-valueOf,
webkit/dfg-to-string-toString-in-string, webkit/dfg-to-string-int,
webkit/dfg-to-string-valueOf-in-string

Review URL: https://codereview.chromium.org/18668004
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 15:19:03 +00:00
titzer@chromium.org
bddf08b0b1 Factor out OSR-related graph-building functionality from hydrogen.cc.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 09:20:07 +00:00
olivf@chromium.org
950a372834 Revert "Convert UnaryOpStub to a HydrogenCodeStub"
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin.

BUG=
R=danno@chromium.org, machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 19:57:25 +00:00
yurys@chromium.org
282926a760 Fix Mac compilation after r15484
BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 17:26:01 +00:00
yurys@chromium.org
9ef762b683 Do not store fp and sp values in TickSample
Their values are not used neither by the tick processor nor by CpuProfiler so it is just a waste of space.

TickSample used to be a transport for grabbed register values to TickSample::Trace, now they are passed in a special structure RegisterState which is allocated on the stack for the sampling period.

Some common pieces were moved from platform-dependent code into Sampler::SampleStack and TickSample::Init.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 16:20:59 +00:00
jkummerow@chromium.org
91be57a469 Revert "Fix stack alignment corruption for MinGW32 build"
due to compile failures.

This reverts r15480.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:45:57 +00:00
yurys@chromium.org
678c9dc940 Remove #include "cpu-profiler-inl.h" from v8.h
This significantly reduces amount of files to be recompiled after changes in cpu-profiler.h and its dependencies.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:39:18 +00:00
jkummerow@chromium.org
77c582d253 Format stack layout comments for X64
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:36:49 +00:00
jkummerow@chromium.org
45681dbd76 Fix stack alignment corruption for MinGW32 build
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>

BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org

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

Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:34:50 +00:00
jkummerow@chromium.org
84833a59ba Mark i18n functions as native and set proper names
BUG=v8:2745
R=jkummerow@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:30:27 +00:00
mstarzinger@chromium.org
5a71b17379 GDBJIT: Remove codes when they are garbage collected.
R=mstarzinger@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:29:59 +00:00
jkummerow@chromium.org
b89693572a Fix typo in api.cc
BUG=v8:2745
R=jkummerow@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:27:47 +00:00
mstarzinger@chromium.org
0a6b0645cf Fix GDBJIT compilation on Mac after r15467.
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:58:27 +00:00
olivf@chromium.org
0d2fed8f26 Convert UnaryOpStub to a HydrogenCodeStub
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:53 +00:00
mstarzinger@chromium.org
45264ffbf6 Fix compilation on x64 after r15466
R=mstarzinger@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:21:21 +00:00
yurys@chromium.org
559e1d4540 Correctly report stack trace when current function is FunctionApply builtin
When pc is inside FunctionApply builtin function the top frame may be either
2) Internal stack frame created by FunctionApply itself.
In this case we know its caller's pc and can correctly resolve calling function.
1) Frame of the calling JavaScript function that invoked .apply(). In this case we have no practical reliable way to find out the caller's pc so we mark the caller's frame as 'unresolved'.

All this logic is implemented in ProfileGenerator. SafeStackFrameIterator is extended to provide type of the current top stack frame (iteration actually starts from the caller's frame as we know top function from pc).

BUG=252097
R=jkummerow@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:04:37 +00:00
mstarzinger@chromium.org
13b60ec639 Fix GDBJIT for Linux after r15460.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:57:38 +00:00
bmeurer@chromium.org
e3f34a58b2 Reintroduce runtime zone to Isolate.
In case tcmalloc is not being used, the malloc()/free() overhead
can be significant for several runtime functions like StringReplace.
Therefore we reintroduce the runtime_zone into Isolate and reenable
the segment caching functionality of Zone.

There's now also a simpler version of ZoneScope w/o nesting capabilities.

BUG=v8:2759
R=danno@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:40:30 +00:00
jkummerow@chromium.org
56ab3e3404 Import the v8-i18n extension into v8
This adds the gyp flag v8_enable_i18n_support (off by default), and the
v8 flag FLAG_enable_i18n (on by default, but without effect if
v8_enable_i18n_support is off).

BUG=v8:2745
R=cira@chromium.org, danno@chromium.org, jkummerow@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:22:29 +00:00
yangguo@chromium.org
f23ed09eef Fix small mistake in d8.js.
R=mvstanton@chromium.org
BUG=v8:2756

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 10:38:20 +00:00
yangguo@chromium.org
ae126e1231 Log deopts with --log-timer-events.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 10:10:27 +00:00
mstarzinger@chromium.org
9bd3128736 Don't return frame by reference in ProcessTopOptimizedFrame.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 09:47:22 +00:00
danno@chromium.org
57f46c0190 Make MachO gdbjit support compile again
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 08:29:46 +00:00
jkummerow@chromium.org
de80207a4b Fix default type feedback returned from the oracle
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 16:31:39 +00:00
mstarzinger@chromium.org
e67fb1e1fe Handlify JSObject::DefineAccessor method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 16:24:23 +00:00
yurys@chromium.org
b0943ce158 Use stored Isolate pointer instead of Isolate::Current()
Fixed a couple of places where stored pointer to the isolate can be used instead of reading from thread local storage.

BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:44:30 +00:00
mstarzinger@chromium.org
6bde251534 Handlify JSObject::SetPrototype method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:32:46 +00:00
titzer@chromium.org
63abcc515b Remove HFixedArrayBaseLength instruction and replace with regular HLoadNamedField.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:31:17 +00:00
yangguo@chromium.org
15c28b8006 Fix debuggersupport=off build.
R=ulan@chromium.org
BUG=v8:2754

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:30:33 +00:00
ulan@chromium.org
74d147a25d Enable weak embedded maps in optimized code.
If the top optimized code in call stack is at the point that does not support
deoptimization, then treat the maps in the code as strong pointers.

Note that other optimized code in call stack must support deoptimization
because of the call instruction with side-effects.

BUG=217858,v8:2073
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:15:58 +00:00
jkummerow@chromium.org
a2d4cf9de7 Not consider the use representation in unintiliazed ArrayLiteral which always requires SMI
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:00:13 +00:00
jkummerow@chromium.org
83fb6823db Prepare push to trunk. Now working on version 3.20.2.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 14:41:58 +00:00
bmeurer@chromium.org
ed12ed4793 Fix invalid condition introduced with revision 15441.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 12:16:30 +00:00
rossberg@chromium.org
731a2aba34 Revert "Remove BinaryOp::result_type"
This reverts https://code.google.com/p/v8/source/detail?r=15265, due to performance regression.

TBR=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 11:57:43 +00:00
rossberg@chromium.org
aa2ebf6da7 Revert "Derive synthetic type bounds for expressions"
TBR=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 11:50:56 +00:00
bmeurer@chromium.org
f60609bd1b Turn UInt32 analysis into a proper HPhase.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 10:53:08 +00:00
yangguo@chromium.org
92523a4553 Join threads after stopping.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 09:04:45 +00:00
bmeurer@chromium.org
aadcf381db Turn escape analysis into a proper HPhase.
R=danno@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 08:29:33 +00:00
bmeurer@chromium.org
7a820bec9d Properly cleanup the transcendental subcaches.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 08:27:27 +00:00
yurys@chromium.org
4c5508b42f Correctly report callstack when current function is FunctionCall builtin
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.

This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.

BUG=None
TBR=loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 07:51:09 +00:00
bmeurer@chromium.org
75bb6b9ed8 Cleanup the default Isolate's entry stack.
This adds an ASSERT that the entry_stack_ of the Isolate is
empty upon destruction. The default Isolate is an exception
here, as it may still contain an entry stack item upon
destruction.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 07:21:07 +00:00
yurys@chromium.org
c4b6e08ac3 Revert "Correctly report callstack when current function is FunctionCall builtin"
This reverts commit r15426. The new test fails in Debug mode.

BUG=None
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:26:07 +00:00
loislo@chromium.org
a0140093ba CPUProfiler: propagate scriptId to the front-end
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.

BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org, yurys@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=15429

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:14:01 +00:00
palfia@homejinni.com
64a56607fb MIPS: Fix register usage in ProfileEntryHookStub
Different register must be used to pass the test on target hardware.

BUG=
TEST=cctest/test-api/SetFunctionEntryHook

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 21:05:03 +00:00
loislo@chromium.org
f470bbbb4f Revert "CPUProfiler: propagate scriptId to the front-end"
This reverts commit d575f6bc8b262dac08f02913ae6e7c504c9dd900.

Check is failing on debug bots.

TBR= yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 19:22:45 +00:00
loislo@chromium.org
bc9f6c607f CPUProfiler: propagate scriptId to the front-end
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.

BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:15:57 +00:00
yangguo@chromium.org
4afe85e42f Also delete optimization jobs in the output queue when stopping thread.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:59 +00:00
danno@chromium.org
77c20c30a3 Revert r15419: "Generate StoreGlobal stubs with Hydrogen"
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:21 +00:00
yurys@chromium.org
91dc6dd632 Correctly report callstack when current function is FunctionCall builtin
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.

This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 14:57:58 +00:00
rossberg@chromium.org
fd484c9df9 Derive synthetic type bounds for expressions
Currently synthesizes Smi as the lower bound for numeric operations (except for +, which might result in a string). That would need to change in places where we want to track constants as type feedback.

Does not do anything about variables yet.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:59:18 +00:00
mstarzinger@chromium.org
493d1f1c21 Implement WeakMap.prototype.clear function.
R=rossberg@chromium.org
BUG=v8:2753
TEST=mjsunit/harmony/collections

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:56:48 +00:00
prybin@chromium.org
488da00542 Debug: support breakpoints set in the middle of statement (try #2 after rollback)
Review URL: https://codereview.chromium.org/18349004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:44:10 +00:00
danno@chromium.org
a3bce19868 Generate StoreGlobal stubs with Hydrogen
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:22:13 +00:00
prybin@chromium.org
fe22b45965 Revert "Debug: support breakpoints set in the middle of statement"
Review URL: https://codereview.chromium.org/18326007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:05:21 +00:00
mstarzinger@chromium.org
de07db147f Ensure CheckInitialized is present independent of define.
This makes sure that the same symbols are present, independent of which
defines have been used while building V8. Otherwise only embedders with
compatible defines would be able to link against that binary.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:57:15 +00:00
prybin@chromium.org
f997bacb16 Debug: support breakpoints set in the middle of statement
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:54:13 +00:00
yurys@chromium.org
0ac0edb707 Test that profiler is stopped when isolate is being disposed
The only way to get v8::CpuProfiler instance in the V8 public API is to call v8::Iolate::GetCpuProfiler(). The method will return NULL if the isolate has not been initialized yet or has been torn down already. It is the client's reponsibility to make sure that CPU profiling has been stopped before disposing of the isolate.

This CL adds a test for this and several ASSRTS enforcing that assumptions. This allowed to be sure that heap is always setup when CPU profiling is being started. Based on that the number of places where already compiled functions are reported to the profiler event processor boils down to the single place (CpuProfiler::StartProcessorIfNotStarted). I'm going to rely on this assumption in further changes.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:32:52 +00:00
bmeurer@chromium.org
c146178079 Plug leaked mutexes in OptimizingCompilerThread.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:30:26 +00:00
bmeurer@chromium.org
d7618796f6 No need to pass profiles to ProfilerEventsProcessor.
Following up on https://codereview.chromium.org/18353002, there's
no need to pass the profiles to ProfilerEventsProcessor's constructor.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:24:26 +00:00
bmeurer@chromium.org
73d32d2fb7 Fix compiler error about unused profiles_ field in ProfilerEventsProcessor.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:11:29 +00:00
bmeurer@chromium.org
769f4a7033 Plug leaked string stream debug object cache in Isolate.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:07:53 +00:00
yangguo@chromium.org
cc2f01d31f Restore message when rethrowing in TryCatch.
Based on a patch contributed by Andrew Paprocki <andrew@ishiboo.com>.

R=jkummerow@chromium.org
BUG=
TEST=cctest/test-api/TryCatchNestedSyntax

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:54:39 +00:00
loislo@chromium.org
ca90f4b058 CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.

This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.

BUG=255392
TEST=existing tests
R=yangguo@chromium.org, yurys@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=15405

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:12:03 +00:00
loislo@chromium.org
baa3a7e47b Revert "CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls."
This reverts commit 76adf84b83ec3c0b261cbc29369ce4ac83f9d002.

windows compilation failed

BUG=none
TBR=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:51:44 +00:00
loislo@chromium.org
eb14637367 CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.

This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.

BUG=255392
TEST=existing tests
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:39:15 +00:00
yangguo@chromium.org
daf4101aa4 Fix infinite loop in regress-opt-after-deopt.
%CompleteOptimization attempts to install optimized functions
that the parallel thread has put on the output queue, as long as
the function is marked with a builtin.  However, activating the
debugger will set all functions to the lazy recompile builtin,
without the function being on the parallel recompilation pipeline.
So we wait for the function to finish parallel recompilation
while it's marked by a builtin that's unrelated to parallel
recompilation.

R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:14:15 +00:00
palfia@homejinni.com
b2f6ef4f98 MIPS: Fix wrong checkin.
This commit fixes r15396.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 19:52:44 +00:00
palfia@homejinni.com
ecfdd87c8b MIPS: Improved function entry hook coverage.
Port r15384 (d553efd)

Original commit message:
Adds more coverage for function entry hook, sufficient to capture profiles
that are contiguous from C++, through JS and back out to C++.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 18:34:08 +00:00
palfia@homejinni.com
081a9d1791 MIPS: Hydrogen array constructor cleanup and improvements.
Port r15383 (3e90aaf)

Original commit message:
* Cleanup of LCallNewArray::PrintDataTo() method
* Created HCallNewArray::PrintDataTo()
* Created many more tests in array-constructor-feedback.js
* Removed redundant instructions in
GenerateRecordCallTarget
* Bugfix in CreateArrayDispatchOneArgument: on a call to
new Array(0), we'd like to set the type feedback cell to
a packed elements kind, but we shouldn't do it if the
cell contains the megamorphic sentinel.
* When used from crankshaft, ArrayConstructorStubs can
avoid verifying that the function being called is the
array function from the current native context, relying
instead on the fact that crankshaft issues an
HCheckFunction to protect the constructor call. (this
new minor key is used in LCodeGen::DoCallNewArray(), and
influences code generation in
CodeStubGraphBuilderBase::BuildArrayConstructor()).
* Optimization: the array constructor specialized for
FAST_SMI_ELEMENTS can save some instructions by looking
up the correct map on the passed in constructor, rather
than indexing into the array of cached maps per element
kind.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 17:16:17 +00:00
mstarzinger@chromium.org
c28a6c9ea2 Use HInstructionIterator more broadly for hydrogen.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:31:11 +00:00
mstarzinger@chromium.org
8b976da60e First simplistic implementation of escape analysis.
R=jkummerow@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:09:54 +00:00
jkummerow@chromium.org
05b94f13c8 Add %_DebugBreakInOptimizedCode() pseudo function call to insert int3/stop instructions into optimized code
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:48:38 +00:00
jkummerow@chromium.org
c7a9bffbcf Clean up the usage of V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch}
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:34:48 +00:00
jkummerow@chromium.org
d8fbf59a7d Use macros instead of using number directly for x64
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:26:01 +00:00
jkummerow@chromium.org
2fb7ab5530 Introduce a notion of "v8_code" in gyp config files.
This allows for compiling third-party code (such as ICU) with less
strict flags.

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

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:22:46 +00:00
mstarzinger@chromium.org
f1f628ea09 Prepare push to trunk. Now working on version 3.20.1.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:58:15 +00:00
danno@chromium.org
1642f32d1c Improved function entry hook coverage
Adds more coverage for function entry hook, sufficient to capture profiles that are contiguous from C++, through JS and back out to C++.

R=danno@chromium.org

Committed: http://code.google.com/p/v8/source/detail?r=15361

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

Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:40:41 +00:00
mvstanton@chromium.org
83519ec87a Hydrogen array constructor cleanup and improvements
* Cleanup of LCallNewArray::PrintDataTo() method
* Created HCallNewArray::PrintDataTo()
* Created many more tests in array-constructor-feedback.js
* Removed redundant instructions in
  GenerateRecordCallTarget
* Bugfix in CreateArrayDispatchOneArgument: on a call to
  new Array(0), we'd like to set the type feedback cell to
  a packed elements kind, but we shouldn't do it if the
  cell contains the megamorphic sentinel.
* When used from crankshaft, ArrayConstructorStubs can
  avoid verifying that the function being called is the
  array function from the current native context, relying
  instead on the fact that crankshaft issues an
  HCheckFunction to protect the constructor call. (this
  new minor key is used in LCodeGen::DoCallNewArray(), and
  influences code generation in
  CodeStubGraphBuilderBase::BuildArrayConstructor()).
* Optimization: the array constructor specialized for
  FAST_SMI_ELEMENTS can save some instructions by looking
  up the correct map on the passed in constructor, rather
  than indexing into the array of cached maps per element
  kind.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:16:14 +00:00
alph@chromium.org
7b57b624d1 Heap snapshot: Update user roots definition.
Do not define an object as a user root if its context is not
present in Global handles.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 12:53:52 +00:00
bmeurer@chromium.org
e029039b69 Fix GCC 4.2 errors introduced with revision 15379.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 12:28:39 +00:00
bmeurer@chromium.org
382ec92f2a Make use of templatized convienience functions for adding Hydrogen instructions.
Building on the previous changes from https://codereview.chromium.org/18050004/
this patch makes even more use of the templatized functions for adding
Hydrogen instructions.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 11:44:16 +00:00
yangguo@chromium.org
85d7a36ee0 Abort optimization when debugger is turned on.
BUG=v8:2751
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 11:34:51 +00:00
yangguo@chromium.org
41cac47d57 Avoid data race in debug mode on the parallel thread.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 11:24:27 +00:00
jkummerow@chromium.org
bf632a8364 Fast-forward version number on bleeding_edge to 3.20.0
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 10:55:25 +00:00
bmeurer@chromium.org
f11af230e8 Refactor HInferRepresentation into an HPhase and use the phase zone.
Rename HInferRepresentation to HInferRepresentationPhase,
following naming scheme suggested by danno@chromium.org in
https://codereview.chromium.org/17458002

The HInferRepresentationPhase now uses the phase zone for all its
allocations.

Depends on https://codereview.chromium.org/17587008

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 07:40:35 +00:00
bmeurer@chromium.org
a46528e820 Fix zone usage within LAllocator.
Previously all allocations in the register allocator were done on the
chunk (and graph) zone, even those that did not need to survive past
the register allocation. Now only allocations that need to survive
use the chunk zone, all other allocations use a separate zone local
to the LAllocator.

Depends on https://codereview.chromium.org/18022002

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 07:36:43 +00:00
palfia@homejinni.com
ee67afee93 MIPS: The check for internalized strings relied on the fact that we had less than 64 distinct InstanceTypes.
Port r15358 (3af77be)

Original commit message:
The check for internalized strings relied on the fact that we had less
than 64 distinct InstanceTypes. We are hitting that boundary, so this
check needs to be more comprehensive. In fact, two bits need to be
tested: verify that kNotStringTag isn't set, and that kInternalizedTag
is set.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 19:19:48 +00:00
danno@chromium.org
eb2fc68835 Remove superfluous HInnerAllocatedObject in BuildEmitDeepCopy
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 16:07:55 +00:00
danno@chromium.org
5b1ccfb952 Type handling for special cases and optimization
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:31:49 +00:00
ulan@chromium.org
475131b2b9 Revert r15361 "Improved function entry hook coverage" because of ARM build error.
R=siggi@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:31:06 +00:00
hpayer@chromium.org
2957b2fdf8 Fix check style breakage.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:17:55 +00:00
yangguo@chromium.org
3ff7ab9ead Fix constructor call of relocation lock.
R=yangguo@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 14:44:36 +00:00
danno@chromium.org
8494f3bf25 Improved function entry hook coverage
Adds more coverage for function entry hook, sufficient to capture profiles that are contiguous from C++, through JS and back out to C++.

R=danno@chromium.org

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

Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 14:39:37 +00:00
danno@chromium.org
f95ddc8891 Add templatized convienience functions for adding hydrogen instructions
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 14:36:14 +00:00
danno@chromium.org
3b60d6de8e Make sure HCallNewArray uses right ElementsKind
Close a small gc window that exists between when a HNewArrayCall instruction is
created and the ElementsKind type feedback for the construction function is
accesses.

R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 14:22:07 +00:00
mvstanton@chromium.org
6aed526733 The check for internalized strings relied on the fact that we had less
than 64 distinct InstanceTypes. We are hitting that boundary, so this
check needs to be more comprehensive. In fact, two bits need to be
tested: verify that kNotStringTag isn't set, and that kInternalizedTag
is set.

BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:39:44 +00:00
danno@chromium.org
c35dbc30cb Generalize utilities to allow code templatization
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:36:15 +00:00
bmeurer@chromium.org
2f81a79d5a Refactor Hydrogen environment liveness analysis into an HPhase.
Rename EnvironmentSlotLivenessAnalyzer to HEnvironmentLivenessAnalysisPhase,
following naming scheme suggested by danno@chromium.org in
https://codereview.chromium.org/17458002

The environment slot liveness analysis now uses the phase zone for
all its allocations.

Depends on https://codereview.chromium.org/18034003

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:15:10 +00:00
bmeurer@chromium.org
32f5e099d4 Add templatized Run() method for Hydrogen phases.
Depends upon https://codereview.chromium.org/17657004

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:13:18 +00:00
bmeurer@chromium.org
dce010395d Turn zone_excess_limit_ into a constant.
The zone_excess_limit_ is not changed at runtime, and there seems to
be no obvious reason to do so in the future.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:10:43 +00:00
bmeurer@chromium.org
98786ae073 Refactor Hydrogen GVN into an HPhase and use the phase zone.
The HGlobalValueNumberer class is renamed to HGlobalValueNumberingPhase,
following the naming scheme suggested by danno@chromium.org in
https://codereview.chromium.org/17458002

The GVN phase now uses the phase zone for all its allocations.

Depends upon https://codereview.chromium.org/18022002

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:09:08 +00:00
bmeurer@chromium.org
073b1d1dfb Move phase_zone from CompilationInfo to CompilationPhase.
Each CompilationPhase has its own zone, used for phase local
allocations. The zone of CompilationInfo should only be used
for non phase local allocations.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:03:01 +00:00
bmeurer@chromium.org
63812f9dc3 Fix the compilation of gdbjit
R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 11:38:37 +00:00
yurys@chromium.org
52d848bce7 Extract StackFrameIteratorBase
This change introduces StackFrameIteratorBase which owns singleton frame instances and encapsulates some basic iterator functionality. It has two actual implementations: StackFrameIterator and SafeStackFrameIterator.

All logic specific to frame iteration at a random point (basically checks that fp and sp extracted from stack frames are within current stack boundaries) used only by CPU profiler is now concentrated in SafeStackFrameIterator.

Generic stack iteration used in all other places is put into StackFrameIterator. Also this iterator unlike SafeStackFrameIterator iterates through stack handlers.

StackAddressValidator and ExitFrameValidator classes were removed in favor of inline checks and simple methods.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 09:34:31 +00:00
yurys@chromium.org
4aeccdb23e Do not iterate stack handlers in SafeStackFrameIterator
CPU profiler doesn't use stack handlers so there is no need to iterate through them while traversing stack. This change SafeStackFrameIterator always iterate only frames and removes checks corresponding to the handlers iteration.

The problem described in the bug occurred because of a false assumption in SafeStackFrameIterator that if Isolate::c_entry_fp is not NULL then the top frame on the stack is always a C++ frame. It is false because we may have entered JS code again, in which case JS_ENTRY code stub generated by JSEntryStub::GenerateBody() will save current c_entry_fp value but not reset it to NULL and after that it will create ENTRY stack frame and JS_ENTRY handler on the stack and put the latter into Isolate::handler(top). This means that if we start iterating from c_entry_fp frame and try to compare the frame's sp with Isolate::handler()->address() it will turn out that frame->sp() > handler->address() and the condition in SafeStackFrameIterator::CanIterateHandles is not held.

BUG=252097
R=loislo@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 09:28:11 +00:00
dslomov@chromium.org
ef189ecd82 Do not allow invocation of ArrayBuffer and array buffer views' constructors as functions.
ES6 bug 695 (https://bugs.ecmascript.org/show_bug.cgi?id=695).
This never worked in WebKit, so no compatibility issues.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 07:42:08 +00:00
palfia@homejinni.com
90d0b6cd97 MIPS: Avoid Unnecessary Smi Checks.
Port r15344 (9fd1942)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 20:22:41 +00:00
olivf@chromium.org
21cd74eaa2 Avoid Unnecessary Smi Checks
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 17:37:55 +00:00
mstarzinger@chromium.org
df181f2c11 Remove obsolete free-space checks from MarkCompactCollector.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 16:37:15 +00:00
peter.rybin@gmail.com
f0c7bc37a9 Fix misleading names and comments in mute local variables debugger helper
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 16:18:00 +00:00
danno@chromium.org
00709075ea Add DependentCode to PropertyCells
R=mstarzinger@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 16:17:12 +00:00
loislo@chromium.org
3da5ba9ac3 CPUProfiler: Simplify CodeEntry constructor calls.
In almost all the places where we create CodeEntry we use default values.
Lets move them into arguments default values.

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

Committed: https://code.google.com/p/v8/source/detail?r=15333

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 16:04:25 +00:00
mstarzinger@chromium.org
bd0deb9443 Remove obsolete unchecked accessors in JSFunction.
R=hpayer@chromium.org
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 14:04:25 +00:00
bmeurer@chromium.org
9e0f0a73dc Get rid of ZoneScope completely.
There's no need to differentiate between an actual Zone and its
scope. Instead we bind the lifetime of the Zone memory to the
lifetime of the Zone itself, which is way easier to understand
than having to dig through the code looking for zone scopes.

Depends on https://codereview.chromium.org/17826004/

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 13:36:16 +00:00
bmeurer@chromium.org
8e9b934e7e Get rid of the ZoneScopeMode.
No one is using the DONT_DELETE_ON_EXIT mode for ZoneScopes anymore, so
we can safely assume that all ZoneScopes are DELETE_ON_EXIT now.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:54:12 +00:00
loislo@chromium.org
06200a3113 Revert "CPUProfiler: Simplify CodeEntry constructor calls."
This reverts commit a6cc1e3b563c0d0689da35dbf8163545c8146ddd.

One test starts failing on Windows.

BUG=none
TBR= yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:38:10 +00:00
jkummerow@chromium.org
3634b61d21 ia32: Restore missing temp register for LNumberTagU
BUG=v8:2692
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:03:22 +00:00
loislo@chromium.org
4292ac5932 CPUProfiler: Simplify CodeEntry constructor calls.
In almost all the places where we create CodeEntry we use default values.
Lets move them into arguments default values.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 09:55:33 +00:00
rossberg@chromium.org
e60acec321 Introduce Unsigned32 and RegExp types
Also, renamed Integer31 back to Smi, and Integer32 to Signed32.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 09:51:57 +00:00
titzer@chromium.org
bfa9fe95dc Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries.
Review URL: https://codereview.chromium.org/16381006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 08:43:27 +00:00
bmeurer@chromium.org
49b9ef269b Remove useless ZoneScopes from Parser.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 08:05:41 +00:00
svenpanne@chromium.org
a92d237948 Allow users of the V8 API to distinguish between unset and undefined HiddenValues
BUG=v8:2746
R=svenpanne@chromium.org

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

Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 08:00:05 +00:00
mvstanton@chromium.org
081134ecd1 Removed flag optimize-constructed-arrays.
This eliminates a large amount of hand-written assembly in the platforms.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 16:31:07 +00:00
loislo@chromium.org
53eb53f4af CPUProfiler: It is not clear why we are using Handle<Object> for scriptId. Lets flip it into Smi/int.
By the nature it is integer. So we can work with it as with Smi internaly and use int in the external API.

BUG=none
TEST=existing tests
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 14:57:47 +00:00
peter.rybin@gmail.com
42a10a9dfe Allow debugger evaluate expressions to mute local variables
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 13:48:43 +00:00
prybin@chromium.org
cecbe44e42 Provide list of step-in source positions in JS Debug API
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 13:42:44 +00:00
bmeurer@chromium.org
9f05d61a1d Split HPhase for Lithium and Hydrogen using common CompilationPhase base.
Add new base class CompilationPhase, which is the base for both HPhase, LPhase and LAllocatorPhase. HPhase is now for Hydrogen passes only, LPhase is for Lithium passes and LAllocatorPhase is for LAllocator phases.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 12:22:26 +00:00
alph@chromium.org
bd5fafd58a Handle AccessorPair struct in heap snapshot.
R=svenpanne@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 11:55:33 +00:00
olivf@chromium.org
eac9b2191b Fix to_boolean type feedback for unary and binary ops
BUG=
R=jkummerow@chromium.org, rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 11:49:46 +00:00
yurys@chromium.org
c846dabcb0 Get rid of Isolate::safe_stack_iterator_counter
This change removes per-isolate counter of active SafeStackFrameIterators. The counter is used by stack frames implementations to avoid accessing pointers to heap objects when traversing stack for CPU profiler (so called "safe" mode). Each StackFrame instance is owned by single iterator and has a pointer to it so we can simply mark the iterator as "safe" or not and read the field in the stack frames instead of going into the isolate.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 10:09:19 +00:00
bmeurer@chromium.org
477f872c34 Fix GCC error about comma at end of enumerator list.
TBR=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 09:34:22 +00:00
bmeurer@chromium.org
66efb96621 Fix compilation error introduced with r15287.
REGEXP was added to Code::Kind after TO_BOOLEAN_IC, but NUMBER_OF_KINDS,
which is used as array size for table[] in ReportCodeKindStatistics, was
still TO_BOOLEAN_IC + 1 (indirectly via LAST_IC_KIND).

BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 09:09:25 +00:00
bmeurer@chromium.org
e7adf305fe Cleanup Code::Kind2String().
Use CODE_KIND_LIST() to automatically generate the case statements for
Code::Kind2String().

BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 08:51:49 +00:00
mstarzinger@chromium.org
6d92511162 Reland "Remove IsInitialized checks from inlined API functions."
The initialization sequence in Blink has been adapted to use explicit
isolate initialization instead of through calling v8::Null() as the
first API call.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 08:11:50 +00:00
hpayer@chromium.org
7ba980f2b1 Added pretenuring support for fast literal allocation in old data space.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 07:47:53 +00:00
yurys@chromium.org
ebdf62c238 Merge SafeStackTraceFrameIterator into SafeStackFrameIterator
SafeStackFrameIterator was used solely to implement SafeStackTraceFrameIterator. This CL simply merges them and updates usage of SafeStackTraceFrameIterator to use SafeStackFrameIterator (a bit shorter name).

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 07:14:06 +00:00
palfia@homejinni.com
63eff64fd5 MIPS: Fix mjsunit/regress/regress-2653.
Insert proper padding after lazy deoptimization points. This change
makes sure, that patching does not overwrite the code after the
lazy deoptimization point.

TEST=mjsunit/regress/regress-2653

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 00:09:32 +00:00
palfia@homejinni.com
55dbbbfd72 MIPS: Fix Kraken gaussian blur test regression.
The regression was introduced in r13848 by accidental removal of one
additional line.

TEST=
BUG=

Review URL: https://codereview.chromium.org/17570007
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 18:33:42 +00:00
palfia@homejinni.com
a24617a945 MIPS: Rename Literal::handle to Literal::value
Port r15280 (1a287b2)

Original commit message:
Just a completely mechanical change...

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 18:28:06 +00:00
mstarzinger@chromium.org
bd90e71b01 Fix ugly typo in HValue::UpdateRepresentation.
R=jkummerow@chromium.org
TEST=mjsunit/math-min-max --extra-flags="--gc-interval=500"

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 14:34:07 +00:00
svenpanne@chromium.org
6c879c8a30 Removed some useless/dead code regarding CompileTimeValues.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 14:26:32 +00:00
danno@chromium.org
a0f41ad31a In revision 15142, the V8_USE_UNSAFE_HANDLES define is removed.
So in the vtune support code ( in vtune-jit.cc file)v8::Handle<T* value> consturctor cannot be invoked directly.
We use "->ToString()" to create the Handle<String> object  to fix the compilation error.

R=danno@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 14:21:14 +00:00
dslomov@chromium.org
e6e0ee0708 Update typed arrays behavior to match ES6 rev 15. Remove TO_POSITIVE_INTEGER and throw on negative length arguments.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:58:52 +00:00
bmeurer@chromium.org
13a7c993d0 Add phase zone to CompilationInfo and use it in GVN pass.
The phase_zone of CompilationInfo is intended for local allocations that
are freed at the end of the phase.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:37:46 +00:00
yurys@chromium.org
264b7255e1 Move ExitFrame::ComputeStackPointer from frames-<arch>.cc to frames.cc
The method has identical implementation for all architectures. Moved it into frames.cc

Drive-by: deleted SafeStackFrameIterator::is_working_iterator_, SafeStackFrameIterator::iteration_done_ is used instead.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:27:48 +00:00
bmeurer@chromium.org
3481344df8 Drop (mis)use of HPhase in full code gen.
The full code generator is not a proper Hydrogen phase. The full code
gen ticks are tracked in a special member of HStatistics, so HPhase is
most probably misused at this point.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:25:44 +00:00
yangguo@chromium.org
c63a5255b4 Do not use deprecated MakeWeak in d8.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:15:07 +00:00
bmeurer@chromium.org
00f6a8903b Fix HStatistics::Print() output to fit into 80 columns.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:07:20 +00:00
loislo@chromium.org
1a15f8f768 CPUProfiler: Simplify logging part of CreateCodeEvent functions.
We have 5 overloaded functions with name CreateCodeEvent.
All these functions have many common parts. I'd like to eliminate the difference between them.

TEST=existing tests
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 12:55:19 +00:00
mstarzinger@chromium.org
b632a4be86 Deprecate one virtual marking visitor for mark-compact GC.
R=hpayer@google.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 12:39:02 +00:00
dslomov@chromium.org
4308fb462d API for DataView.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 11:23:50 +00:00
mstarzinger@chromium.org
48c16454b1 Revert "Remove IsInitialized checks from inlined API functions."
This reverts r15277 due to failures in layout tests. Apparently Blink
still initializes the Isolate by calling v8::Null() as the first API
function on some paths.

TBR=svenpanne@chromium.org
TEST=webkit:crypto/worker-random-values-concurrent.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 11:10:40 +00:00
rossberg@chromium.org
007837365d Rename Literal::handle to Literal::value
Just a completely mechanical change...

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 10:37:59 +00:00
yurys@chromium.org
a8a9fa807a Update the TSan-specific atomics implementation to match the current API.
BUG=128314

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

Patch from Alexander Potapenko <glider@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 09:35:30 +00:00
mstarzinger@chromium.org
9ef18efff6 Remove IsInitialized checks from inlined API functions.
R=marja@chromium.org, svenpanne@chromium.org
TEST=cctest/test-api

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 08:58:01 +00:00
loislo@chromium.org
9d95db6fad CPUProfiler: remove copy&paste from CodeCreateEvent.
This is the next patch on the way of simplifying profiler API.
It is extracting the common parts of the serialization process.

TEST=current test set
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 08:40:38 +00:00
yurys@chromium.org
f830fbea3c Simplify stack iterators implementation
In order to fix https://code.google.com/p/chromium/issues/detail?id=252097 I
need to change SafeStackTraceFrameIterator. Stack iterators hierarchy looks
excessively complicated and I'd like to flatten it a bit by removing some
intermediate classes. In particular there are two hierarchies sharing
JavaScriptFrameIteratorTemp<T> template for no good reason.

This change extracts some of JavaScriptFrameIteratorTemp functionality directly
into SafeStackTraceFrameIterator. This made it obvious that a few checks were
performed twice.

The rest of JavaScriptFrameIteratorTemp<T> is merged with
JavaScriptFrameIterator. Now that the class is not a template some of its
implementation is moved from frames-inl.h into frames.cc

So in this change I removed JavaScriptFrameIterator and
SafeJavaScriptFrameIterator. As the next step I'm going to merge
SafeStackFrameIterator into SafeStackTraceFrameIterator.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 08:38:37 +00:00
palfia@homejinni.com
ed4d3c8c66 MIPS: Use AST's type field and merge types for unary, binary & compare ICs.
Port r15264 (d4c3767)

Missing fixed_right_arg().has_value cases added also.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 20:31:06 +00:00
jkummerow@chromium.org
96e818136c Use kPointerSize to compute the size of StubCache::Entry for X64
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 16:19:51 +00:00
dslomov@chromium.org
91eb5f8d25 DataView implementation.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 13:02:38 +00:00
jkummerow@chromium.org
a4d2759d49 Distinguish times_8 and times_pointer_size for X64
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 12:57:19 +00:00
jkummerow@chromium.org
cbc8ed7110 HBoundsCheck shouldn't ignore Tagged input representations unconditionally
BUG=v8:2740
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 12:50:02 +00:00
yurys@chromium.org
7f1750580c V8 API: Add a missing NULL check into Isolate::GetCurrentContext().
There is a missing NULL check for: "internal_isolate->context() != NULL".
Right now before calling this method one should call v8::Context::InContext()
first to perform this check, otherwise we may crash. But this static method
will do this check on the current isolate, which may not be the same as a given one.

BUG=249655
R=yurys@chromium.org,mvstanton@chromium.org

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

Patch from Andrey Adaykin <aandrey@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 12:34:47 +00:00
rossberg@chromium.org
04e1278529 Remove BinaryOp::result_type
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 12:16:14 +00:00
rossberg@chromium.org
0977c60984 Use AST's type field and merge types for unary, binary & compare ICs
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 11:10:06 +00:00
yangguo@chromium.org
b7b92bd9ac Short-circuit embedded cons strings.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 09:24:30 +00:00
yangguo@chromium.org
cbf6244029 Use mutex instead of busy wait when installing optimized function.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 08:38:12 +00:00
yangguo@chromium.org
2e10e3e336 Clean up queued compilation tasks when quitting.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 08:37:05 +00:00
yurys@chromium.org
6f09cb471b Delete deprecated methods from v8-profiler.h
All these methods were already marked as V8_DEPRECATED in V8 Version 3.18.0 (see https://code.google.com/p/v8/source/browse/trunk/include/v8-profiler.h?r=14304) so it is time to delete them.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 07:56:22 +00:00
plind44@gmail.com
0bc8ef88dd MIPS: Let NaN flow as double into HBranch + some minor improvements
Port r15246 (cb18dce2)

BUG=
R=plind44@gmail.com

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

Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 02:43:13 +00:00
palfia@homejinni.com
54483c4880 MIPS: Generators: Avoid calling into runtime if operand stack is empty
Port r15240 (909f716e)

Original commit message:
This patch makes yield sites save the resume continuation and context
inline.  If the operand stack is empty, we can avoid a call into the
runtime.  This also makes the SuspendJSGeneratorObject runtime function
less magical: it just has to save the operand stack and stack handlers.

This speeds up the following case by a factor of 3 or so:

  function* until(n) {
    for (var i = 0; i < n; i++)
      yield i;
  }

  function sum(iter) {
    var sum = 0;
    for (var x of iter) sum += x;
    return sum;
  }

  for (var i = 0; i < 10000; i++) sum(until(1000))

Also, there is no more sentinel value as the generators will resume in
the right place already, allowing me to remove the hack added to the
--debug-code check in r14437.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 23:43:10 +00:00
palfia@homejinni.com
b58d0d2af7 MIPS: Lithium codegen should not pass around block_ids.
Port r15235 (95a844b)

Original commit message:
Rather encapsulate the basic block to assembly label mapping in the LInstruction.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 20:18:58 +00:00
danno@chromium.org
fd08ac7c26 Handle MONOMORPIC loads where type feedback is code stub
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 16:54:09 +00:00
jkummerow@chromium.org
0e54a418db Add counters for requested/inserted/executed soft deopts
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 16:53:22 +00:00
palfia@homejinni.com
6a91645a84 MIPS: Fix stack frame reconstruction for generators with formal arguments.
Port r15230 (e2bbe01)

Original commit message:
The formal parameter count was always being treated as an untagged
integer, but it is actually a Smi on ia32 and arm.

BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 15:29:22 +00:00