jkummerow@chromium.org
4fe93b2d22
[msan] Do not unpoison heap if running on simulator.
...
With the simulator, MSan detects all memory accesses from JIT code
without the need for annotations.
We'd like to keep the annotation in the native (w/o simulator) mode
until we can move all MSan+V8 users to simulator mode.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/212833002
Patch from Evgeniy Stepanov <eugenis@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 12:45:00 +00:00
yangguo@chromium.org
4a5bccfc61
Tighten object verification.
...
Often, when we call MaybeObject::Verify, what we want is Object::ObjectVerify.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/218993005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 08:57:48 +00:00
dslomov@chromium.org
bd353dc3a0
Inline internal getters for typed arrays & friends.
...
R=hpayer@chromium.org , yangguo@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=20330
Review URL: https://codereview.chromium.org/212603014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 15:25:24 +00:00
dslomov@chromium.org
c873e813c5
Revert "Inline internal getters for typed arrays & friends."
...
This reverts commit r20330 for breaking arm64 nosnap tests.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/216993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 13:33:50 +00:00
dslomov@chromium.org
6d91c1e77f
Inline internal getters for typed arrays & friends.
...
R=hpayer@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/212603014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 12:02:52 +00:00
hpayer@chromium.org
94dc107504
The sweeper thread should not write the page flags. Added a sweeping complete phase, where the main thread writes the given page flags.
...
BUG=
R=jarin@chromium.org , jochen@chromium.org
Review URL: https://codereview.chromium.org/163683003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 12:33:35 +00:00
hpayer@chromium.org
e18aff1c4b
Use NoBarrier_Load and NoBarrier_Store in FreeListCategory::Concatenate.
...
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/138953018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-13 15:01:10 +00:00
hpayer@chromium.org
81347246da
Make prev and next pointer in pages list AtomicWords and access them using acquire/release semantics.
...
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/150413009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 15:40:23 +00:00
hpayer@chromium.org
1d8c83e7ab
Enable concurrent sweeping. Added some extra debugging checks for concurrent sweeping.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/138903009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 19:30:27 +00:00
jochen@chromium.org
c3383698ee
Rename MarkCompactCollector::StealMemoryFromSweeperThreads to RefillFreeLists
...
The swept memory is now collected on the foreground thread, so it's not
stealing the memory from the threads anymore
BUG=v8:3104
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/143463005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 12:48:10 +00:00
verwaest@chromium.org
4615e9edac
Reland v8:18458 "Load the global proxy from the context of the target function."
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/104013008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 10:46:39 +00:00
mstarzinger@chromium.org
9f4591c368
Add ability to disable inline bump-pointer allocation.
...
R=ulan@chromium.org , yurys@chromium.org
TEST=cctest/test-heap/DisableInlineAllocation
Review URL: https://codereview.chromium.org/69953023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 15:14:37 +00:00
mstarzinger@chromium.org
102950d7a3
Remove dead FixedSpace class from the spaces hierarchy.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/66003003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 16:36:14 +00:00
mstarzinger@chromium.org
d8e85bf0e0
Remove dead Space::ReserveSpace implementations.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/67813009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 14:15:29 +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
hpayer@chromium.org
f8a4bd7c4e
Make top and limit field in AllocationInfo private, assert on non-aligned setting of these fields, and eliminate indirect access over top address on top pointer.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/40083002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 09:58:21 +00:00
plind44@gmail.com
930b8b25bd
MIPS: Increase code space first page size due to r17334.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/39363004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 07:42:29 +00:00
danno@chromium.org
c91fa18de9
Partially annotate V8 for MemorySanitizer.
...
This is a part of https://codereview.chromium.org/26006004/ .
These changes are enough to run most apps that embed V8 (by additionally
ignoring all memory accesses from V8), but don't help testing V8 itself in any
way.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/27471003
Patch from Evgeniy Stepanov <eugenis@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 08:39:15 +00:00
hpayer@chromium.org
629b26c519
Use pages from lower to higher addresses in new space.
...
This CL constitutes the invariant that the top pointer in new space is always larger than objects allocated since the last new space garbage collection.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/26865004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-14 09:48:44 +00:00
jkummerow@chromium.org
7d819d713f
MIPS: Hydrogenisation of binops
...
Port r17104.
R=olivf@chromium.org
Review URL: https://codereview.chromium.org/26002002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 12:31:57 +00:00
olivf@chromium.org
c566aed204
Bump code space size for cctest/DeserializeFromSecondSerialization.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/25996002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 11:11:50 +00:00
olivf@chromium.org
66c610398f
Reland "Hydrogenisation of binops"
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/25494007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 08:17:11 +00:00
olivf@chromium.org
9459ed3ab4
Revert "Hydrogenisation of binops"
...
This reverts r17052-17054 for various build breaks.
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/25571002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 18:00:02 +00:00
olivf@chromium.org
8e1bfbf3f6
Bump old pointer space size.
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/25479003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 16:11:41 +00:00
mstarzinger@chromium.org
718a6a9a9e
Revert r16648, r16641, r16638 and r16637.
...
Original descriptions were:
- "Refactor and cleanup VirtualMemory."
- "Fix typo."
- "Deuglify V8_INLINE and V8_NOINLINE."
- "Don't align size on allocation granularity for unaligned ReserveRegion calls."
Reasons for the revert are:
- Our mjsunit test suite slower by a factor of 5(!) in release mode.
- Flaky cctest/test-alloc/CodeRange on all architectures and platforms.
- Tankage of Sunspider by about 6% overall (unverified).
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23970004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 18:30:01 +00:00
bmeurer@chromium.org
a797a35975
Refactor and cleanup VirtualMemory.
...
Remove a lot of platform duplication, and simplify the virtual
memory implementation. Also improve readability by avoiding bool
parameters for executability (use a dedicated Executability type
instead).
Get rid of the Isolate::UncheckedCurrent() call in the platform
code, as part of the Isolate TLS cleanup.
Use a dedicated random number generator for the address
randomization, instead of messing with the per-isolate random
number generators.
TEST=cctest/test-virtual-memory
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23641009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 08:47:02 +00:00
dcarney@chromium.org
afabbe177d
remove ISOLATE
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23480067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 07:28:47 +00:00
bmeurer@chromium.org
2fdadd7794
Drop OS::IsOutsideAllocatedSpace() and move the tracking to the MemoryAllocator.
...
Instead of globally tracking allocated space limits, which was
not implemented properly anyway (i.e. lack of synchronization
on the reading side), track it per MemoryAllocator (that is
per heap/isolate).
In particular, avoid to call IsBadWritePtr() on Windows, it is
obsolete and Microsoft strongly discourages its usage.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23903008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:17:57 +00:00
dcarney@chromium.org
bb01557abf
remove Isolate::Current from most files starting with 's' through 'v'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23549011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:54:08 +00:00
bmeurer@chromium.org
e76482f2da
Cleanup Mutex and related classes.
...
Drop the previous Mutex and ScopedLock classes from platform files.
Add new Mutex, RecursiveMutex and LockGuard classes, which are
designed after their C++11 counterparts, so that at some point
we can simply drop our custom code and switch to the C++11
classes. We distinguish regular and recursive mutexes, as the
latter don't work well with condition variables, which will be
introduced by a followup CL.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23625003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:58:30 +00:00
mstarzinger@chromium.org
34417e1d0f
Cleanup FooSpace::VerifyObject and ElementsAccessor::Validate.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/23273004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 13:39:20 +00:00
bmeurer@chromium.org
e9fcf8fc98
Revert the latest set of platform changes.
...
Revert "Fix NaCl build."
Revert "Revert target arch detection."
Revert "Fix typo."
Revert "Simplify implementation of Mutex."
Revert "Fix for older clang releases that lack __has_extension."
Revert "Reland initial bits of "Implement correct OS and CC detection.""
TBR=danno@chromium.org ,svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21095008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:51:46 +00:00
bmeurer@chromium.org
64bfd42a4c
Simplify implementation of Mutex.
...
Also moves Mutex to its own file mutex.{cc,h}.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21087012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:12:49 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
bmeurer@chromium.org
66efb96621
Fix compilation error introduced with r15287.
...
REGEXP was added to Code::Kind after TO_BOOLEAN_IC, but NUMBER_OF_KINDS,
which is used as array size for table[] in ReportCodeKindStatistics, was
still TO_BOOLEAN_IC + 1 (indirectly via LAST_IC_KIND).
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17636003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 09:09:25 +00:00
loislo@chromium.org
1a15f8f768
CPUProfiler: Simplify logging part of CreateCodeEvent functions.
...
We have 5 overloaded functions with name CreateCodeEvent.
All these functions have many common parts. I'd like to eliminate the difference between them.
TEST=existing tests
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/16901014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 12:55:19 +00:00
danno@chromium.org
61a23ceb4d
Refactor only: Rename JSGlobaPropertyCell to PropertyCell
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/17064002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:06:12 +00:00
hpayer@chromium.org
08a4a37616
Decrease size of first page of property cell space.
...
BUG=
R=danno@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17027006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:36:55 +00:00
hpayer@chromium.org
9e70cb84fb
As a last resort try to allocate out of the smaller size size-class in
...
the free list allocator.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17058002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:22:25 +00:00
hpayer@chromium.org
ce6a0e4def
Allow allocations in spaces with constant allocation size use the
...
smallest possible size-class.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16957003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 17:03:57 +00:00
danno@chromium.org
64ee36428a
Fix nosnap sarialization test failure (again)
...
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/16871002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 22:21:08 +00:00
danno@chromium.org
1b89cbf817
Separate Cell and PropertyCell spaces
...
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16631002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 15:03:44 +00:00
hpayer@chromium.org
169283def9
Perform incremental marking step after free-list allocation and clean-up incremental marking start condition.
...
BUG=
Review URL: https://codereview.chromium.org/14634007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-07 09:48:42 +00:00
danno@chromium.org
f8ddf3a262
Add monomorphic CompareNilICs and Crankshaft support
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/14367018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 11:32:17 +00:00
danno@chromium.org
244fa50a80
Make it possible to Crankshaft all kinds of stubs.
...
Review URL: https://codereview.chromium.org/14307006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-18 09:50:46 +00:00
hpayer@chromium.org
5198328f08
On-the-fly bookkeeping of PagedSpace memory kept in free-lists.
...
BUG=
Review URL: https://codereview.chromium.org/13895003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 10:24:24 +00:00
mstarzinger@chromium.org
f06084c13d
Revert "On-the-fly bookkeeping of PagedSpace memory kept in free-lists."
...
This reverts r14197 because of tes failures accross the board.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/13958004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:19:18 +00:00
hpayer@chromium.org
96220f984f
On-the-fly bookkeeping of PagedSpace memory kept in free-lists.
...
BUG=
Review URL: https://codereview.chromium.org/13798002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 08:07:58 +00:00
danno@chromium.org
02d75d734f
Use code_range()->exists() to determine the size of the first code page when code range is used.
...
Review URL: https://codereview.chromium.org/12452012
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 17:27:54 +00:00
hpayer@chromium.org
5d159d50e2
Execute a memory barrier when adding a new page to a space to synchronize access with concurrent sweepers.
...
BUG=
Review URL: https://codereview.chromium.org/12342017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 09:15:39 +00:00