summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Add an abstraction over a compiled code."Nicolas Geoffray2015-10-1331-605/+590
|\
| * Add an abstraction over a compiled code.Nicolas Geoffray2015-10-1331-605/+590
| | | | | | | | | | | | | | | | 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
* | Merge "Revert "Revert "Fix instrumentation frame check with inlining"""Sebastien Hertz2015-10-133-6/+25
|\ \
| * | Revert "Revert "Fix instrumentation frame check with inlining""Sebastien Hertz2015-10-123-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e3e2fe5ecc16184ba91018adb3bfbec1c5880c29. Fixes an incorrect CHECK_GT into CHECK_GE in method Instrumentation::ComputeFrameId. Bug: 22519499 Change-Id: I0a11d378f3baa728b9176ff086fe4b835b30bb46
* | | Merge "Revert "Unload oat files""Nicolas Geoffray2015-10-137-150/+94
|\ \ \
| * | | Revert "Unload oat files"Nicolas Geoffray2015-10-137-150/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tentative, will monitor bots if flakiness is fixed. Bug: 22720414 This reverts commit 18656fefc7e68e2549a8fa93455074d359d1efa8. Change-Id: I53b645b73207ccd21cad6ddac1de483bcc158794
* | | | Avoid visiting find array class cache as rootsMathieu Chartier2015-10-122-3/+7
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "Unload oat files"Mathieu Chartier2015-10-127-94/+150
|\| |
| * | Unload oat filesMathieu Chartier2015-10-127-94/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge "ART: Lock counting in the interpreter"Andreas Gampe2015-10-129-9/+202
|\ \ \ | |/ / |/| |
| * | ART: Lock counting in the interpreterAndreas Gampe2015-10-099-9/+202
| | | | | | | | | | | | | | | | | | | | | | | | To support structured locking when balanced-locking verification failed, count lock and unlock operations in the verifier. Bug: 23502994 Change-Id: I2bb915da6e3d43c49723a943b42d4d5a7c939aa1
* | | Merge "Optimizing: Move GraphChecker memory allocations to arena."Vladimir Marko2015-10-122-0/+2
|\ \ \
| * | | Optimizing: Move GraphChecker memory allocations to arena.Vladimir Marko2015-10-122-0/+2
| | | | | | | | | | | | | | | | | | | | Bug: 18120045 Change-Id: I3934158e6ea4868d9baa1dfcc53b603ca6c521e2
* | | | Merge "Intrinsify System.arraycopy."Nicolas Geoffray2015-10-121-0/+1
|\ \ \ \ | |_|_|/ |/| | |
| * | | Intrinsify System.arraycopy.Nicolas Geoffray2015-10-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently on x64, will do the other architectures in different changes. Change-Id: I15fbbadb450dd21787809759a8b14b21b1e42624
* | | | Merge "Revert "Fix instrumentation frame check with inlining""Nicolas Geoffray2015-10-123-25/+6
|\ \ \ \ | |_|/ / |/| | |
| * | | Revert "Fix instrumentation frame check with inlining"Nicolas Geoffray2015-10-123-25/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Times out on some run-tests. Bug: 22519499 This reverts commit 3079e28b00accd19aa1153929fb00497d00956d9. Change-Id: I4c612a5af20e4481eb9865f90abd429f4a40ce57
* | | | Merge "Fix instrumentation frame check with inlining"Sebastien Hertz2015-10-123-6/+25
|\| | |
| * | | Fix instrumentation frame check with inliningSebastien Hertz2015-10-083-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When instrumenting code compiled with inlining, we must compute frame IDs like instrumentation did for pushing instrumentation stack frames. Bug: 22519499 Change-Id: I4a72dbe9e4d2fd4985e49f8261b54c96df7c4a81
* | | | Add OatFileManagerMathieu Chartier2015-10-0914-431/+545
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | ART: Use arena allocator with HashSet/HashMap.Vladimir Marko2015-10-094-61/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "ART: Do not abort on exception in CreatePeer"Andreas Gampe2015-10-091-1/+16
|\ \ \ \ | |_|_|/ |/| | |
| * | | ART: Do not abort on exception in CreatePeerAndreas Gampe2015-10-081-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Revert "Disable clang optimization to boot up on arm64.""Chih-hung Hsieh2015-10-081-4/+0
|\ \ \ \ | |/ / / |/| | |
| * | | Revert "Disable clang optimization to boot up on arm64."Chih-hung Hsieh2015-10-081-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1675f2c5581c7b0b83c8823e2b4eb0ec62b28b7f. With latest Android source, now we can boot up without this workaround. BUG: 19180814 Change-Id: I8a7852573856dbbe10a5f4823f7261b8ecc7490c
* | | | Add DCHECKs to ArenaVector and ScopedArenaVector.Vladimir Marko2015-10-085-21/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Mark breakpoint roots"Mathieu Chartier2015-10-074-2/+18
|\ \ \ \
| * | | | Mark breakpoint rootsMathieu Chartier2015-10-064-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Used to prevent class unloading on methods that have breakpoints. Bug: 22720414 Change-Id: I9aee8bcbfdf253607e89dfc55a50ba3f11d99206
* | | | | ART: Remove interpreter entrypointsAndreas Gampe2015-10-0719-195/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are no longer used as entrypoints. Make them proper runtime functions local to the interpreter. Bump oat version. Change-Id: Icdd92e20eafc5668b68eeebf55cf624560f462b3
* | | | | Revert "Quick: Work around large frame sizes for x86_64."Vladimir Marko2015-10-072-6/+23
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead, move the MEMORY_TOOL_MAKE_* calls out-of-line. Bug: 24729377 This reverts commit d4cf1e4fe0624b99df22ed5556dc1d042b32a7e0. Change-Id: I9bccc8bd4a691a2d018b84de8b95bc68fafad4e1
* | | | Merge "Refactor the alloc entry point generation code."Hiroshi Yamauchi2015-10-063-383/+210
|\ \ \ \
| * | | | Refactor the alloc entry point generation code.Hiroshi Yamauchi2015-10-053-383/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | am 35ef974d: Merge "ART: Mark deallocated arena memory as inaccessible."Vladimir Marko2015-10-067-24/+79
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | * commit '35ef974da353b13938fb0f3272c03070ad728431': ART: Mark deallocated arena memory as inaccessible.
| * | | | Merge "ART: Mark deallocated arena memory as inaccessible."Vladimir Marko2015-10-067-24/+79
| |\ \ \ \
| | * | | | ART: Mark deallocated arena memory as inaccessible.Vladimir Marko2015-09-307-24/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | am 7b5c395e: Merge "Fix style issue in stub_test."Calin Juravle2015-10-061-5/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '7b5c395e9a50f988ca2275a429df17b6abbcc475': Fix style issue in stub_test.
| * | | | | Merge "Fix style issue in stub_test."Calin Juravle2015-10-061-5/+5
| |\ \ \ \ \ | | |_|_|/ / | |/| | | |
| | * | | | Fix style issue in stub_test.Calin Juravle2015-10-061-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I8c338d48f479337b176039c9398d6ee2b44fe6fd
* | | | | | am bcb71a2c: Merge "MIPS64r6 Assembler Tests"Andreas Gampe2015-10-061-0/+27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'bcb71a2ce5bcb516f76fc9fe838b61b0c48e1210': MIPS64r6 Assembler Tests
| * | | | | Merge "MIPS64r6 Assembler Tests"Andreas Gampe2015-10-061-0/+27
| |\ \ \ \ \
| | * | | | | MIPS64r6 Assembler TestsChris Larsen2015-10-051-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | am 0edc0bdb: Merge "Disable class unloading when tracing is active"Mathieu Chartier2015-10-063-0/+20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '0edc0bdb1dc8018ec0000702e6de60e99537b519': Disable class unloading when tracing is active
| * | | | | | Disable class unloading when tracing is activeMathieu Chartier2015-10-053-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | am 02706fcb: Merge "Delete DexFiles in closeDexFiles"Mathieu Chartier2015-10-051-16/+26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '02706fcb35325ba11825d575eb7278e3b9d6dfac': Delete DexFiles in closeDexFiles
| * | | | | | Merge "Delete DexFiles in closeDexFiles"Mathieu Chartier2015-10-051-16/+26
| |\ \ \ \ \ \
| | * | | | | | Delete DexFiles in closeDexFilesMathieu Chartier2015-10-051-16/+26
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TODO: Also unmap oat code. Bug: 22720414 Change-Id: I4d003d9b7f8c22890e7b40121a73081524e71f42
* | | | | | | am 3a9122a5: Merge "Add exclusion between instrumentation and GC"Mathieu Chartier2015-10-0513-19/+179
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '3a9122a5f9f057e9acb20083cd7e076f3bbf8577': Add exclusion between instrumentation and GC
| * | | | | | Merge "Add exclusion between instrumentation and GC"Mathieu Chartier2015-10-0513-19/+179
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | Add exclusion between instrumentation and GCMathieu Chartier2015-10-0513-19/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | am 4b6d025b: Merge "Make it possible to change the read barrier type as ↵Hiroshi Yamauchi2015-10-051-2/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | build config." * commit '4b6d025b914e82652ca72e2917b70b2231ead13f': Make it possible to change the read barrier type as build config.