summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Add handler for printing java stack traces for compiled code SIGSEGV.Mathieu Chartier2014-04-0110-74/+148
| | | | | | | | | | | Added a new FaultHandler which attempts to print a java stack trace when a SIGSEGV occurse in generated code. This should help debugging compiler and GC related heap corruption. Bug: 13725693 Bug: 12934910 Change-Id: Id54d83ea180c222eb86d449c61926e83f0b026ad
* Merge "Fix stack overflow slow path error."Mathieu Chartier2014-04-011-1/+1
|\
| * Fix stack overflow slow path error.Mathieu Chartier2014-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | The frame size without spill was being passed into the slow path instead of the spill size. This was incorrect since only the spills will have been pushed at the point of the overflow check. Also addressed an other comment. Change-Id: Ic6e455122473a8f796b291d71f945bcf72788662
* | Allow mixing of thread offsets between 32 and 64bit architectures.Ian Rogers2014-04-0131-799/+948
| | | | | | | | | | | | | | Begin a more full implementation x86-64 REX prefixes. Doesn't implement 64bit thread offset support for the JNI compiler. Change-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147
* | Merge "art: Make calling convention immune to SIRT structure change"Andreas Gampe2014-04-011-2/+7
|\ \
| * | art: Make calling convention immune to SIRT structure changeDmitry Petrochenko2014-04-011-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce stack_indirect_reference_table::referencesOffset and rely on it in calling convention to avoid issues if SIRT structure change. Change-Id: Icc0c5c5b1313173df2ee519ab8934183074fdfb6 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | | Merge "Fix instruction printing for filled-new-array"Andreas Gampe2014-04-011-0/+14
|\ \ \
| * | | Fix instruction printing for filled-new-arrayAndreas Gampe2014-03-311-0/+14
| | |/ | |/| | | | | | | | | | | | | | | | Only print the registers that are actually used. The rest is garbage. Change-Id: Ic9f03a51f81b95f7c70cf3e19122c8980003ae36
* | | Merge "Return correct JDWP type tag for array class"Sebastien Hertz2014-04-011-11/+17
|\ \ \ | |_|/ |/| |
| * | Return correct JDWP type tag for array classSebastien Hertz2014-03-311-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | Uses GetTypeTag function to get JDWP type tag for a class. This fixes the returned type tag in ClassObjectReference.ReflectedType command. Bug: 13689172 Change-Id: Ibb9006eb604d84cfb8e279eaeed1982a136d6510
* | | Implement implicit stack overflow checksDave Allison2014-03-317-25/+308
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | This also fixes some failing run tests due to missing null pointer markers. The implementation of the implicit stack overflow checks introduces the ability to have a gap in the stack that is skipped during stack walk backs. This gap is protected against read/write and is used to trigger a SIGSEGV at function entry if the stack will overflow. Change-Id: I0c3e214c8b87dc250cf886472c6d327b5d58653e
* | Merge "Fix a DCHECK failure when causing GC from DDMS."Hiroshi Yamauchi2014-03-313-18/+41
|\ \
| * | Fix a DCHECK failure when causing GC from DDMS.Hiroshi Yamauchi2014-03-283-18/+41
| | | | | | | | | | | | | | | Bug: 13647069 Change-Id: Iae2746b2b7b4493fcf5f0d40d2bf36a9b2d2efc8
* | | Merge "Remove use of pthread_cond_timedwait_monotonic."Narayan Kamath2014-03-311-5/+9
|\ \ \
| * | | Remove use of pthread_cond_timedwait_monotonic.Narayan Kamath2014-03-201-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use posix compliant pthread_condattr_setclock instead. Also, remove usage of HAVE_TIMEDWAIT_MONOTONIC and replace it with a specific reference to the only supported platform that doesn't have it. Change-Id: I933f05c5b4965bab88ccd8e3e26c91549ed4184d
* | | | Merge "Fix non concurrent mark sweep ergonomics."Mathieu Chartier2014-03-281-1/+17
|\ \ \ \
| * | | | Fix non concurrent mark sweep ergonomics.Mathieu Chartier2014-03-281-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we would continue to do sticky GC until the sticky GC did not free enough memory for the allocation, this was excessive since it could do one sticky GC per allocation. The new logic uses the next GC type before trying all the GCs in the plan. Before memalloc benchmark (non concurrent mark sweep): Total time spent in GC: 11.212701s Score: 7790 After: Total time spent in GC: 9.422676s Score: 6870 Change-Id: Iba75b70ea825ef3fd4b3e064d4f12c2fe5a3b176
* | | | | Merge "Some fixes for comments and implied conversions."Jeff Hao2014-03-285-19/+19
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Some fixes for comments and implied conversions.Jeff Hao2014-03-285-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addresses comments in: https://android-review.googlesource.com/#/c/89148/3 Change-Id: If21cfaa541210c8702371efd1e6d4f071a7b9ec3
* | | | | Merge "Swap allocation stacks in pause."Mathieu Chartier2014-03-284-134/+57
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Swap allocation stacks in pause.Mathieu Chartier2014-03-284-134/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables us to collect objects allocated during the GC for both sticky, partial, and full GC. This also significantly simplifies GC code. No measured performance impact on benchmarks, but this should slightly increase sticky GC throughput. Changed RevokeRosAllocThreadLocalBuffers to happen at most once per GC. Previously it occured twice if pre-cleaning was enabled. Renamed HandleDirtyObjectsPhase to PausePhase and enabled it for non-concurrent GC. This helps reduce duplicated code which was in both HandleDirtyObjectsPhase for concurrent GC and ReclaimPhase for non-concurrent GC. Change-Id: I533414b5c2cd2800f00724418e0ff90e7fdb0252
* | | | | Merge "Add access checks to Method and Field reflection."Jeff Hao2014-03-287-63/+162
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Add access checks to Method and Field reflection.Jeff Hao2014-03-287-63/+162
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | Art side of this change. Has a corresponding libcore change. Bug: 13620925 Change-Id: Ie67f802a2a400e8212b489b9a261b7028422d8ba
* | | | Merge "Refactor some GC code."Mathieu Chartier2014-03-2815-224/+132
|\ \ \ \
| * | | | Refactor some GC code.Mathieu Chartier2014-03-2815-224/+132
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduced amount of code in mark sweep / semi space by moving common logic to garbage_collector.cc. Cleaned up mod union tables and deleted an unused implementation. Change-Id: I4bcc6ba41afd96d230cfbaf4d6636f37c52e37ea
* | | | Merge "An empty collector skeleton for a read barrier-based collector."Hiroshi Yamauchi2014-03-288-8/+114
|\ \ \ \
| * | | | An empty collector skeleton for a read barrier-based collector.Hiroshi Yamauchi2014-03-278-8/+114
| | |_|/ | |/| | | | | | | | | | | | | | | | | | Bug: 12687968 Change-Id: Ic2a3a7b9943ca64e7f60f4d6ed552a316ea4a6f3
* | | | Merge "x86_64: JNI compiler"Andreas Gampe2014-03-283-4/+9
|\ \ \ \ | |_|/ / |/| | |
| * | | x86_64: JNI compilerDmitry Petrochenko2014-03-283-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passed all tests from jni_compiler_test and art/test on host with jni_copiler. Incoming argument spill is enabled, entry_spills refactored. Now each entry spill contains data type size (4 or 8) and offset which should be used for spill. Assembler REX support implemented in opcodes used in JNI compiler. Please note, JNI compiler is not enabled by default yet (see compiler_driver.cc:1875). Change-Id: I5fd19cca72122b197aec07c3708b1e80c324be44 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | | | Properly dump register type in verifier failure messagesSebastien Hertz2014-03-282-9/+12
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes failure messages where we miss to dereference pointer to RegType. This caused to dump the address of the reg type instead of the reg type itself. Also moves merging tests of primitive types from RegTypeReferenceTest to RegTypeTest class. Change-Id: I71cea419fdaa9ac46d7c011eb23e8746a14fb378
* | | Change sticky GC ergonomics to use GC throughput.Mathieu Chartier2014-03-278-52/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old sticky ergonomics used partial/full GC when the bytes until the footprint limit was < min free. This was suboptimal. The new sticky GC ergonomics do partial/full GC when the throughput of the current sticky GC iteration is <= mean throughput of the partial/full GC. Total GC time on FormulaEvaluationActions.EvaluateAndApplyChanges. Before: 26.4s After: 24.8s No benchmark score change measured. Bug: 8788501 Change-Id: I90000305e93fd492a8ef5a06ec9620d830eaf90d
* | | Merge "Remove bogus DCHECK."Ian Rogers2014-03-271-1/+0
|\ \ \ | |/ / |/| |
| * | Remove bogus DCHECK.Ian Rogers2014-03-271-1/+0
| | | | | | | | | | | | | | | Bug: 13637540 Change-Id: I39f19443156cf5bdc26e3eeb0bb501a850d40dca
* | | Merge "Support inlining with breakpoint"Sebastien Hertz2014-03-272-46/+120
|\ \ \
| * | | Support inlining with breakpointSebastien Hertz2014-03-272-46/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When installing/uninstalling a breakpoint in a method, we fully or selectively deoptimize/undeoptimize depending on whether the method can be inlined. When the method can be inlined, it requires full deoptimization. Otherwise, it only requires selective deoptimization. We add sanity check to control we are in a consistent state each time we add or remove a breakpoint. We also add some comments to better describe the process of deoptimization for breakpoint. Bug: 12187616 Change-Id: Id15adc6e5e2fe783c83c925cbcd19ae02431b7e0
* | | | Merge "Last patch for running tests on ARM64"Andreas Gampe2014-03-272-6/+53
|\ \ \ \ | |_|/ / |/| | |
| * | | Last patch for running tests on ARM64Andreas Gampe2014-03-272-6/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows all run-tests to succeed with the interpreter+GenJNI setup. Change-Id: I45734e7e57340439369a613ef4329e3be2c0c4c9
* | | | Merge "Handle Array::Memmove within the same array properly."Ian Rogers2014-03-271-36/+49
|\ \ \ \
| * | | | Handle Array::Memmove within the same array properly.Ian Rogers2014-03-271-36/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivated by discussions in: https://android-review.googlesource.com/#/c/88940/ memcpy can't be relied upon to be a forward copy for overlapping regions of memory. Change-Id: I409f75e97204250546bf0b8082e2b62026bddedc
* | | | | Merge "Reflection tidying."Ian Rogers2014-03-274-78/+47
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Reflection tidying.Ian Rogers2014-03-264-78/+47
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move out arguments to the right and make pointer not reference types. Remove unused unbox for argument routine. Simplify convert primitive routine for the case of identical types. Change-Id: I6456331b0f3f3e5f0b2c361a9f50b4ed1c9462a3
* | | | Merge "Refactor deoptimization support in debugger"Sebastien Hertz2014-03-278-122/+186
|\ \ \ \
| * | | | Refactor deoptimization support in debuggerSebastien Hertz2014-03-268-122/+186
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL prepares breakpoint support for inlined methods where we'll have to deoptimize everything. We move deoptimization-related information to Dbg class only (deoptimization request queue, full deoptimization event count and deoptimization lock). We replace MethodInstrumentionRequest by DeoptimizationRequest. This is used to know which kind of deoptimization is required for a particular event. It also simplifies lock ordering a bit during event setup: we no longer need to hold the deoptimization lock while holding the breakpoint lock. Moreover, the deoptimization lock should be held only after the event list lock. Bug: 12187616 Change-Id: Iff13f004adaeb25e5d609238bacce0b9720510e6
* | | | | Merge "Do not suspend current thread to build stacktrace from DDMS"Sebastien Hertz2014-03-271-15/+23
|\ \ \ \ \
| * | | | | Do not suspend current thread to build stacktrace from DDMSSebastien Hertz2014-03-271-15/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids a failing CHECK in ThreadList::SuspendThreadByThreadId in the case we try to suspend the current thread. Bug: 12985512 Change-Id: I9434400a3625319855dd3841d8889117e57784e5
* | | | | | Merge "Fix alloc tracker locking issue"Sebastien Hertz2014-03-271-11/+16
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | Fix alloc tracker locking issueSebastien Hertz2014-03-261-11/+16
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a lock level violation where we attempt to take the thread list lock while already holding the alloc tracker lock. We now avoid holding the alloc tracker lock when updating allocation entrypoints. Bug: 13646642 Change-Id: Iab505dae67d0c754031fe30d50a7cbd5e4ba5785
* | | | | Merge "Less redundant verification."Mathieu Chartier2014-03-272-5/+6
|\ \ \ \ \
| * | | | | Less redundant verification.Mathieu Chartier2014-03-262-5/+6
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | ~3 less objects verified per object scanned in the GC. Helps the irogers dogfood experience. Change-Id: I6efeab7842a6c702adecef73fb573c19291fecf2
* | | | | Add valgrind support to large object map space.Mathieu Chartier2014-03-263-5/+55
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Added valgrind support to large object map space. Bug: 7392044 Change-Id: I1456f46414e1fa59ebcc2190ec00576dae26d623