summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fix handling of long argument spanning register/memory."Nicolas Geoffray2015-01-125-55/+18
|\
| * Fix handling of long argument spanning register/memory.Nicolas Geoffray2015-01-125-55/+18
|/ | | | | | | | | | | | | | | | | | Comment in arm_lir.h says: * If a 64-bit argument would span the register/memory argument * boundary, it will instead be fully passed in the frame. This change implements such logic for all platforms. We still need to pass the low part in register as well because I haven't ported the jni compilers (x86 and mips) to it. Once the jni compilers are updated, we can remove the register assignment. Note that this greatly simplifies optimizing's register allocator by not having to understand a long spanning register and memory. Change-Id: I59706ca5d47269fc46e5489ac99bd6576e87e7f3
* Merge "Move code around in OptimizingCompiler::Compile to reduce stack space."Nicolas Geoffray2015-01-123-66/+96
|\
| * Move code around in OptimizingCompiler::Compile to reduce stack space.Nicolas Geoffray2015-01-123-66/+96
| | | | | | | | | | | | | | | | | | | | Also fix an (intentional) memory leak, by allocating the CodeGenerator on the heap instead of the arena: they construct an Assembler object that requires destruction. BUG:18787334 Change-Id: I8cf0667cb70ce5b14d4ac334bd4487a562635f1b
* | Merge "JDWP: allow VirtualMachine.Resume on partial suspension"Sebastien Hertz2015-01-121-17/+18
|\ \
| * | JDWP: allow VirtualMachine.Resume on partial suspensionSebastien Hertz2015-01-091-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows to resume multiple threads with a single VirtualMachine.Resume command. When some threads are suspended for an event by the debugger with a suspend count of 1 (other threads are running), a debugger can resume them all this way. Bug: 18924933 Change-Id: I81543df8228d56a4cf201e59885015880650f202
* | | Merge "ART: Fixed subsequent CHECK-NOTs Checker bug"David Brazdil2015-01-102-2/+6
|\ \ \
| * | | ART: Fixed subsequent CHECK-NOTs Checker bugDavid Brazdil2015-01-082-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Matching a group of CHECK-NOT lines caused Checker to crash due to incorrectly overwriting the varState variable. The second use of the variable was renamed and a regression test added. Change-Id: I1a879cf5368acca6b5092f69a9caa47b89a79532
* | | | Merge "ART: Increase dump checkpoint timeout on the host"Andreas Gampe2015-01-101-2/+7
|\ \ \ \
| * | | | ART: Increase dump checkpoint timeout on the hostAndreas Gampe2015-01-091-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Increase the dump checkpoint timeout on the host, as addr2line is used and may put more strain onto the system. Bug: 18964791 Change-Id: I9c1e9c1289fddfce25854e4425194882628bcf21
* | | | | Merge "[WIP] Fix a rosalloc verification crash."Hiroshi Yamauchi2015-01-102-5/+10
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | [WIP] Fix a rosalloc verification crash.Hiroshi Yamauchi2015-01-092-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18960494 Change-Id: Ia7a11f06b3fc8207f6304ae881539251d6b1de24
* | | | | Merge "Clean up some #ifdefs."Elliott Hughes2015-01-095-29/+18
|\ \ \ \ \
| * | | | | Clean up some #ifdefs.Elliott Hughes2015-01-095-29/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only the Mac doesn't have POSIX clocks. (And it still doesn't, a decade later.) glibc gained pthread_setname_np in 2.12. Only the Mac doesn't have prctl. Change-Id: I218e409f7e133736e15fb68e8a254cdc5799d667
* | | | | | Merge "ART: Fix prefix issues in Addr2line dump"Andreas Gampe2015-01-091-11/+19
|\ \ \ \ \ \
| * | | | | | ART: Fix prefix issues in Addr2line dumpAndreas Gampe2015-01-091-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code incorrectly wrote the prefix twice for overly long lines. Bug: 18933933 Change-Id: I4bc7c2cde435bd966276ca2dae6a5d060aa2d0f3
* | | | | | | Merge "Change hprof to use streaming"Mathieu Chartier2015-01-097-282/+336
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | |
| * | | | | | Change hprof to use streamingMathieu Chartier2015-01-097-282/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we compute the whole hprof dump in memory resulting in > 50MB of memory usage for some apps (such as maps). This could cause the app to get killed by the low memory killer. The solution works by doing the dump in 2 passes. The first pass calculates the size of the dump. The second pass starts by sending the DDMS header with the correct size, then does the rest of the hprof dump by streaming and sending data one HprofRecord at a time. Bug: 18921793 Change-Id: I7dd9f5cfe49799ba268095c994a8c2eb1fe493df
* | | | | | | Merge "ART: Added comments, fixed typos in Checker"David Brazdil2015-01-092-2/+14
|\ \ \ \ \ \ \
| * | | | | | | ART: Added comments, fixed typos in CheckerDavid Brazdil2015-01-092-2/+14
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | Change-Id: I1ff12940035845c1a586d4df826efc794088bdc9
* | | | | | | Merge "Fix HandleScope with wrong thread error"Mathieu Chartier2015-01-092-2/+4
|\ \ \ \ \ \ \
| * | | | | | | Fix HandleScope with wrong thread errorMathieu Chartier2015-01-092-2/+4
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Possibly fixes +art F 5127 6995 art/runtime/handle_scope-inl.h:43] Check failed: top_handle_scope == this (top_handle_scope=0x2b449293c770, this=0x2b4492d6a0a8) Seen in tests. A possible cause was that the thread dumping stacks was running checkpoints on a suspended thread but putting a HandleScope on that thread instead of itself. This isn't safe if the suspended thread is doing HandleScope stuff in a non runnable state. Change-Id: Icdaadabca5aff8d380d5cc9570b9e899fe790a62
* | | | | | | Merge "ART: Use addr2line on the host for DumpNativeStack"Andreas Gampe2015-01-091-0/+79
|\ \ \ \ \ \ \
| * | | | | | | ART: Use addr2line on the host for DumpNativeStackAndreas Gampe2015-01-091-0/+79
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use addr2line to attempt some better debug output for unexpected signals in tests. This prints the demangled function name, source file and line number (including inlined frames) when possible. Bug: 18933933 Change-Id: I4b98d0cc7bef5cdc63c7ee0882629b363778afe2
* | | | | | | Merge "Remove back-door bootclasspath option from Runtime"Richard Uhler2015-01-096-39/+55
|\ \ \ \ \ \ \
| * | | | | | | Remove back-door bootclasspath option from RuntimeRichard Uhler2015-01-086-39/+55
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'bootclasspath' option allowed users of the Runtime to load their own boot class path DexFiles and pass them directly to the Runtime as an option. This obscures the fact that the Runtime must take ownership of the boot class path DexFiles. This change removes the use of the bootclasspath option by dex2oat and the common runtime tests. For dex2oat, we use the existing -Xbootclasspath option instead, and introduce a new -Xbootclasspath-locations option to override the dex locations for the loaded boot class path dex files. For the common runtime tests, we simply use -Xbootclasspath. Bug: 18809837 Change-Id: Idfcd4885390bf0f3dc350993756dd337220def73
* | | | | | | Merge "Don't overwrite a register input."Nicolas Geoffray2015-01-091-2/+4
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | |
| * | | | | | Don't overwrite a register input.Nicolas Geoffray2015-01-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `addr` is a register input, which can survive the current instruction, therefore we can't overwrite it. Change-Id: I6eaa60e5f91c2b7b9b31673457d2a0d63474e587
* | | | | | | Merge "ART: Relax java_vm_ext test"Andreas Gampe2015-01-091-1/+6
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | |
| * | | | | | ART: Relax java_vm_ext testAndreas Gampe2015-01-081-1/+6
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bionic gives more than the requested stack size in some cases, see change-id I7037ac8273ebe54dd19b1561c7a376819049124c. In that case, attaching a thread with STACK_MIN may actually succeed. Bug: 18908062 Change-Id: Ibb3f5c7a7399c01ec2032a133896cf91327370ed
* | | | | | Merge "Add clamp growth limit"Mathieu Chartier2015-01-098-1/+60
|\ \ \ \ \ \
| * | | | | | Add clamp growth limitMathieu Chartier2015-01-088-1/+60
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clamp growth limit shrinks the space memmaps to the current growth limit. This reduces virtual memory usage for apps with small heaps. Bug: 18387825 Bug: 17131630 Change-Id: I4a8fdc335d2c40492e991708adabcc46299efb7d
* | | | | | Merge "ART: Refactored regex code in Checker"David Brazdil2015-01-083-145/+143
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | ART: Refactored regex code in CheckerDavid Brazdil2015-01-083-145/+143
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch refactors how Checker constructs regular expressions which it uses to parse tests and verify compiler output. It also replaces all occurrences of the '[0-9]+' ID-matching expression with the '\d+' shorthand. Change-Id: I5f854a25707e44ed2fa1673ff084990e8f43e4a2
* | | | | Merge "ART: Fixed formatting in HGraphVisualizerPrinter"David Brazdil2015-01-081-4/+4
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | ART: Fixed formatting in HGraphVisualizerPrinterDavid Brazdil2015-01-081-4/+4
| |/ / / | | | | | | | | | | | | Change-Id: I06d9bb0fc03e13cfc49f2b4da07a0ee2d09a339a
* | | | Merge "ART: Fix Mac build"Andreas Gampe2015-01-081-1/+1
|\ \ \ \
| * | | | ART: Fix Mac buildAndreas Gampe2015-01-081-1/+1
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | Fix Mac build after change-id Id2710d2fd44b7c3b3335973a9288979a5793638b. Bug: 18933933 Change-Id: Ib0bb5082908d5dff33ef8f8a69d82c07406c176d
* | | | Merge "Add VerifyObject to StackHandleScope::SetReference"Mathieu Chartier2015-01-088-51/+83
|\ \ \ \
| * | | | Add VerifyObject to StackHandleScope::SetReferenceMathieu Chartier2015-01-088-51/+83
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Helps catch GC bugs. Also moved some of the HandleScope logic to the inl file. Bug: 13054004 Change-Id: I81b9dd717092b6a467fcd28b4df0089ec075dd44
* | | | Merge "Implement double and float support for arm in register allocator."Nicolas Geoffray2015-01-0815-67/+480
|\ \ \ \ | |_|/ / |/| | |
| * | | Implement double and float support for arm in register allocator.Nicolas Geoffray2015-01-0815-67/+480
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The basic approach is: - An instruction that needs two registers gets two intervals. - When allocating the low part, we also allocate the high part. - When splitting a low (or high) interval, we also split the high (or low) equivalent. - Allocation follows the (S/D register) requirement that low registers are always even and the high equivalent is low + 1. Change-Id: I06a5148e05a2ffc7e7555d08e871ed007b4c2797
* | | | Merge "ART: Improved fail reporting in Checker"David Brazdil2015-01-082-95/+202
|\ \ \ \
| * | | | ART: Improved fail reporting in CheckerDavid Brazdil2015-01-082-95/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checker now keeps track of line numbers and prints more informative log messages. Change-Id: I59ba3fb81d91e265a7358b6abb116dcb9ce97cbb
* | | | | Merge "Do not use clang for mips target."Chih-Hung Hsieh2015-01-082-1/+12
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Do not use clang for mips target.Chih-Hung Hsieh2015-01-072-1/+12
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang assembler cannot compile some inlined assembly code in valgrind_malloc_space-inl.h:192:5: error: used $at without ".set noat" However, clang generated assembly code for runtime/mirror/array.cc cannot be compiled by gas. BUG: 18789639 BUG: 18807290 Change-Id: Ifdeb3c50f11cefc7f0d62c1d36fdd1f8b9344fb4
* | | | Merge "ART: Pass ucontext to Backtrace in Stack Dump"Andreas Gampe2015-01-083-5/+12
|\ \ \ \
| * | | | ART: Pass ucontext to Backtrace in Stack DumpAndreas Gampe2015-01-083-5/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of an unexpected signal on the host we dump the thread stack ourselves. We have to pass the context given to the signal handler, as the signal handler is run on an alternate stack. Otherwise libbacktrace can't dump the actual faulty part. Bug: 18933933 Change-Id: Id2710d2fd44b7c3b3335973a9288979a5793638b
* | | | Merge "JDWP: do not report start/end events for thread without peer"Sebastien Hertz2015-01-081-0/+8
|\ \ \ \ | |/ / / |/| | |
| * | | JDWP: do not report start/end events for thread without peerSebastien Hertz2014-12-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To report start/end thread events, we need the JDWP id of the thread. To create a JDWP id, we need its java.lang.Thread peer. In the case there is no Java peer, we can't report the event. Follow-up https://android-review.googlesource.com/118548 where the runtime attaches the current thread without Java peer when shutting down. Change-Id: Icc2d50f3d2eedd1e0e3c5a21affd2261aaf7a862