summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Revert "Revert "Implement suspend checks in new compiler."""Nicolas Geoffray2014-09-1616-22/+334
|\
| * Revert "Revert "Implement suspend checks in new compiler.""Nicolas Geoffray2014-09-1616-22/+334
| | | | | | | | | | | | This reverts commit 7e3652c45c30c1f2f840e6088e24e2db716eaea7. Change-Id: Ib489440c34e41cba9e9e297054f9274f6e81a2d8
* | Merge "ART: fix highest PC values removal in SrcMap.DeltaFormat()"Vladimir Marko2014-09-161-1/+1
|\ \ | |/ |/|
| * ART: fix highest PC values removal in SrcMap.DeltaFormat()Yevgeny Rouban2014-09-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The conversion from absolute to offset Line Number Table values mistakenly removed all values less than the highest one, which resulted in clearing all the table. The fix is to use the reverse condition finding the highest correct PC value in the sorted table. Change-Id: I9850c2c46c1910b809043dd8163eb930a7849ded Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
* | Merge "Fix a bug in the register allocator."Nicolas Geoffray2014-09-163-1/+61
|\ \ | |/ |/|
| * Fix a bug in the register allocator.Nicolas Geoffray2014-09-163-1/+61
| | | | | | | | | | | | | | | | We need to take the live interval that starts first to know until when a register is free, instead of using the live interval that is last in the inactive list. Change-Id: I2c9f87481ff1b4fc7b9948db7559b8d3b11d84ce
* | Merge "ART: Do not unlink unreadable ELF files"Andreas Gampe2014-09-161-7/+3
|\ \
| * | ART: Do not unlink unreadable ELF filesAndreas Gampe2014-09-151-7/+3
|/ / | | | | | | | | | | | | | | | | | | Unlinking can be racy with respect to secondary oat files. Bug: 17496483 (cherry picked from commit 00503dad8139dcf7b7fc7986ace93e3e45198096) Change-Id: I53f92a924b34dfcf50d7e02487c5f8f23de627ca
* | Merge "ART: Make elf loading not abort"Andreas Gampe2014-09-168-188/+456
|\ \
| * | ART: Make elf loading not abortAndreas Gampe2014-09-158-188/+456
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Changes elf_file code to use less CHECKs and instead return error values (usually nullptr). This avoids aborts. In oat_file, when loading an oat file fails, try to unlink at. If this succeeds, on the next run we may compile again. Bug: 17491333 (cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a) Change-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af
* | Merge "ART: Rename Handle hierarchy"Andreas Gampe2014-09-1629-253/+324
|\ \
| * | ART: Rename Handle hierarchyAndreas Gampe2014-09-1529-253/+324
|/ / | | | | | | | | | | | | Bring the names in line with normal OO principles: ConstHandle becomes Handle, and Handle becomes MutableHandle. Change-Id: I0f018eb7ba28bc422e3a23dd73a6cbe6fc2d2044
* | Merge "ART: Update host run test script"Andreas Gampe2014-09-151-1/+1
|\ \
| * | ART: Update host run test scriptAndreas Gampe2014-09-151-1/+1
| |/ | | | | | | | | | | Widen the regex filtering libsigchain preload message. Change-Id: I75f7ed45109330242bd1e20a43dd7149588b8c9a
* | Merge "ART: Allow quickening in the boot image"Andreas Gampe2014-09-156-330/+404
|\ \
| * | ART: Allow quickening in the boot imageAndreas Gampe2014-09-156-330/+404
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Update the class linker to accept class status from the boot image in compiler mode. Update compiler driver to allow quickening for boot image classes. Update method verifier to accept quickened instructions in compiler mode when we just want to dump. Update oatdump to the new verifier API. Bug: 17316928 (cherry picked from commit 35439baf287b291b67ee406308e17fc6194facbf) Change-Id: I9ef1bfd78b0d93625b89b3d662131d7d6e5f2903
* | Merge "ART: Change access flag behavior in verifier"Andreas Gampe2014-09-1522-65/+586
|\ \ | |/ |/|
| * ART: Change access flag behavior in verifierAndreas Gampe2014-09-1522-65/+586
|/ | | | | | | | | | Note: this moves the miranda modifier to the upper 16 bit. Bug: 16161620 (cherry picked from commit 7fc8f90b7160e879143be5cfd6ea3df866398884) Change-Id: I2f591d53b7d1559171e70aaaf22225d94b4882f5
* Merge "Revert "Implement suspend checks in new compiler.""Nicolas Geoffray2014-09-1511-267/+5
|\
| * Revert "Implement suspend checks in new compiler."Nicolas Geoffray2014-09-1511-267/+5
| | | | | | | | | | | | This reverts commit 6fbce029fba3ed5da6c36017754ed408e6bcb632. Change-Id: Ia915c27873b021e658a10212e559095dfc91284e
* | Merge "Revert "Add tests for IF_EQZ for suspend checks.""Nicolas Geoffray2014-09-152-18/+1
|\ \
| * | Revert "Add tests for IF_EQZ for suspend checks."Nicolas Geoffray2014-09-152-18/+1
| | | | | | | | | | | | | | | | | | This reverts commit 58bdd18fb060979c22a1fd1a15c2efdcdd19c1c5. Change-Id: I1bd4db03743cf57a1fd930baf6d9fe0105453c8c
* | | Merge "Add tests for IF_EQZ for suspend checks."Nicolas Geoffray2014-09-152-1/+18
|\ \ \ | |/ /
| * | Add tests for IF_EQZ for suspend checks.Nicolas Geoffray2014-09-152-1/+18
|/ / | | | | | | | | | | Also remove leftover debugging. Change-Id: If7d3119bc03b9ad6c1228fbde781162d0e62753f
* | Merge "Implement suspend checks in new compiler."Nicolas Geoffray2014-09-1511-5/+267
|\ \ | |/
| * Implement suspend checks in new compiler.Nicolas Geoffray2014-09-1511-5/+267
|/ | | | | | | For simplicity, they are currently placed on all (dex-level) back edges, and at method entry. Change-Id: I6e833e244d559dd788c69727e22fe40aff5b3435
* Merge "ART: Consider clinit elimination for inlining"Vladimir Marko2014-09-151-2/+11
|\
| * ART: Consider clinit elimination for inliningRazvan A Lupusoru2014-09-121-2/+11
| | | | | | | | | | | | | | | | | | Currently inliner rejects inlining method if class initialization is needed. However, if it has been proven already that it was done, then inlining can safely proceed. Change-Id: Iaf1638fcfffff1bcf66010dc39090c77e009a1bb Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
* | Merge "Add 5 minute time out to host run tests."Ian Rogers2014-09-151-0/+12
|\ \
| * | Add 5 minute time out to host run tests.Ian Rogers2014-09-141-0/+12
|/ / | | | | | | Change-Id: I88b23ab71b89f81d54162ea34d4e28f72087f2b2
* | Merge "Add native support for FinalizerList.makeCircularListIfUnenqueued"Mathieu Chartier2014-09-149-25/+154
|\ \
| * | Add native support for FinalizerList.makeCircularListIfUnenqueuedMathieu Chartier2014-09-149-25/+154
|/ / | | | | | | | | | | | | | | | | | | | | | | Called from FinalizerReference.enqueueSentinelReference to prevent a race where the GC updates pendingNext of the sentinel reference before enqueueSentinelReference. Bug: 17462553 (cherry picked from commit 3256166df40981f1f1997a5f00303712277c963f) Change-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2
* | Merge "Add time out to dump check point."Ian Rogers2014-09-141-1/+5
|\ \
| * | Add time out to dump check point.Ian Rogers2014-09-131-1/+5
|/ / | | | | | | Change-Id: I2263c092c9957585ae90cf846e77dc8861f8a14b
* | Merge "Remove dex file index building mutex."Ian Rogers2014-09-132-15/+14
|\ \
| * | Remove dex file index building mutex.Ian Rogers2014-09-122-15/+14
|/ / | | | | | | | | | | | | | | First thread to get to max misses builds the index and sets an atomic, other threads continue and return null. Avoids lock contention and removes a member variable. Change-Id: Ia91e4a8fd915941aea849f019c85b67894ec6e71
* | Merge "Pass current thread as argument to alloc instrumentation."Ian Rogers2014-09-133-6/+3
|\ \
| * | Pass current thread as argument to alloc instrumentation.Ian Rogers2014-09-123-6/+3
| |/ | | | | | | | | | | | | Avoids recomputation in the hot allocation path when instrumentation is enabled. Change-Id: Ic6e7d7d0744f4756787f75d21fddd3c50280b588
* | Merge "Fix stale root error in verifier"Mathieu Chartier2014-09-135-10/+41
|\ \ | |/ |/|
| * Fix stale root error in verifierMathieu Chartier2014-09-125-10/+41
|/ | | | | | | | | | | | | | | There was a stale root error caused by the static roots from the reg types. These were visitied if there was an active verifier in the method_verifiers_ but this is not always the case when a GC is run. The fix is to always visit the static method verifier roots. This only showed up as a bug without an image since these roots were primitive classes and always in the image, and therefore didn't ever need to be updated due to moving GC. (cherry picked from commit 6167864e28e4e12658ebdbaf1d5239acdaf4aaa4) Change-Id: I592f2770570de97b431671cfbd409f63697892f1
* Merge "Compile time performance improvements focusing on interpret-only."Ian Rogers2014-09-1266-1934/+1982
|\
| * Compile time performance improvements focusing on interpret-only.Ian Rogers2014-09-1266-1934/+1982
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce virtual method dispatch in the method verifier and make more code inline-able. Add a StringPiece with const char* equality operator to avoid redundant StringPieces and strlens. Remove back link from register line to verifier and pass as argument to reduce size of RegisterLine. Remove instruction length from instruction flags and compute from the instruction, again to reduce size. Add suspend checks to resolve and verify to allow for more easy monitor inflation and reduce contention on Locks::thread_list_suspend_thread_lock_. Change ThrowEarlierClassFailure to throw pre-allocated exception. Avoid calls to Thread::Current() by passing self. Template specialize IsValidClassName. Make ANR reporting with SIGQUIT run using checkpoints rather than suspending all threads. This makes the stack/lock analysis less lock error prone. Extra Barrier assertions and condition variable time out is now returned as a boolean both from Barrier and ConditionVariable::Wait. 2 threaded host x86-64 interpret-only numbers from 341 samples: Before change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms After change: Avg 139.163% 99% CI 3.027ms to 838.257ms Reduction in average compile time after change is 20.9%. Slow-down without change is 26.5%. Bug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable could return unresolved type when class loading is disabled. Bug: 17398101 Change-Id: Id59ce3cc520701c6ecf612f7152498107bc40684
* | Merge "Fix and re-enable FreeList large object space for 64 bit"Mathieu Chartier2014-09-125-227/+244
|\ \
| * | Fix and re-enable FreeList large object space for 64 bitMathieu Chartier2014-09-125-227/+244
| |/ | | | | | | | | | | | | | | | | | | Not enabled on 32 bit due to virtual memory fragmentation concerns. The new free list large object space ensures that allocations are page aligned by using a side table for accounting data. (cherry picked from commit 66e222aa48e6d2fe4c78a1df938364b82bc83e72) Change-Id: Idbcbe75cb86b6d9b3d8b20f3048631a48c511458
* | Merge "Quick compiler (arm64) Fix inline Math.round()"buzbee2014-09-123-3/+17
|\ \ | |/ |/|
| * Quick compiler (arm64) Fix inline Math.round()buzbee2014-09-123-3/+17
|/ | | | | | | | | | | | Math.round is detected and inlined for arm64. However, the arm64 backend incorrectly modified a source operand in place during the round sequence. Depending on how registers are allocated, that modification could persist. Changed to use a temp register for the intermediate result. Internal b/17411468 Change-Id: I7c636f985e193f8ff838768fde3b741e443bb1bb
* Merge "Add a test for our NPE checks."Nicolas Geoffray2014-09-123-0/+488
|\
| * Add a test for our NPE checks.Nicolas Geoffray2014-09-123-0/+488
| | | | | | | | Change-Id: Ic83af6c582cd955168d01db7bdbdf27aebff64ab
* | Merge "x86 fault handler does not know about movb"Nicolas Geoffray2014-09-121-3/+4
|\ \
| * | x86 fault handler does not know about movbSerguei Katkov2014-09-111-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | mov byte instruction is not known for fault handler and therefore it cannot catch null pointer exception represented by this instruction. As a result implicit null check does not work. Change-Id: I45d6056f838d1568fce3de58218437fc12d1c45b Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>