yurys@chromium.org
707fdd4c6a
Support idle time in CPU profiler
...
This change provides an API for the embedder to tell CPU profiler if it is idle or busy with some task. This way we can discriminate between idle time and some native code execution.
BUG=268947
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/22412003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:04:27 +00:00
olivf@chromium.org
ca4457e8ed
mod does not rely on a fixed register anymore, the arguments are passed via the stack.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21495005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:47:24 +00:00
palfia@homejinni.com
5021e72675
MIPS: First implementation of allocation elimination in Hydrogen.
...
Port r16098 (328ff5f7)
Original commit message:
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
TEST=mjsunit/compiler/escape-analysis
BUG=
Review URL: https://codereview.chromium.org/22580003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:20 +00:00
jkummerow@chromium.org
371ac893f9
Check for empty handle in JSON stringifier
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22420004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:13 +00:00
svenpanne@chromium.org
f3a36593be
Removed wrong ASSERTs on MIPS.
...
R=palfia@homejinni.com
Review URL: https://codereview.chromium.org/22571003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:42:46 +00:00
svenpanne@chromium.org
a8e12c5a02
Handle Symbols in the LBranch instruction on x64.
...
This was an omission in https://code.google.com/p/v8/source/detail?r=14051 .
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/22578002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:33:41 +00:00
prybin@chromium.org
29bb553b1d
Fix step in positions (include various calls and exclude current pc point), add a test
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22198002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:27:22 +00:00
jochen@chromium.org
5a92a95676
Move i18n's number-format C++ code to runtime
...
BUG=v8:2745
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22266009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:14:50 +00:00
mstarzinger@chromium.org
63defee477
First implementation of allocation elimination in Hydrogen.
...
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/21055011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 11:24:14 +00:00
yangguo@chromium.org
ef8d394f12
Re-reland "Flush parallel recompilation queues on context dispose notification"
...
BUG=
R=hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22379002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:33:09 +00:00
yangguo@chromium.org
5818d831c5
Make JSON::Parse return Local<Value>
...
It should be able to return Smi, etc. Not only JSObject.
BUG=v8:2821
TEST=cctest/test-api/JSONParseNumber
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22416003
Patch from Takeshi Yoshino <tyoshino@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:11:39 +00:00
dslomov@chromium.org
5ad4a8458a
Prepare push to trunk. Now working on version 3.20.15.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22468004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:05:59 +00:00
mstarzinger@chromium.org
fde19b3f39
Add frame pointer markup to grokdump.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22556002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:57:25 +00:00
dcarney@chromium.org
cd74a09886
expose eternal handle api
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22384003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:26:23 +00:00
jkummerow@chromium.org
a9efd655a5
Pacify Win7 builders
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22554002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:25:44 +00:00
bmeurer@chromium.org
db1436ab65
Handle external reference values properly in HConstant::ImmortalImmovable().
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22274017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 07:08:50 +00:00
jochen@chromium.org
02914097b2
Move i18n extension's date-format C++ code to runtime
...
BUG=v8:2745
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22411003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 03:40:44 +00:00
palfia@homejinni.com
213fd4b678
MIPS: Fix Sunspider 1.0/crypto-aes.
...
* This makes sure that DoModI calculates correct result even when
the left register is the same as the result register.
* Microoptmization: it generates smaller code when left and result
are different registers.
TEST=benchmarks/sunspider/crypto-aes.js
BUG=
Review URL: https://codereview.chromium.org/22491002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 00:39:49 +00:00
dslomov@chromium.org
03172d9da8
Handlify factory methods for typed array, ArrayBuffer and DataView.
...
These factory methods used pointers for constructor fucntions, therefore
those pointers could corrupt if allocation triggered gc.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22426003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:14:51 +00:00
dslomov@chromium.org
d0adaefc55
Fix Win64 build after r16079.
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:13:15 +00:00
ulan@chromium.org
3511f7a428
Fix Array index dehoisting.
...
BUG=264203
TEST=test/mjsunit/regress/regress-264203
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22314012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 16:38:39 +00:00
jkummerow@chromium.org
25ffcc3407
ARM/MIPS: Fix Constant-to-DoubleRegister moves in LGapResolver
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22314010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:46:50 +00:00
machenbach@chromium.org
e7585af65b
Add flaky test classification feature to test suites.
...
Test expectations can now include outcome: FLAKY.
The test runner can now run a class of tests (flaky|non-flaky|all). All tests are in the non-flaky class that are not marked as FLAKY.
The slash correction for windows is now pulled into the test name method. Currently the progress output on windows contains a mixture of / and \.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22381003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:39:39 +00:00
yangguo@chromium.org
fa2381eb75
Wrap back edge table in an iterator.
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22424002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:38:30 +00:00
yurys@chromium.org
2144dc2d0f
Define V8EXPORT only in v8.h and use it in the other headers
...
V8EXPORT is defined in each header of V8 public API and the definitions already have some slight discrepancies. This CL makes all headers use the same definition in v8.h
BUG=None
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22363003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:37:35 +00:00
rossberg@chromium.org
5e121882c6
Remove test that causes illegal access now
...
TBR=mstarzinger@chromium.org
BUG=265369
Review URL: https://codereview.chromium.org/22428002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:34:25 +00:00
rossberg@chromium.org
f56ad9cab7
Turn assert into runtime assertion to make fuzzer happy
...
R=mstarzinger@chromium.org
BUG=265369
Review URL: https://codereview.chromium.org/22284009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:19:13 +00:00
yangguo@chromium.org
8fb95efdda
Improve internal stringifcation for custom Error objects.
...
If an developer attempts to "subclass" Error by running
`MyError.prototype = new Error();`, then the internal v8::Message object
that's produced and handed off to `window.onerror` handlers is poorly
stringified as "[object Object]".
This patch adjusts the stringification process for these objects to
include not only native Error objects, but also objects that have Error
in their prototype chain, and haven't overwritten Error.toString with
some custom variant.
BUG=2822
R=mstarzinger@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/21761002
Patch from Mike West <mkwst@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:58:21 +00:00
rossberg@chromium.org
92bd4d1f2d
I found this working on
...
https://codereview.chromium.org/19541010/
The main problem is that if you called Object.getNotifier(obj) on an object, %SetObserved(object) would never get called on it, and thus it would be unobservable (new test added for this).
Additionally, Runtime::SetObserved was asserting obj->IsJSObject() which would fail if called on a proxy.
It just happens that our existing test always called getNotifier() before Object.observe on proxies, and thus we never previously attempted to transition the map of a proxy.
Both issues are now fixed and properly tested.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/21891008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:49:10 +00:00
svenpanne@chromium.org
bc6fe88030
Desugar bitwise negation into XOR and kill all UnaryOp stuff.
...
R=mstarzinger@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/22184004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:34:51 +00:00
dslomov@chromium.org
45f4b685bf
Update Array Iterator to use numeric indexes
...
At the last face-to-face meeting it was decided that we should use
numeric indexes for the Array Iterator values.
https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-07/july-24.md#514-keys-entries-return-numbers-for-array-index-properties
BUG=v8:2818
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/21180008
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:10:07 +00:00
jkummerow@chromium.org
665c45c92d
Un-revert "Implement simple effect typing for variables" and "Handle switch effects"
...
This re-lands r15776 and r15777, reverting the revert in r15786.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/22144006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 12:57:23 +00:00
bmeurer@chromium.org
548062ea52
r11951 changed the existing check for the __SOFTFP__ define in ARM platforms
...
to a check for __SOFTP. Most other programs look for __SOFTFP__ [1], so
look for both to increase the chances of not erroring out when using GCC 4.5.
[1] Based on http://codesearch.debian.net/search?q=__SOFTFP__ vs
http://codesearch.debian.net/search?q=__SOFTFP [^_]
BUG=v8:2140
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22210002
Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 11:08:32 +00:00
yurys@chromium.org
4e6041d595
Use standard routine to compute pointer hashs in heap profiler
...
BUG=None
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/22300005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:49:05 +00:00
verwaest@chromium.org
206a35763a
Fix DeferredInstanceMigration to store the result to temp rather than temp to result.
...
Thanks to Akos Palfi for finding the bug.
BUG=
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22388002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:26:31 +00:00
yurys@chromium.org
e06343431a
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=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22155003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:00:58 +00:00
danno@chromium.org
61a496f4e4
Prepare push to trunk. Now working on version 3.20.14.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22277006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 07:31:23 +00:00
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
jkummerow@chromium.org
14239ab9fb
Add "benchmarks" test suite
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/21645003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 14:54:09 +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