summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "x86_64: Fix stubs after 4-byte method handler"Andreas Gampe2014-06-061-6/+6
|\
| * x86_64: Fix stubs after 4-byte method handlerSerguei Katkov2014-06-061-6/+6
|/ | | | | | | It is 4 byte now and should be handled accordingly. Change-Id: Ie373235f961eabfd33266bd89fbf8169a3714a03 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
* Merge "Fix top K percentage computation when loading profile data."Calin Juravle2014-06-061-6/+3
|\
| * Fix top K percentage computation when loading profile data.Calin Juravle2014-06-061-6/+3
|/ | | | | | | | | Don't count boot and null methods when computing top K percentage for sampled methods. Bug: 15462067 Bug: 12877748 Change-Id: I11c2ea541066a15bc8a5ad323e21ccbfdf81c2c5
* Merge "Use ScopedArenaVector instead of std::vector in SSA transformation."Vladimir Marko2014-06-062-2/+8
|\
| * Use ScopedArenaVector instead of std::vector in SSA transformation.Vladimir Marko2014-06-062-2/+8
| | | | | | | | Change-Id: Ibf8471274f2d5e11fcc185044745434c3c82ed74
* | Merge "Fixed and refactored profiler options handling"Calin Juravle2014-06-0617-193/+300
|\ \
| * | Fixed and refactored profiler options handlingCalin Juravle2014-06-0617-193/+300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - extracted profiler options in a separate class - switched from system property reading to command line arguments - added profile based compilation options to CompilerOptions - removed no longer used kProfile compilation filter - optimize dex files only if the profiler is enabled - clean up unused arguments Bug: 12877748 Bug: 15275634 Change-Id: I37ff68e7694370950ce8db2360562e9058ecebb7
* | | Merge "Clean up the sampling profiler"Calin Juravle2014-06-067-125/+122
|\ \ \ | |/ /
| * | Clean up the sampling profilerCalin Juravle2014-06-067-125/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - rename variables/fields names to match the code style (use _underscore_names_) - extract common property parsing in utils.cc - fail to load profile file if any line is malformed - added ProfileFile to manage the profile data generate in the previous runs (replaces ProfileHelper and nests ProfileData) Bug: 12877748 Change-Id: Ie7bda30bfdeb7e78534c986615b0649eac12a97b
* | | Merge "Fix crash in JDWP ReferenceType.SourceFile command"Sebastien Hertz2014-06-063-6/+10
|\ \ \
| * | | Fix crash in JDWP ReferenceType.SourceFile commandSebastien Hertz2014-06-053-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updates Dbg::GetSourceFile to return ABSENT_INFORMATION error code when Class::GetSourceFile returns nullptr. This happens if the class has no source file information. Updates Class:GetSourceFile to return nullptr for classes which have no ClassDef item like generated classes. This allows to remove the IsProxyClass test from Dbg::GetSourceFile. Adds this test in proxy_test. Bug: 15426710 Change-Id: I019da4ced83778d5264484c43b225f8b5c95632e
* | | | Merge "Add an optimization for removing redundant suspend tests in ART"Bill Buzbee2014-06-058-10/+129
|\ \ \ \
| * | | | Add an optimization for removing redundant suspend tests in ARTWei Jin2014-06-058-10/+129
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL: (1) eliminates redundant suspend checks (dominated by another check), (2) removes the special treatment of the R4 register, which got reset on every native call, possibly yielding long execution sequences without any suspend checks, and (3) fixes the absence of suspend checks in leaf methods. (2) and (3) increase the frequency of suspend checks, which improves the performance of GC and the accuracy of profile data. To compensate for the increased number of checks, we implemented an optimization that leverages dominance information to remove redundant suspend checks on back edges. Based on the results of running the Caffeine benchmark on Nexus 7, the patch performs roughly 30% more useful suspend checks, spreading them much more evenly along the execution trace, while incurring less than 1% overhead. For flexibility consideration, this CL defines two flags to control the enabling of optimizations. The original implementation is the default. Change-Id: I31e81a5b3c53030444dbe0434157274c9ab8640f Signed-off-by: Wei Jin <wejin@google.com>
* | | | Merge "Disable thumb assembler test to fix art build"Dave Allison2014-06-051-1/+0
|\ \ \ \
| * | | | Disable thumb assembler test to fix art buildDave Allison2014-06-051-1/+0
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Having difficulty getting this to run on the build server. Disable until I can figure out how to do it. Change-Id: I4f356fd1168b213b770426adc34bf62b8fb56b8f
* | | | Merge "Remove unused variable in assembler test."Dave Allison2014-06-051-0/+2
|\ \ \ \
| * | | | Remove unused variable in assembler test.Dave Allison2014-06-051-0/+2
|/ / / / | | | | | | | | | | | | | | | | | | | | This is flagged as an error when building master, but not others... Change-Id: Iaea5307b06d8e4fa1a9d1035905fc204eb98559a
* | | | Merge "Fix assembler test to use path if it can't find tools."Dave Allison2014-06-051-7/+7
|\ \ \ \
| * | | | Fix assembler test to use path if it can't find tools.Dave Allison2014-06-051-7/+7
|/ / / / | | | | | | | | | | | | | | | | | | | | This fixes build breakage. Change-Id: I8074d47f1c1470cf886d517e9e68a6a6b4330485
* | | | Merge "Thumb2 assembler for JNI compiler and optimizing compiler"Dave Allison2014-06-0516-1653/+11538
|\ \ \ \ | |_|_|/ |/| | |
| * | | Thumb2 assembler for JNI compiler and optimizing compilerDave Allison2014-06-0516-1653/+11538
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides a programmatic assembler for the thumb2 instruction set for ARM. The interface is the same as the ARM assembler and the ARM assembler has been moved into Arm32Assembler. The assembler handles most 16 and 32 bit instructions and also allows relocations due to branch expansion. It will also rewrite cbz/cbnz instructions if they go out of range. It also changes the JNI compiler to use the thumb2 assembler as opposed to forcing it to use ARM32. The trampoline compiler still uses ARM due to the way it returns the address of its generated code. A trampoline in thumb2 is the same size as that in ARM anyway (8 bytes). Provides gtest for testing the thumb2 instruction output. This gtest only runs on the host as it uses arm-eabi-objdump to disassemble the generated code. On the target the output is not checked but the assembler will still be run to perform all its checks. Change-Id: Icd9742b6f13541bec5b23097896727392e3a6fb6
* | | | Merge "Verify there's no mem map gap for immune region not to break."Hiroshi Yamauchi2014-06-056-5/+195
|\ \ \ \
| * | | | Verify there's no mem map gap for immune region not to break.Hiroshi Yamauchi2014-06-046-5/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds code that verifies that there's no memory map gap between the image space and the main space so that the immune region functionality won't silently break. For example, if there's a gap and a large object is allocated in that gap, the large object is incorrectly part of the immune region and the marking breaks. Bug: 14059466 Change-Id: Ie6ed82988d74b6d0562ebbbaac96ee43c15b14a6
* | | | | Merge "Workaround for running out of address space on N7v1."Vladimir Marko2014-06-051-0/+23
|\ \ \ \ \
| * | | | | Workaround for running out of address space on N7v1.Vladimir Marko2014-06-051-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 13564922 Change-Id: I2ac466f613e465691078c41b2693f2327d07a0a8
* | | | | | Merge "Use std::enable_if instead of a custom helper class."Vladimir Marko2014-06-051-18/+7
|\ \ \ \ \ \
| * | | | | | Use std::enable_if instead of a custom helper class.Vladimir Marko2014-06-051-18/+7
| |/ / / / / | | | | | | | | | | | | | | | | | | Change-Id: Iffa0f0350ccc4fce698b9a16aefd340e16654076
* | | | | | Merge "Fix X86 disassambler printing of XMM, MM registers"Ian Rogers2014-06-051-1/+1
|\ \ \ \ \ \
| * | | | | | Fix X86 disassambler printing of XMM, MM registersMark Mendell2014-06-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Printing of uint8_t is done as a char, rather than an integer. Change-Id: I996e7d7dd902695be6366ab816fea65b675c2ad9 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | | | Merge "x86_64: Turn on 64-bit core registers initialization."Bill Buzbee2014-06-051-6/+24
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | |
| * | | | | | x86_64: Turn on 64-bit core registers initialization.Dmitry Petrochenko2014-06-051-6/+24
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables 64-bit core registers initialization for x86_64. The backend update with 64-bit temp support is in progress. Change-Id: If7c9a62c1145f81050adda86f2beed427220baa2 Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com> Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com> Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com> Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | | Merge "Avoid register pool allocations on the heap."Vladimir Marko2014-06-057-154/+296
|\ \ \ \ \ \
| * | | | | | Avoid register pool allocations on the heap.Vladimir Marko2014-06-057-154/+296
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a helper template class ArrayRef and use it instead of std::vector<> for register pools in target_<arch>.cc to avoid these heap allocations during program startup. Change-Id: I4ab0205af9c1d28a239c0a105fcdc60ba800a70a
* | | | | | Merge "ART: Add a test checking TLS offsets and entrypoints"Andreas Gampe2014-06-053-0/+293
|\ \ \ \ \ \
| * | | | | | ART: Add a test checking TLS offsets and entrypointsAndreas Gampe2014-06-043-0/+293
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a test (runtime for now, as compile-time checks seem not possible with current infrastructure) that checks the structure of the thread tls and entrypoint structs. A failure of the test indicates a structural change, which hints at a necessary oat version bump. Change-Id: I500b5cd940c916ebfc1580e9dd2c287c4d263956
* | | | | | | Merge "Fix reflection_test failures."Ian Rogers2014-06-051-6/+6
|\ \ \ \ \ \ \
| * | | | | | | Fix reflection_test failures.Douglas Leung2014-06-031-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change also allows the Mips emulator to boot in interpreter mode. Change-Id: Id1d5d65df79f65a747d37ddce6dd79906d1f4fcf Signed-off-by: Douglas Leung <douglas@mips.com>
* | | | | | | | Merge "ART: Allocate ostreams on the heap in Oatdump::DumpOatMethod"Andreas Gampe2014-06-051-32/+26
|\ \ \ \ \ \ \ \
| * | | | | | | | ART: Allocate ostreams on the heap in Oatdump::DumpOatMethodAndreas Gampe2014-06-041-32/+26
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stack frame size for this method is above our limits. Allocate ostreams on the heap instead of on the stack. Bug: 15278350 Change-Id: Ia94a1f7190b7c2ac096e100682e747334f1bf6cc
* | | | | | | | Merge "Do not force unwind info to debug_frame."Christopher Ferris2014-06-052-3/+0
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | |
| * | | | | | | Do not force unwind info to debug_frame.Christopher Ferris2014-06-042-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The .cfi_sections directive was forcing unwind information into the debug_frame, which is stripped out. This causes any unwinds done by libunwind/debuggerd through these art functions to terminate prematurely. Bug: 15350524 Change-Id: Id6abe7c7106132083bc894a77564b652a08566cb
* | | | | | | | Merge "Fix GetOutVROffset to use correct Method* size."buzbee2014-06-041-3/+4
|\ \ \ \ \ \ \ \
| * | | | | | | | Fix GetOutVROffset to use correct Method* size.buzbee2014-06-041-3/+4
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Tip 'o the hat to Mark Mendell for noticing this one] Use StackReference to find Method* size in GetOutVROffset. Change-Id: Ie1b25eb839c59305cadc5fdc7cbb5f41f1a85686
* | | | | | | | Merge "Enable -Wframe-larger-than=1728 compilation error"Andreas Gampe2014-06-041-4/+4
|\ \ \ \ \ \ \ \
| * | | | | | | | Enable -Wframe-larger-than=1728 compilation errorSebastien Hertz2014-06-041-4/+4
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 15278350 Change-Id: I142dc9de0312ac1f8aa55a4bce86b5bb6722535f
* | | | | | | | Merge "ART: Heap-allocate buffer in space_bitmap when on 64b arch"Andreas Gampe2014-06-041-1/+9
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | |
| * | | | | | | ART: Heap-allocate buffer in space_bitmap when on 64b archAndreas Gampe2014-06-041-1/+9
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stack frame size will be above our limit if we stack-allocate a buffer. Bug: 15278350 Change-Id: Ie1a31370538410d47c177f0a6e51879a1fc0752c
* | | | | | | Merge "art: -Wsystem-header warning"Mark Salyzyn2014-06-041-10/+11
|\ \ \ \ \ \ \
| * | | | | | | art: -Wsystem-header warningMark Salyzyn2014-05-221-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - TEMP_FAILURE_RETRY redefined if unistd.h is include later Change-Id: I79101ebfbec47e7854414c4ef40a91ef122ae284