| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
That's just step 1, moving code-related functions of ArtMethod to
another class. That class is only a wrapper on an ArtMethod, but will
be changed to be a wrapper around compiled code.
Change-Id: I6f35fc06d37220558dff61691e51ae20066b0dd6
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit e3e2fe5ecc16184ba91018adb3bfbec1c5880c29.
Fixes an incorrect CHECK_GT into CHECK_GE in method
Instrumentation::ComputeFrameId.
Bug: 22519499
Change-Id: I0a11d378f3baa728b9176ff086fe4b835b30bb46
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Tentative, will monitor bots if flakiness is fixed.
Bug: 22720414
This reverts commit 18656fefc7e68e2549a8fa93455074d359d1efa8.
Change-Id: I53b645b73207ccd21cad6ddac1de483bcc158794
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If we visit the find array class cache as roots it will prevent
unloading for any array classes in the cache. This is not ideal
since it may take a long time for the entries to get replaced.
Also added a missed exception check in getDeclaredClasses.
Bug: 22720414
Change-Id: Id34557fd034b3e3967ef629301ee251931937849
|
|\| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unregister and delete oat file when we call DexFile.closeDexFile if
all of the dex files are no longer in use. We store the oat file as
the first element of the dex files array (cookie).
Added a test that reads the proc maps to ensure there are no
unload-ex maps. Also some clean up.
Bug: 22720414
Change-Id: I52ab84562d1045e94b9a37aafe57609a14f188f7
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To support structured locking when balanced-locking verification
failed, count lock and unlock operations in the verifier.
Bug: 23502994
Change-Id: I2bb915da6e3d43c49723a943b42d4d5a7c939aa1
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 18120045
Change-Id: I3934158e6ea4868d9baa1dfcc53b603ca6c521e2
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently on x64, will do the other architectures in
different changes.
Change-Id: I15fbbadb450dd21787809759a8b14b21b1e42624
|
|\ \ \ \
| |_|/ /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Times out on some run-tests.
Bug: 22519499
This reverts commit 3079e28b00accd19aa1153929fb00497d00956d9.
Change-Id: I4c612a5af20e4481eb9865f90abd429f4a40ce57
|
|\| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When instrumenting code compiled with inlining, we must compute
frame IDs like instrumentation did for pushing instrumentation
stack frames.
Bug: 22519499
Change-Id: I4a72dbe9e4d2fd4985e49f8261b54c96df7c4a81
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Takes over a large amount of functionality from the class linker.
Changed OatFile to loading the same OatFile multiple times. This is
required for unloading OatFiles and moving dex caches to BSS since
these require a different OatFile for each dex cache and class
loader.
Bug: 22720414
Change-Id: I0321096723a294dc72949f21e66da82727b512fc
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Allow passing ArenaAllocatorAdapter (or any other allocator)
to HashSet/HashMap and create appropriate Arena- aliases.
Use the ArenaHashMap in StackMapsStream.
Update arena allocator adapters' construct()/destroy() to
C++11 std::allocator<> API.
Change-Id: I18544f718f84c6d6580228dd35297daf7f6afb5e
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Different parts of CreatePeer may throw an exception, especially
the Thread constructor. Do not abort in such a case, but return
and report a failure to attach/create a thread.
Bug: 24200698
(cherry picked from commit 2a196784553f4fd0c0f7d4b8aac87281db3a4748)
Change-Id: I06f2c997f0451c71f791d1f12bea6f8ee65e8ab2
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts commit 1675f2c5581c7b0b83c8823e2b4eb0ec62b28b7f.
With latest Android source, now we can boot up without this workaround.
BUG: 19180814
Change-Id: I8a7852573856dbbe10a5f4823f7261b8ecc7490c
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implement dchecked_vector<> template that DCHECK()s element
access and insert()/emplace()/erase() positions. Change the
ArenaVector<> and ScopedArenaVector<> aliases to use the new
template instead of std::vector<>. Remove DCHECK()s that
have now become unnecessary from the Optimizing compiler.
Change-Id: Ib8506bd30d223f68f52bd4476c76d9991acacadc
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Used to prevent class unloading on methods that have breakpoints.
Bug: 22720414
Change-Id: I9aee8bcbfdf253607e89dfc55a50ba3f11d99206
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These are no longer used as entrypoints. Make them proper runtime
functions local to the interpreter.
Bump oat version.
Change-Id: Icdd92e20eafc5668b68eeebf55cf624560f462b3
|
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead, move the MEMORY_TOOL_MAKE_* calls out-of-line.
Bug: 24729377
This reverts commit d4cf1e4fe0624b99df22ed5556dc1d042b32a7e0.
Change-Id: I9bccc8bd4a691a2d018b84de8b95bc68fafad4e1
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Move the x86/x86-64 specific alloc entrypoint generation code to a macro
GENERATE_ALLOC_ENTRYPOINTS_FOR_EACH_ALLOCATOR in a common file to remove
duplication.
This will make it easier to selectively add more hand-written assembly
allocation fast path code.
Rename RETURN_IF_RESULT_IS_NON_ZERO to
RETURN_IF_RESULT_IS_NON_ZERO_OR_DELIVER in the x86/x86_64 files to match
the other architectures.
Bug: 9986565
Change-Id: I56f33b790f94db68891db8a2f42e9231d1770eef
|
|\ \ \ \ \
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
* commit '35ef974da353b13938fb0f3272c03070ad728431':
ART: Mark deallocated arena memory as inaccessible.
|
| |\ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Mark arena and scoped arena memory freed by allocator
adapters as inaccessible. This can help catch accesses to
old storage of a container, for example the old data of an
ArenaVector<> that's been resized.
Together with debug-mode enforcement of destruction of all
scoped arena containers, this provides strong verification
of their memory usage. However, this does not apply to the
normal (non-scoped) arena memory held by arena containers
as they are typically not destroyed if they are themselves
located in the arena. ArenaBitVector memory, whether in
normal or scoped arena, isn't marked either.
Change-Id: I4d2a80fedf7ceb7d4ce24ee8e7bcd53513171388
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* commit '7b5c395e9a50f988ca2275a429df17b6abbcc475':
Fix style issue in stub_test.
|
| |\ \ \ \ \
| | |_|_|/ /
| |/| | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I8c338d48f479337b176039c9398d6ee2b44fe6fd
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* commit 'bcb71a2ce5bcb516f76fc9fe838b61b0c48e1210':
MIPS64r6 Assembler Tests
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Assembler tests for:
- SQRT.fmt - ABS.fmt - ROUND.L.fmt - ROUND.W.fmt
- CEIL.L.fmt - CEIL.W.fmt - FLOOR.L.fmt - FLOOR.W.fmt
- SEL.fmt - RINT.fmt - CLASS.fmt - MIN.fmt
- MAX.fmt - cvt.d.l - BITSWAP - DBITSWAP
- DSBH - DSHD - WSBH - ROTR
- SELEQZ - SELNEZ - CLZ - CLO
- DCLZ - DCLO - SC - SCD
- LL - LLD
These are the assembler instructions which were added to support
intrinsic functions on MIPS64. Tests for additional assembler
instructions will follow.
Support added to the testing infrastructure for:
- Assembler instructions which use three registers; previously
instructions were limited to one, or two, registers.
- Immediate values which have their sizes specified by the number of
bits required to store them rather than the number of bytes, in both
signed and unsigned versions.
Change-Id: I38c07dcbf2539825b25bed13aac05a26fa594b0b
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* commit '0edc0bdb1dc8018ec0000702e6de60e99537b519':
Disable class unloading when tracing is active
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Tracing keeps a lot of pointers to ArtMethods that could belong to
classes that we are going to unload. A quick fix for this is to
disable class unloading when tracing is active.
Bug: 24414774
Bug: 22720414
Change-Id: Ia5619cbd7c9fd558eaa2a5000871d287213c4a76
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* commit '02706fcb35325ba11825d575eb7278e3b9d6dfac':
Delete DexFiles in closeDexFiles
|
| |\ \ \ \ \ \ |
|
| | |/ / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
TODO: Also unmap oat code.
Bug: 22720414
Change-Id: I4d003d9b7f8c22890e7b40121a73081524e71f42
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* commit '3a9122a5f9f057e9acb20083cd7e076f3bbf8577':
Add exclusion between instrumentation and GC
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Instrumentation calls VisitClasses while exclusive holding the
mutator lock. This can cause deadlocks since VisitClasses needs to
decode JNI weak globals. If the system weak slow path flag is set,
then we wait holding locks while exclusive holding the mutator lock.
This causes a deadlock since the GC cannot acquire the mutator lock
to sweep system weaks.
This fixes a deadlock seen in one of the tracing tests.
Change-Id: I580152118e068a70f309dcc19df4144afec835dd
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
build config."
* commit '4b6d025b914e82652ca72e2917b70b2231ead13f':
Make it possible to change the read barrier type as build config.
|