danno@chromium.org
63f033576c
Fix performance regressions due to lazy initialization.
...
This CL:
- Adds a new trait parameter to LazyInstance to let it initialize the instance
without paying the cost of atomic operations (which are expensive on Mac).
This only works for users who don't care about thread-safety and this is now
the default initialization trait used by LazyInstance in v8.
- Reverts the changes that were made in r11010 in isolate.{cc,h}. That lets
Isolate's accessors be as cheap as they were before (but adds one static initializer).
- Adds OS::PostSetup() used to initialize the math functions which depend on CPU features.
That lets the math functions get rid of CallOnce().
BUG=118686
Review URL: https://chromiumcodereview.appspot.com/9873023
Patch from Philippe Liard <pliard@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 14:30:46 +00:00
danno@chromium.org
b063b2d7e8
Fix scoping of v8::HandleScope to prevent use-after-dispose
...
R=jkummerow@chromium.org
TEST=shell_g doesn't crash
Review URL: https://chromiumcodereview.appspot.com/9959014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 13:49:40 +00:00
vegorov@chromium.org
8360ec877e
Ensure that arguments object is materialized when deoptimizing from inlined function.
...
Lithium translation rebuilds hydrogen environments from scratch so we have to ensure that arguments object is correctly bound on function entry otherwise deoptimization will not materialize it.
This fix was implemented as part of r11109 and then reverted.
R=danno@chromium.org
BUG=v8:2045
TEST=test/mjsunit/regress/regress-2045.js
Review URL: https://chromiumcodereview.appspot.com/9963008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 13:22:39 +00:00
jkummerow@chromium.org
6faf4059b4
Prepare push to trunk. Now working on version 3.10.1.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9966002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 08:35:30 +00:00
erik.corry@gmail.com
e952ebb907
Fix missing static cast on Windows.
...
Review URL: https://chromiumcodereview.appspot.com/9963006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 07:55:16 +00:00
erik.corry@gmail.com
356cf1ed0a
RegExp: Add support for table-based character class
...
code generation. This is performance neutral for
all our tests, but a factor 6 faster for the Unicode
based regexp in the new test (and much more compact
code).
Review URL: https://chromiumcodereview.appspot.com/9854020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 07:43:48 +00:00
loislo@chromium.org
0572806287
Fix presubmit check.
...
BUG=none
TEST=none
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9921014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:50:26 +00:00
loislo@chromium.org
d857c994b6
Current schema of calculation max_snapshot_js_object_id is not always correct.
...
As the result the test is flaky.
BUG=v8/2042
TEST=HeapEntryIdsAndGC
R=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9918005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:18:11 +00:00
ulan@chromium.org
0acfd5af07
Fix offset computation for EmitProfilingCounterReset in x64.
...
R=jkummerow@chromium.org
BUG=v8:2039
Review URL: https://chromiumcodereview.appspot.com/9903015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:04:41 +00:00
jkummerow@chromium.org
429407d594
Un-bork v8.gyp after r11010
...
TEST=no more warning "Missing input file tools\gyp\..\..\src\src\list-inl.h"
Review URL: https://chromiumcodereview.appspot.com/9924006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:01:21 +00:00
svenpanne@chromium.org
7c7c2801f5
Valgrind cleanliness, part 5: Delete extensions on exit.
...
This fixes 4 leaks, returning 196 bytes of lost memory.
Review URL: https://chromiumcodereview.appspot.com/9864034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 09:45:46 +00:00
danno@chromium.org
c12a9ed6f0
Allow a commit message to be specified to merge-to-branch.sh
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9844015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 07:01:36 +00:00
mstarzinger@chromium.org
552393c383
Add missing regression test for r11173.
...
R=svenpanne@chromium.org
BUG=chromium:12009
TEST=mjsunit/regress/regress-120099
Review URL: https://chromiumcodereview.appspot.com/9873027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 15:17:14 +00:00
svenpanne@chromium.org
6c392ffa79
Valgrind cleanliness, part 2: Delete lithium operand caches on exit.
...
This fixes 5 leaks, returning 1.6kB of lost memory.
Shocking news: I've actually introduced a 2nd-order macro for myself. I guess
I've been assimilated... ;-)
Review URL: https://chromiumcodereview.appspot.com/9860028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 13:12:00 +00:00
svenpanne@chromium.org
fa91d25e67
MIPS: First implementation of fast path for instantiation of array literals composed of doubles.
...
Port r11114 (d8c975164).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9834044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 12:44:04 +00:00
jkummerow@chromium.org
28a33dddda
Hard-code GYP_GENERATORS=make into top-level Makefile
...
removing the need to manually specify this on platforms where it's not the default (Mac).
Review URL: https://chromiumcodereview.appspot.com/9877002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 12:42:49 +00:00
ulan@chromium.org
82c0fec545
Reset the optimization_disabled flag in function info after context disposal.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9873022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 09:47:53 +00:00
mstarzinger@chromium.org
4389c29cce
Fix store IC writability check in strict mode.
...
The store ICs should only check writability attributes for actual
properties and not for map transitions.
R=jkummerow@chromium.org ,svenpanne@chromium.org
BUG=chromium:120099
TEST=mjsunit/regress/regress-120099
Review URL: https://chromiumcodereview.appspot.com/9874015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 09:34:52 +00:00
mstarzinger@chromium.org
d5c7e87c50
Fix test harness for Test262 to not use symlinks.
...
This is necessary for the --download-data option to work on Windows
where we do not have symlinks available. Note that we still have no
automatic way of bumping the existing Test262 revision without deleting
the data directory manually.
R=jkummerow@chromium.org
TEST=test262
Review URL: https://chromiumcodereview.appspot.com/9866046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 09:33:19 +00:00
jkummerow@chromium.org
1a8b6610c7
Add missing cast in d8
...
Review URL: https://chromiumcodereview.appspot.com/9866035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:46:44 +00:00
ulan@chromium.org
2b3d6de2dd
Resynchronize timers if the Windows system time was changed.
...
R=jkummerow@chromium.org
BUG=119815
TEST=Change the system time one day back: (new Date()) will return incorrect time.
Review URL: https://chromiumcodereview.appspot.com/9865021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:34:32 +00:00
jkummerow@chromium.org
4b227a2a79
Profiler experiments: remove "stable on startup" rule
...
Review URL: https://chromiumcodereview.appspot.com/9864030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:26:58 +00:00
loislo@chromium.org
6306283df9
fix for TestHeapEntryIdsAndGC
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9864035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:25:05 +00:00
jkummerow@chromium.org
b413f376c4
Move profiler_ticks to Code object, don't walk the stack when patching ICs
...
Review URL: https://chromiumcodereview.appspot.com/9866030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:19:50 +00:00
loislo@chromium.org
b84b44d86c
This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
...
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:54:47 +00:00
jkummerow@chromium.org
ce4b1f1a90
While building arm hardfp chrome browser, remove "-mfloat-abi=hard" from host compiler cflags, which causes building chrome browser failure.
...
BUG=https://code.google.com/p/chrome-os-partner/issues/detail?id=8539
TEST=manually build chrome browser use "hard"
Review URL: https://chromiumcodereview.appspot.com/9810036
Patch from Han Shen <shenhan@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:28:19 +00:00
jkummerow@chromium.org
d71c60e086
Port count-based profiler to x64
...
Review URL: https://chromiumcodereview.appspot.com/9845019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:21:27 +00:00
loislo@chromium.org
9b9e458a43
Revert "This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler."
...
This reverts commit 634864d65ebe820a967f6162d8e226cf4a73e51a.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9861018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:12:31 +00:00
fschneider@chromium.org
70074b6901
Fix undeclared variable in d8 debugger.
...
BUG=v8:2033
TEST='list' command works in d8 debugger.
Review URL: https://chromiumcodereview.appspot.com/9861017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:55:34 +00:00
svenpanne@chromium.org
30e6cac50e
Valgrind cleanliness, part 3: Delete elements accessors on exit.
...
This fixes 15 leaks, returning 132 bytes of lost memory.
As an additional bonus, elements accessors initialization has bee simplified a bit.
Review URL: https://chromiumcodereview.appspot.com/9836109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:51:13 +00:00
mstarzinger@chromium.org
057371da13
Fix polymorphic load on named fields.
...
This fixes polymorphic loads to correctly compare in-object offsets
instead of indices, because indices might coincide even though the
actual slot is different because of different instance sizes.
R=danno@chromium.org
BUG=v8:2030
TEST=mjsunit/regress/regress-2030,mjsunit/mirror-array
Review URL: https://chromiumcodereview.appspot.com/9864028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:42:38 +00:00
svenpanne@chromium.org
a071b4e04b
Valgrind cleanliness, part 4: Delete CounterMap on exit.
...
This fixes 2 leaks, returning 112 bytes of lost memory.
As an additional bonus, a useless check has been removed (no need to check for
NULL before a delete).
Review URL: https://chromiumcodereview.appspot.com/9864029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 09:50:48 +00:00
erik.corry@gmail.com
6cb333cadf
Fix broken test.
...
Review URL: https://chromiumcodereview.appspot.com/9865019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 09:10:58 +00:00
loislo@chromium.org
410f3a3375
This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
...
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:52:00 +00:00
ulan@chromium.org
7a1cbb2db8
Remove dependency on _mkgmtime to determine local timezone offset
...
BUGS=v8:1386
TEST=
Review URL: https://chromiumcodereview.appspot.com/9600018
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:46:32 +00:00
erik.corry@gmail.com
bfb1e9e702
Fix edge case for case independent regexp character classes.
...
http://code.google.com/p/v8/issues/detail?id=2032
Review URL: https://chromiumcodereview.appspot.com/9860029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:42:37 +00:00
svenpanne@chromium.org
a3eccef3fa
Valgrind cleanliness, part 1: Delete current isolate on exit.
...
Currently we leak 140kB from 80 allocation sites when we evaluate a simple
"print(1+2)" in d8 and exit. This might not be a real problem in Chrome because
most of the time the whole process containing v8 vanishes, but it can hide real
leaks in a sea of false positives. Therefore, this CL and a few subsequent ones
clean this up a bit.
This simple CL alone fixes 45 leaks, leaving only 35 with a net loss of 2192
bytes (on ia32).
Review URL: https://chromiumcodereview.appspot.com/9791016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 07:37:06 +00:00
loislo@chromium.org
b414adb1f3
Complete switch to SnapshotObjectId.
...
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:47:37 +00:00
jkummerow@chromium.org
3f7244e37b
Properly AdjustAmountOfExternalAllocatedMemory() in d8
...
This is related to v8 issue 2022 but doesn't fix it as this patch only affects d8, while there is a related bug in the WebKit V8 bindings too.
Review URL: https://chromiumcodereview.appspot.com/9835055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:24:20 +00:00
ulan@chromium.org
59b06fd638
Reset function info counters after context disposal.
...
R=jkummerow@chromium.org
BUG=117767,V8:1902
Review URL: https://chromiumcodereview.appspot.com/9836091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:08:08 +00:00
danno@chromium.org
924b567382
Support reverse patching in merge-to-branch.sh
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9839056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 11:35:17 +00:00
jkummerow@chromium.org
d9936b4546
MIPS: Port count-based profiler
...
Port r11120 (548ba49bd).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9835083
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 11:29:44 +00:00
ulan@chromium.org
a47d1c0714
Fix the return type of the date set methods.
...
Date set methods (setMinutes, setHours, etc.) should return the time value as a number instead of JSDate.
R=jkummerow@chromium.org
TEST=test/mjsunit/regress/regress-2027.js
Review URL: https://chromiumcodereview.appspot.com/9809010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 10:13:03 +00:00
mstarzinger@chromium.org
5bca664574
MIPS: Improve polymorphic loads on single slots.
...
Port r11132 (91bdad6108).
Original commit message:
If all property lookups for a polymorphic load actually result in the
same field index under all maps, we can actually emit a monomorphic load
that is guarded by a map check that verifies that the actual map is in
the set of handled maps. This also allows GVN to get rid of redundant
such map checks.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9852007
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 09:41:53 +00:00
jkummerow@chromium.org
4e405b6945
Fix missing write barrier in CopyObjectToObjectElements.
...
Passing the write barrier mode as a parameter does not make sense, as the elements kind specific copiers know best whether a write barrier is needed or not.
BUG=119926
TEST=mjsunit/regress/regress-crbug-119926
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9808111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-25 15:16:06 +00:00
danno@chromium.org
8833c99552
Check double array bounds in HasElementImpl.
...
R=jkummerow@chromium.org
BUG=chromium:119925
TEST=test/mjsunit/regress/regress-119925.js
Review URL: https://chromiumcodereview.appspot.com/9808110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-25 14:21:51 +00:00
mstarzinger@chromium.org
ab4e4cd917
Improve polymorphic loads on single slots.
...
If all property lookups for a polymorphic load actually result in the
same field index under all maps, we can actually emit a monomorphic load
that is guarded by a map check that verifies that the actual map is in
the set of handled maps. This also allows GVN to get rid of redundant
such map checks.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9616014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 16:37:54 +00:00
vegorov@chromium.org
3ccc885c78
Revert arguments access support for inlined functions (r11109,r11118).
...
We are inserting HPushArgument instructions after HEnterInlined based on the environment at the point of the first arguments access. Which might create use before def if there are redundant phis in the environment.
Review URL: https://chromiumcodereview.appspot.com/9837041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:39:34 +00:00
fschneider@chromium.org
a43c00cbae
Fix use of uninitialized values in the runtime profiler.
...
Review URL: https://chromiumcodereview.appspot.com/9835054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:26:04 +00:00
danno@chromium.org
706c07d176
Prepare push to trunk. Now working on version 3.10.0.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9845013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:08:45 +00:00