Commit Graph

13841 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
ae8824e5de Handlify Heap::AllocateFunctionPrototype method.
R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:34:14 +00:00
loislo@chromium.org
a4b4cfdc58 HeapProfiler: provide human readable names for code objects.
It is very hard to understand the structure of the heap even for about:blank page
because code objects in the heap have no names. This patch propagates the names
for Code::STUB and Code::BUILTIN code objects.
Also it assign function names from SharedFunctionInfo to the code objects.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:23:03 +00:00
machenbach@chromium.org
6069b062ae Avoid using dd() in Prologue when --optimize-for-size.
When --optimize-for-size is true, the prologue generation outputs the
pre-aging code stub address directly to the instruction stream.  Previously
this was done using dd() which failed if there was any pending constant
pool entries left to be written.  This CL introduces an emit_code_stub_address()
for this purpose instead.

BUG=v8:2968
R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:19:14 +00:00
yangguo@chromium.org
a5ed9a71c8 Correctly load message from an Error object.
R=mstarzinger@chromium.org
BUG=306220

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:04:51 +00:00
mstarzinger@chromium.org
ea89d6bd29 Handlify Heap::AllocateInitialMap method.
R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:32:03 +00:00
rafaelw@chromium.org
e78081ca1c Make Object.freeze/seal/preventExtensions observable
Note: spec has been updated here: http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes.

R=rossberg@chromium.org, rossberg
BUG=v8:2975,v8:2941

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:25:32 +00:00
mstarzinger@chromium.org
5267d7b884 Introduce JSFunction::EnsureHasInitialMap method.
This change enforces explicit allocation of the initial map for each
JSFunction to introduce a proper layering between the JSFunction class
and the Heap class. A follow-up change will then handlify the two
functions AllocateInitialMap and AllocateFunctionPrototype.

R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:11:27 +00:00
svenpanne@chromium.org
74ad230a8e Introduce orps for IA32/X64
BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:04:46 +00:00
ulan@chromium.org
0fd7c2a78a Add counters to track the maximum amount of memory committed by the heap.
BUG=None
R=bmeurer@chromium.org, ulan@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:59:42 +00:00
rafaelw@chromium.org
ada13dfc3f Remove calls to JSObject::SetLocalPropertyIgnoreAttributesTrampoline within objects.cc
This includes handlifing:
-SetHiddenPropertiesHashTable
-ObjectHashSet::Add/Remove
-ObjectHashTable::Put

And splitting the following methods which previously took "allow creation" enum arguments to into side-effect-free getters and GetOrCreate*-handlfied getters.

-GetHash (now GetHash & handlified GetOrCreateHash)
-GetIdentityHash (now GetIdentityHash & handlified GetOrCreateIdentityHash)
-GetHiddenPropertiesHashTable (now GetHiddenPropertiesHashTable & handlified GetOrCreateaHiddenPropertiesHashTable)

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:47:11 +00:00
rafaelw@chromium.org
4a8319c7c6 [Object.observe] Implement implicit notification from performChange
R=arv@chromium.org, rossberg@chromium.org, rossberg
BUG=v8:2942

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:23:08 +00:00
jkummerow@chromium.org
d0c5614f9d Proper fix for the issue exposed by r17459
This reverts r17462 and instead fixes StubCache::ComputeLoadNonexistent by replacing s/IsGlobalObject/IsJSGlobalObject/ there.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:01:31 +00:00
svenpanne@chromium.org
dc8c314084 Make snapshots reproducible.
To keep the structure of the serializer more or less untouched, we use
some ingenious Corry-approved(TM) 3-step technology (a.k.a. "hack"):

   * Create copies of code objects.
   * Wipe out all absolute addresses in these copies.
   * Write out the cleaned copies instead of the originals.

In conjunction with --random-seed, our snapshots are reproducible now.

BUG=v8:2885
R=bmeurer@chromium.org, erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 10:14:48 +00:00
svenpanne@chromium.org
82b8e23bc1 Introduce raw accessors for type_feedback_info.
This pure refactoring is needed for another upcoming CL.

Note that the actual names are still a bit confusing, because this is
still a kind of swiss-army-knife-field. :-/

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 10:05:03 +00:00
mstarzinger@chromium.org
5fce5dc124 Bump iteration count for escape analysis.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:58:49 +00:00
mvstanton@chromium.org
ee6e52f292 Remove CreateArrayLiteralShallow, as it's fundamentally the same now as
CreateArrayLiteral.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:54:59 +00:00
svenpanne@chromium.org
bb010f8ad0 Removed RelocInfo::target_object_address() and reconstructed_obj_ptr_.
Depends on https://codereview.chromium.org/46583006/ and has similar reasoning behind it.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:40:36 +00:00
mstarzinger@chromium.org
8a1d92f5c2 Fix double-boxing issue when materializing captured objects.
R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis-representation

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:32:39 +00:00
svenpanne@chromium.org
d1de1f9808 Refactored EXTERNAL_REFERENCE handling.
Previously, the result of target_reference_address() could only be
read, writing to it would have had an architecture-dependent effect,
e.g. writing into the code on ia32, a no-op on arm, etc.

This refactoring-only CL turns this into a simple getter, making it
impossible to use incorrectly.

More to come...

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:22:35 +00:00
bmeurer@chromium.org
d3ad5be781 Try to use STMDB/LDMIA instead of LDR/STR sequences whenever possible.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:00:00 +00:00
bmeurer@chromium.org
011ca83783 ARM: Use loop to initialize locals when optimizing for size.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 08:58:34 +00:00
bmeurer@chromium.org
537100336c Do Else() first for JoinContinuation() in IfBuilder.
This is required to make sure that environments are correct
for joined continuations.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 08:56:48 +00:00
plind44@gmail.com
b9b2c456b7 MIPS: Handle constants in new space by making macro-assembler smarter.
Port r17376 (9af4f51)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 01:31:22 +00:00
jkummerow@chromium.org
0400bc45d9 Restore intended LoadIC behavior for JSBuiltinsObject
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 16:39:58 +00:00
jkummerow@chromium.org
2ebfd6e90e Add missing negative dictionary lookup to NonexistentHandlerFrontend
BUG=v8:2980
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 14:14:09 +00:00
mstarzinger@chromium.org
4fbc96ff78 Remove dead return path from JSObject::GetHiddenPropertiesHashTable.
R=verwaest@chromium.org, rafaelw@chromium.org
TEST=cctest/test-api

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 12:00:39 +00:00
plind44@gmail.com
010d68cfd3 MIPS: Fix uint32-to-smi conversion in Lithium.
Port r17441 (f1968f4)

BUG=chromium:309623
TEST=mjsunit/regress/regress-crbug-309623
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 14:32:08 +00:00
machenbach@chromium.org
342305d1da Prepare push to trunk. Now working on version 3.23.0.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 13:29:35 +00:00
machenbach@chromium.org
3e6044d3f3 [Sheriff] Mark failing test for nacl port.
BUG=v8:2978
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 11:51:59 +00:00
machenbach@chromium.org
230b47a63b [Sheriff] Mark flaky test.
BUG=v8:2921
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 11:48:31 +00:00
jkummerow@chromium.org
6f27e4b377 Avoid pre-aging when debugger is active
BUG=None
R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 11:43:23 +00:00
jkummerow@chromium.org
316271fc35 Fix uint32-to-smi conversion in Lithium
BUG=chromium:309623
R=vegorov@google.com, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 10:18:51 +00:00
machenbach@chromium.org
3cb584c2b4 Add no-variants option to test runner.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 10:14:02 +00:00
yangguo@chromium.org
3f1a833524 Do not remove HAdd with zero if the other operand is a double.
The other operand might be minus zero, and -0 + 0 = +0

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-30 10:22:52 +00:00
jkummerow@chromium.org
9e88c23cbf ia32: Fix comparisons of two constant double operands when exactly one of them is in new space.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 14:34:07 +00:00
jkummerow@chromium.org
e8a3044f2d Temporarily allow HistogramTimerScopes to be nested
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 11:44:04 +00:00
mvstanton@chromium.org
31865699ac Function ElementsAreSafeToExamine was undefined in release heap verify.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 07:56:47 +00:00
jkummerow@chromium.org
c377cfaa8e Prepare push to trunk. Now working on version 3.22.24.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 17:59:13 +00:00
jkummerow@chromium.org
ec50a6f33c Work around two ASSERTs that we're hitting now that DEBUG is #defined again
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 17:54:43 +00:00
jkummerow@chromium.org
5b5f2e59dc Return early from BinaryOpIC::Transition when the JS call failed
This avoids an ASSERT failure in Chromium net_unittests.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 16:32:56 +00:00
titzer@chromium.org
eb34e1397a Remove assertion in SetResourceConstraints.
BUG=312233
R=rmcilroy@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 16:17:43 +00:00
titzer@chromium.org
3399bdd289 Temporarily disable calls to OS::TotalPhysicalMemory to avoid ASSERT when running under the Chrome Sandbox.
This CL reverts the behaviour added in r16983 to avoid calling OS::TotalPhysicalMemory
which fails an assert in the Chrome Sandbox.  It reverts the default
ResourceConstraints behaviour to that of V8 before r16983 (i.e., baseing these
values purely on hard-coded checks against 64bit/32bit and Android/non-Android.
This will be reverted once http://crbug.com/312241 has been resolved.

BUG=312241
R=titzer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 14:54:26 +00:00
svenpanne@chromium.org
19a2e803bb Introduce andps for IA32/X64
replace andpd and pand in Math.abs

BUG=
R=svenpanne@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 10:38:40 +00:00
bmeurer@chromium.org
3e7a1c0455 ARM: Replace branch with conditional store in function prologue.
Use conditional store to replace the receiver with undefined for
strict mode functions and builtins instead of branching code. This
has similar performance characteristics but saves one branch
instruction per strict mode function.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 10:29:57 +00:00
bmeurer@chromium.org
38e198109f Remove unused function MoveBytes().
R=bmeurer@chromium.org

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

Patch from Bangfu Tao <bangfu.tao@samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:59:15 +00:00
jkummerow@chromium.org
7856f37259 Rename deprecated __attribute__((no_address_safety_analysis)) to __attribute__((no_sanitize_address))
BUG=chromium:311283
R=glider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:57:15 +00:00
bmeurer@chromium.org
4c49e4e2b5 Cast const char * to const uint8_t *, which removed a unnecessary version of InternalStringToDouble template.
Code size (android arm build for d8):
old d8: 17,479,047 bytes
new d8: 17,445,492 bytes
Total code size saved: 33,555 bytes

R=bmeurer@chromium.org

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

Patch from Bangfu Tao <bangfu.tao@samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:39:00 +00:00
mvstanton@chromium.org
93fa1939ce Generalize AllocationSite field access in HObjectAccess.
There are simply becoming too many individual field accessors, and
more are coming.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:36:49 +00:00
yangguo@chromium.org
6c2233fbaa Fix --hydrogen-filter="-".
SubVector asserts that the vector length is not 0 and fails.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:01:33 +00:00
svenpanne@chromium.org
acb06df0e9 Tune mjsunit/compiler/expression-trees.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 07:24:19 +00:00