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
mstarzinger@chromium.org
79a98de9f7
Fix declarations escaping global strict eval.
...
According to ES5 10.4.2(3), eval calls of strict code always require
their own lexical and variable environment. For now we just add a new
scope when we parse the strict mode directive. The clean solution would
be to always have this sope present (even for global eval calls) and
adapt variable binding to cope with that.
R=rossberg@chromium.org
BUG=v8:1624
TEST=mjsunit/regress/regress-1624,test262/S10.4.2.1_A1
Review URL: https://chromiumcodereview.appspot.com/9703021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 13:02:21 +00:00
vegorov@chromium.org
c9b0d104d1
MIPS: Inline functions that use arguments object in f.apply(o, arguments) pattern.
...
Port r11008 (f7a04e6f9).
Original commit message:
Support arguments materialization after deoptimization in all frames (not only in topmost one).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9677053
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 12:29:20 +00:00
vegorov@chromium.org
211a867943
Improve representation inference for HUnknownOSRValue.
...
Use corresponding phi from the loop entry as a hint to infer proper representation for HUnkownOSRValue and dependent phis.
R=fschneider@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9704012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 12:21:29 +00:00
pfeldman@chromium.org
100bc51eae
Debugger: add ability to set script source from within OnBeforeCompile.
...
Review URL: https://chromiumcodereview.appspot.com/9677043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 11:51:26 +00:00
danno@chromium.org
beb012be45
Don't use an explicit s0 in ClampDoubleToUint8.
...
R=fschneider@chromium.org
BUG=v8:2004
TEST=test/mjsunit/pixel-array-rounding.js
Review URL: https://chromiumcodereview.appspot.com/9702027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 09:52:48 +00:00
svenpanne@chromium.org
e2cb7894fb
Fixed breakage caused by r11051 on non-ia32 platforms.
...
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9703056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 09:28:49 +00:00
svenpanne@chromium.org
c644c4e811
Ensure that generated code for object literals will call Runtime_DefineOrRedefineAccessorProperty only once per accessor property.
...
To do this, we collect all accessor properties in a first pass and emit code for
defining those properties afterwards in a second pass.
As a finger exercise, the table used for collecting accessors has a (subset of
an) STL-like iterator interface, including STL-like names and operators.
Although C++ is quite verbose here (as usual, but partly this is caused by our
current slightly clumsy classes/templates), things work out quite nicely and it
cleans up some confusion, e.g. a table entry is not an iterator etc.
Everything compiles into very efficient code, e.g. the loop condition 'it !=
accessor_table.end()' compiles into a single 'testl' instruction on ia32.
+1 for using standard APIs!
Review URL: https://chromiumcodereview.appspot.com/9691040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 07:13:46 +00:00