Commit Graph

8496 Commits

Author SHA1 Message Date
jkummerow@chromium.org
148f1c1701 Fix deopt condition in ForIn on x64
TEST=no more deopts in string-fasta

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 12:20:03 +00:00
jkummerow@chromium.org
390f0e6d05 Port count-based profiler to ARM
Review URL: https://chromiumcodereview.appspot.com/9837004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 12:16:40 +00:00
danno@chromium.org
754264325f Allow a patch file to be specified to merge-to-branch.sh
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 11:54:07 +00:00
vegorov@chromium.org
9da07882c8 MIPS: Support arguments object access from inlined functions.
Port r11109 (a7770bdd7c).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9808058
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 11:38:40 +00:00
rossberg@chromium.org
00346bd1da Fix use of proxies as f.prototype properties.
R=mstarzinger@chromium.org
BUG=v8:2021
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 10:25:14 +00:00
jkummerow@chromium.org
c0ec8a64be push-to-trunk.sh: Don't send Chromium CLs to the commit queue immediately
Review URL: https://chromiumcodereview.appspot.com/9835047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 10:22:45 +00:00
mmassi@chromium.org
c39c2089a7 First implementation of fast path for instantiation of array literals composed of doubles.
Review URL: https://chromiumcodereview.appspot.com/9814006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 10:14:51 +00:00
svenpanne@chromium.org
4cb600962f Make setting of accessors even more atomic.
Now the whole getter/setter/attributes triple gets created/set together,
avoiding any hacks regarding previous values/attributes, making things a lot
simpler.

While doing this, an interesting problem surfaced, which has been there for a
long time: After adding/changing acessors in slow mode, we could potentially
fail going back to fast mode because of a failed memory allocation, signaling
the need for a GC. But we have already changed the object in slow mode, so we
are not idempotent and the retry would trigger a newly inserted assertion
(namely, that the code obeys access restrictions). This has been solved by
splitting the transformation to fast mode from the actual setting of the
accessors.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 09:51:56 +00:00
vegorov@chromium.org
b7dca5d5a7 Support arguments object access from inlined functions.
R=fschneider@chromium.org
TEST=test/mjsunit/compiler/inline-arguments.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-22 13:53:28 +00:00
jkummerow@chromium.org
f7073d467c Soften --type-info-threshold by eventually optimizing all functions
(but waiting very long if they don't have enough type feedback).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-22 11:05:33 +00:00
erik.corry@gmail.com
bc1eb293cd Enable snapshots on MIPS. This is based on
http://codereview.chromium.org/9372063 by Daniel Kalmar.
Review URL: https://chromiumcodereview.appspot.com/9722020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 14:29:14 +00:00
fschneider@chromium.org
5e58c3baf8 Temporarily allow timeout for one mozilla test.
BUG=v8:2018
Review URL: https://chromiumcodereview.appspot.com/9813008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 14:19:17 +00:00
erik.corry@gmail.com
6cd62ed2a3 Unbork Windows 64 bit build and guard against overlong UTF-8
serializations.
Review URL: https://chromiumcodereview.appspot.com/9817005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 14:04:24 +00:00
erik.corry@gmail.com
25f84a48ce Speed up WriteUtf8 in the case where the output buffer is large enough.
Review URL: https://chromiumcodereview.appspot.com/9696032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 13:48:29 +00:00
ulan@chromium.org
2e9b509271 Prepare push to trunk. Now working on version 3.9.24.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 09:50:20 +00:00
fschneider@chromium.org
30a2f2c4ef When running with --always-opt, don't deoptimize named loads with uninitialized type feedback.
This avoids tests taking too long because of repeated deoptimizations.
Review URL: https://chromiumcodereview.appspot.com/9812004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 09:23:09 +00:00
danno@chromium.org
b49dd13c90 MIPS: Branch delay slot and other optimizations.
List of changes:
-added a minor optimization to the Simulator that quickly skips nops in the delay slot
-slightly re-worked CEntryStub to save a few instructions
 CEntryStub now expects the following values:
  -s0: number of arguments including receiver
  -s1: size of arguments excluding receiver
  -s2: pointer to builtin function
 Two new MacroAssembler functions were added to make usage more convenient:
  -PrepareCEntryArgs(int num_args) to set up s0 and s1
  -PrepareCEntryFunction(const ExternalReference&) to set up s2
-removed branch delay slot nops from the most frequently used code areas
-reorganized some code to execute fewer instructions
-utilized the delay slot of most Ret instructions
 This does not cover all Rets, only the most obvious cases.
 Also added a special version of DropAndRet that utilizes the delay slot.
-added some comments to code areas where explanation of the register/delay slot usage may be needed
-added an optimization to Jump so it doesn't always pre-load the target register

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9699071
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 08:41:16 +00:00
vegorov@chromium.org
790219ec55 Use correct arguments adaptation environment when inlining function containing arguments.
R=mstarzinger@google.com
BUG=V8:2014
TEST=test/mjsunit/compile/inline-arguments.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 18:15:31 +00:00
jkummerow@chromium.org
a615abd8d3 Fix overly aggressive ASSERT(!optimization_disabled())
Review URL: https://chromiumcodereview.appspot.com/9748018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 15:27:33 +00:00
loislo@chromium.org
64c96ad9c0 There is a trick for speed up array shift operation.
This trick is confusing a bit the heap snapshoting code.
Such a shiffted array will be interpreted as a new array in the second snapshot.

BUG=none
TEST=HeapEntryIdsAndArrayShift

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 14:35:05 +00:00
ulan@chromium.org
c7c3f8d5be Adjust heuristics for idle notifications after context disposal.
Review URL: https://chromiumcodereview.appspot.com/9701093

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 13:29:49 +00:00
jkummerow@chromium.org
13498a1cd3 Prepare push to trunk. Now working on version 3.9.23.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 12:57:17 +00:00
fschneider@chromium.org
b0bb4f078a Fix assertion failure due to too many deoptimization ids.
The failing mozilla test was caused by more deoptimizations
introduced by --always-opt and r11087.

We abort code generation in release mode, so we should do
the same in debug mode.
Review URL: https://chromiumcodereview.appspot.com/9752004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 08:49:23 +00:00
vegorov@chromium.org
de9120500a Add Zhongping Wang <kewpie.w.zp@gmail.com> to AUTHORS
Fix compilation failure on Win x64 builder introduced by r11084

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 08:12:31 +00:00
jkummerow@chromium.org
5d6763aaba Enable experimental profiler by default
Review URL: https://chromiumcodereview.appspot.com/9726004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 17:29:25 +00:00
mstarzinger@chromium.org
efa8d96e96 Mark invalid Test262 test cases correctly.
R=ulan@chromium.org
TEST=test262/S15.9.3.1_A5_T?

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 16:28:18 +00:00
fschneider@chromium.org
e081a3bfba Insert explicit deoptimization for named loads that have "uninitialized" type feedback.
We already do this for binary-ops, unary-ops and comparisons. Typefeedback for named loads can now also
be in "uninitialized" state which means that the corresponding load IC was never executed.
Review URL: https://chromiumcodereview.appspot.com/9722041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 15:54:37 +00:00
mstarzinger@chromium.org
56c75c387a Temporary disable Test262 tests failing on buildbot.
R=jkummerow@chromium.org
TEST=test262/S15.9.3.1_A5_T?

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 12:22:56 +00:00
vegorov@chromium.org
254d810a32 When transitioning LoadIC to megamorphic case place monomorphic stubs into stub cache.
Otherwise if function is optimized immediately after transition type oracle will be unable to gather enough maps from stub cache and graph builder will emit HLoadNamedGeneric instead of HLoadNamedPolymorphic.

R=fschneider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 12:09:22 +00:00
vegorov@chromium.org
b7b2fd4cec Implement a hash based look-up to speed up containing address check in large
object space. Before, it was a link-list based look-up, and make this function
a little bit 'hot' from profile point.

BUG=v8:853
TEST=

Review URL: https://chromiumcodereview.appspot.com/9634005
Patch from Zhongping Wang <kewpie.w.zp@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 12:08:20 +00:00
rossberg@chromium.org
cfb0ab5a26 Prepare push to trunk. Now working on version 3.9.22.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 10:22:38 +00:00
jkummerow@chromium.org
0bbe8c4fae Fix FLAG_always_opt and tools/push-to-trunk.sh
TEST=tests with --always-opt don't ASSERT; push to trunk workflow works.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 10:16:38 +00:00
erik.corry@gmail.com
bcd0fd00e3 Add API call that identifies strings that are guaranteed
only to contain ASCII characters.
Review URL: https://chromiumcodereview.appspot.com/9724022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 09:51:36 +00:00
rossberg@chromium.org
8a70de81e4 Prepare push to trunk. Now working on version 3.9.21.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 09:47:46 +00:00
jkummerow@chromium.org
30ba119fa9 Mark Code objects as not optimizable if their FunctionLiteral contains unoptimizable AST nodes.
This ensures that we never try to optimize such functions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 08:44:44 +00:00
fschneider@chromium.org
1c99c90be7 Re-enable constructor inlining and inline === comparison with boolean constants.
This change reverts r10974 which disabled those two optimizations.
They were not responsible for the problem in earley-boyer.

BUG=v8:2009
Review URL: https://chromiumcodereview.appspot.com/9699117

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 07:51:37 +00:00
fschneider@chromium.org
1a29d5cf33 Revert dynamic frame alignment (r9415)
Marking aligned frames with a marker can produce false positives since
an optimized frame spill slot may be mistakenly seen as a marker value.

It also breaks the debugger reproducably: Tested when enabling alignment
for all functions and running the debugger unit tests.

BUG=v8:2009
TEST=no crashes in EarleyBoyer
Review URL: https://chromiumcodereview.appspot.com/9703110

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-19 07:45:06 +00:00
danno@chromium.org
2dc04fda4a MIPS: Properly initialize element-transitioning array literals on ARM.
Port r10624 (172d021).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9689010
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 16:18:20 +00:00
danno@chromium.org
0ed593df56 Fix bugs in tools/merge-to-branch.sh
Fail if patches fail to apply and correctly match branches in delete_branch().

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 16:04:01 +00:00
mstarzinger@chromium.org
32c481b698 Fix test harness to not break on aborts.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 14:33:55 +00:00
erik.corry@gmail.com
e3774cf23f Record the addresses of pages that are unmapped to aid
in post mortem crash dump analysis.
Review URL: https://chromiumcodereview.appspot.com/9700061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 14:13:22 +00:00
danno@chromium.org
9104cfd959 Use CopyElements for SetFastDoubleElementsCapacityAndLength
Review URL: https://chromiumcodereview.appspot.com/9663002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 13:59:59 +00:00
vegorov@chromium.org
aaac499253 Switch Heap::RecordStats to use PagedSpace::SizeOfObjects instead of PagedSpace::Size.
This would allow us to get more precise estimate of heap fragmentation on OOM.

R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 13:52:43 +00:00
danno@chromium.org
6e1f8780f9 Add flag to always call DebugBreak on abort
R=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-16 13:43:04 +00:00
yangguo@chromium.org
184b7a8915 Experimental profiler: split RegExp.test() for better optimization.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 17:21:42 +00:00
ulan@chromium.org
863d5fdf49 More fixes for V8 benchmark version 7.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 17:13:50 +00:00
ulan@chromium.org
4898f5bd0d Update revision.html for V8 benchmark version 7.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 16:57:10 +00:00
svenpanne@chromium.org
5389cdf6fc Fix clang template weirdness.
TBR=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 15:01:59 +00:00
mstarzinger@chromium.org
9484f16244 Fix minor inconsistency with inline function list.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 14:38:45 +00:00
pfeldman@chromium.org
26aaa3b005 Debugger: naive implementation of "step into Function.prototype.bind".
Review URL: https://chromiumcodereview.appspot.com/9705018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 14:17:22 +00:00