Commit Graph

10428 Commits

Author SHA1 Message Date
svenpanne@chromium.org
a7e88a3435 Unbreak build (offsetof only works for POD types)
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:54:11 +00:00
svenpanne@chromium.org
52d10a68cb Add Isolate parameter to Persistent class.
BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:31:46 +00:00
mstarzinger@chromium.org
44ffa0dcd3 Allow monomorphic loads when static type is known.
This allows Crankshaft to generate monomorphic loads when the receiver
type is statically known even though the load site has polymorphic type
feedback. This applies to inlined constructor calls and literals.

R=jkummerow@chromium.org
TEST=mjsunit/compiler/property-static

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 17:54:30 +00:00
yangguo@chromium.org
04c8093fe1 Prepare push to trunk. Now working on version 3.16.10.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 16:29:54 +00:00
mstarzinger@chromium.org
c8cf5d90aa Implement VisitHandlesInNewSpaceWithClassIds()
BUG=
TEST=test-api.cc::PersistentHandleInNewSpaceVisitor

Review URL: https://codereview.chromium.org/11365131
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:53:16 +00:00
danno@chromium.org
63ec79a4a4 Revert r13494: "Use MemoryChunk-based allocation for deoptimization entry code"
This patch seems to cause crashes on Windows.

TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:48:07 +00:00
danno@chromium.org
de17ce7701 Use MemoryChunk-based allocation for deoptimization entry code
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.

Review URL: https://codereview.chromium.org/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:14:33 +00:00
danno@chromium.org
3c52343738 Fix bug in edge case in populating PointerMaps
If a live range was split immediately before an instruction that required a
safe-point pointer map, it was possible for the safe-point to incorrectly use the
register/stack slot information of the preceeding live range rather than the one
that actually covers the safe-point.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:05:38 +00:00
verwaest@chromium.org
dd92c41aa1 Merge UpdateLoadCaches into a single function dispatching on
ComputeLoadMonorphic and UpdateMegamorphicCache.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 13:02:45 +00:00
mstarzinger@chromium.org
ef4d9d1245 Fix map check removal issue in r13488.
The removal of HCheckMaps is invalid when the instruction has a virtual
usage, which can happen e.g. for HLoadElements or HJSArrayLength.

R=jkummerow@chromium.org
TEST=webkit:fast/js/regress/Float32Array-matrix-mult.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 12:35:56 +00:00
ulan@chromium.org
e6224d275f Make embedded maps in optimized code weak.
Each map has a weak array of dependent codes, where the map tracks all the optimized codes that embed it.
Old space GC either clears the dead dependent codes from the array if the corresponding map is alive or deoptimizes the live dependent codes if the map is dead.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 11:55:05 +00:00
hpayer@chromium.org
c500efe14d Force inlining of object visiting functions.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 09:40:57 +00:00
mstarzinger@chromium.org
1d124f0a75 Allow removal of obsolete map checks after transitions.
This allows side effect dominator tracking to remove map checks that are
dominated by a single HStoreNamedField that performs a transition on the
same object. A similar trick could be applied to HAllocateObject.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 09:10:06 +00:00
yangguo@chromium.org
c14b9b3703 Fix --hydrogen-stats.
V8 crashes with this flag when trying to compile hydrogen stubs.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 08:39:35 +00:00
yurys@chromium.org
250023a68d Implicit references are missing in heap profiles
Review URL: https://codereview.chromium.org/11953043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 07:54:40 +00:00
verwaest@chromium.org
56adca9cc9 Ensure a type-error is thrown when trying to assign to a readonly property on the global scope.
Review URL: https://chromiumcodereview.appspot.com/11953056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 17:27:25 +00:00
ulan@chromium.org
bed569b548 ARM: Make use of d16-d31 when available.
Review URL: https://chromiumcodereview.appspot.com/11428137
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:29:48 +00:00
mstarzinger@chromium.org
cd21056819 Fix corner case when JSFunction is evicted from flusher.
This fixes a corner case that happens when JSFunctions are enqueued as
code flushing candidates but their respective SharedFunctionInfo isn't.
If the JSFunction gets evicted due to optimization the code slot in the
SharedFunctionInfo will never be recorded in the slots buffer.

R=hpayer@chromium.org
BUG=chromium:168801
TEST=cctest/test-heap/Regress168801

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:15:15 +00:00
verwaest@chromium.org
c1e44f133d Always fail when trying to store to an undeclared global variable, even if it was found.
Finding a property, but not using an IC, indicates that the variable was
found on the prototype (in DOMWindow). Those properties need to be
ignored while storing global properties via the IC.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:04:19 +00:00
ulan@chromium.org
d29826544e Correctly set kCanBeDivByZero flag for HMathFloorOfDiv.
After r13289 the divisor can be non-constant, so we should check for zero.

BUG=171641
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 15:58:49 +00:00
verwaest@chromium.org
e086746ed7 Move polymorphic stub computation and compilation to stub cache
Review URL: https://chromiumcodereview.appspot.com/11953025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 15:35:43 +00:00
yangguo@chromium.org
2f36a51872 MIPS: Avoid handle dereference during graph optimization.
Port r13475 (0076e1ee)

Original commit message:
With parallel recompilation enabled, objects made accessible by handles may
have changed between graph construction and graph optimization. Therefore
we must not assume that information on those objects remain the same between
those two phases. To police this, we forbid handle dereferencing during
graph optimization.
Exceptions to this rule are:
 - Dereferencing the handle to obtain the raw location of the object. This
   is safe since parallel recompilation acquires RelocationLock
 - Some places that dereference the handle for a type check. These are checked
   to be safe on a case-by-case basis.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12049037
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 15:25:28 +00:00
yangguo@chromium.org
3fcbb8f1d0 MIPS: Make HCheckPrototypeMaps compatible with parallel recompilation.
Port r13454 (2c0dd0ff)

Original commit message:
HCheckPrototypeMaps currently records the prototype and the holder of the
prototype chain (both ends of the chain) and assumes that the chain elements
and their maps did not change in during the entirety of Crankshaft. The actual
traversal of the prototype chain happens in Lithium at code generation.
With parallel compilation, this assumption is not longer correct.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12036030
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 14:01:11 +00:00
yangguo@chromium.org
3c22524119 Avoid handle dereference during graph optimization.
With parallel recompilation enabled, objects made accessible by handles may
have changed between graph construction and graph optimization. Therefore
we must not assume that information on those objects remain the same between
those two phases. To police this, we forbid handle dereferencing during
graph optimization.
Exceptions to this rule are:
 - Dereferencing the handle to obtain the raw location of the object. This
   is safe since parallel recompilation acquires RelocationLock
 - Some places that dereference the handle for a type check. These are checked
   to be safe on a case-by-case basis.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 13:52:00 +00:00
mvstanton@chromium.org
b129200169 Prepare push to trunk. Now working on version 3.16.9.
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 13:40:51 +00:00
yangguo@chromium.org
9296975c04 Correctly reset lastIndex in an RegExp object.
R=svenpanne@chromium.org
BUG=170856

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 12:28:16 +00:00
svenpanne@chromium.org
8404f71d14 Added a workaround for Windows compilation problems related to V8EXPORT.
The underlying problem is a bit unclear, but at least this CL makes VS happy.

BUG=v8:2507

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 12:04:55 +00:00
jkummerow@chromium.org
5318c181cf tools/run-tests.py: shlex.split() the value of --command-prefix
BUG=171553

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 11:41:56 +00:00
verwaest@chromium.org
c00d46712b MIPS: Migrate FunctionPrototype (Keyed|Named)LoadIC to CodeStub
Port r13459 (491896eb)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12049015
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 10:05:08 +00:00
verwaest@chromium.org
84e8ca1679 MIPS: Migrate ArrayLength (Keyed|Named)LoadIC to CodeStub
Port r13458 (e8729cf9)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12052011
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 10:02:48 +00:00
verwaest@chromium.org
073ab01dbd MIPS: Replace special IC builtins and stubs in the map's cache by codestubs.
Port r13453 (94525069)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12051014
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 09:45:48 +00:00
mvstanton@chromium.org
a3de98b4a7 MIPS: Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo
Port r13462 (74f0ddf6)

Original commit message:
Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo Restored test code in allocation-site-info.js that was failing on ARM because of this bug.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11896037
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 16:18:59 +00:00
ulan@chromium.org
79a0e3b017 Fix pattern detection for replacing shifts by rotation.
BUG=2499
R=svenpanne@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12047015
Patch from Hirofumi Mako <mkhrfm@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 13:55:22 +00:00
mstarzinger@chromium.org
f8d5260af7 Allow loading constant function from proto chain.
This enables Crankshaft to use HConstant for loading constant functions
on the prototype chain when building a monomorphic load. This pattern
appears in several JavaScript frameworks.

R=svenpanne@chromium.org
TEST=mjsunit/compiler/proto-chain-constant

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 12:03:35 +00:00
mvstanton@chromium.org
90d0f18007 Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo
Restored test code in allocation-site-info.js that was failing on ARM because of this bug.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 10:49:23 +00:00
verwaest@chromium.org
2c070e2300 Merge Store from Keyed and Named store.
Review URL: https://chromiumcodereview.appspot.com/12036017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 09:48:59 +00:00
verwaest@chromium.org
3ffcbe3319 Merge Load from Keyed|Named load code.
Review URL: https://chromiumcodereview.appspot.com/12038012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 09:35:14 +00:00
verwaest@chromium.org
b79a927e74 Migrate FunctionPrototype (Keyed|Named)LoadIC to CodeStub
Review URL: https://chromiumcodereview.appspot.com/11941016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 17:54:36 +00:00
verwaest@chromium.org
f80379f3fb Migrate ArrayLength (Keyed|Named)LoadIC to CodeStub
Review URL: https://chromiumcodereview.appspot.com/11938013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 17:17:02 +00:00
yangguo@chromium.org
77f3556504 Check for FLAG_enable_liveedit when using Live Edit.
R=peter.rybin@gmail.com
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 17:06:30 +00:00
mvstanton@chromium.org
c3746b4388 allocation-site-info.js broken on arm with new changes. Reverting to previous version until diagnosed.
Regress-2185.js test takes too long on slow path when allocation site info is discovered.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 16:15:08 +00:00
yangguo@chromium.org
0c822b21cb Fix some latin-1 webkit units tests
R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11962035
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 16:11:31 +00:00
yangguo@chromium.org
7f331f6280 Make HCheckPrototypeMaps compatible with parallel recompilation.
HCheckPrototypeMaps currently records the prototype and the holder of the
prototype chain (both ends of the chain) and assumes that the chain elements
and their maps did not change in during the entirety of Crankshaft. The actual
traversal of the prototype chain happens in Lithium at code generation.
With parallel compilation, this assumption is not longer correct.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 15:49:00 +00:00
verwaest@chromium.org
c3d45451f0 Replace special IC builtins and stubs in the map's cache by codestubs.
Review URL: https://chromiumcodereview.appspot.com/11973008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 14:53:29 +00:00
yangguo@chromium.org
b6e2763768 Prepare push to trunk. Now working on version 3.16.8.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 14:37:29 +00:00
jkummerow@chromium.org
9e3166ea5b Remove <(library) usage from v8.gyp.
BUG=111541
R=danno@chromium.org

Signed-off-by: Thiago Farina <tfarina@chromium.org>

Review URL: https://codereview.chromium.org/12022021
Patch from Thiago Farina <tfarina@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 14:14:28 +00:00
jkummerow@chromium.org
b7079a5dfb Disable elimination of unreachable code after HSoftDeopts
Review URL: https://codereview.chromium.org/12036011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 14:11:25 +00:00
mvstanton@chromium.org
3414a514cd Fixed test failure.
A test case erroneously expected a transition to a double array, but the array remains FAST_SMI.

In person LGTM from Danno...
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 13:21:53 +00:00
mstarzinger@chromium.org
5cd6913839 Remove unused GlobalHandles::IterateWeakRoots()
BUG=

Review URL: https://codereview.chromium.org/11969037
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 12:31:13 +00:00
mvstanton@chromium.org
d7d917e6f0 Out of bounds memory access in TestJSArrayForAllocationSiteInfo.
The function intended to check the map pointer of an AllocationSiteInfo object, but neglected to
subtract an offset to do so.

BUG=169928

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 12:26:29 +00:00