summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Work around 103-string-append slowness by not running debug buildBrian Carlstrom2014-01-241-0/+18
| | | | | | Based on 055-enum-performance/run. Change-Id: Iaae81f070b84e044999f126821752c6df8b30bfd
* Merge "Change GC ergonomics to better handle heap verification."Mathieu Chartier2014-01-241-11/+11
|\
| * Change GC ergonomics to better handle heap verification.Mathieu Chartier2014-01-241-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | Added a new constant kMaxConcurrentRemainingBytes which put a lower bound on the background GC watermark. This fixes a performance issue caused by heap verification being really slow and making it that we were excessively scheduling back to back GCs. Greatly increases system/test performance when heap verification is enabled. Change-Id: I68fa5a247c42f6c661e313c49dd3ca6be29951d4
* | Merge "64bit printf flag clean-up for MIR graph."Ian Rogers2014-01-241-2/+2
|\ \
| * | 64bit printf flag clean-up for MIR graph.Ian Rogers2014-01-241-2/+2
| |/ | | | | | | Change-Id: Ib956e48ce4061e05a5d39cfacb0d58388f5c1a25
* | Merge "Revert "Remove the link from dalvik instruction back to kMirOpCheck.""Ian Rogers2014-01-244-19/+23
|\ \
| * | Revert "Remove the link from dalvik instruction back to kMirOpCheck."Ian Rogers2014-01-244-19/+23
| | | | | | | | | | | | | | | | | | This reverts commit 8a3e7e769de02b5b412163cf70da9b9fbaf3b848. Change-Id: I03a0d6180c350569b39cee2ea194903dbdfca963
* | | Merge "art: rename aarch64 target to arm64"Colin Cross2014-01-241-3/+3
|\ \ \ | |_|/ |/| |
| * | art: rename aarch64 target to arm64Colin Cross2014-01-231-3/+3
| | | | | | | | | | | | | | | | | | | | | Rename aarch64 build targets to arm64. The gcc toolchain is still aarch64. Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
* | | Merge "Improve x86 long divide"Ian Rogers2014-01-2411-4/+333
|\ \ \
| * | | Improve x86 long divideMark Mendell2014-01-2411-4/+333
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement inline division for literal and variable divisors. Use the general case for dividing by a literal by using a double length multiply by the appropriate constant with fixups. This is the Hacker's Delight algorithm. Change-Id: I563c250f99d89fca5ff8bcbf13de74de13815cfe Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | Merge "Fix X86Mir2Lir::LoadBaseIndexedDisp causing SEGV"Ian Rogers2014-01-241-8/+30
|\ \ \ \
| * | | | Fix X86Mir2Lir::LoadBaseIndexedDisp causing SEGVMark Mendell2014-01-241-8/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you are loading an 'array' long/double value, the generated code could cause a SEGV, because the destination for the first load is the same as the index register. The case for the base register being the same as the destination was handled, but not the index register. With this change, Calculator properly runs on the emulator. Change-Id: Ib7e652938cdc9e127fb80ee2f541a4225a5e9ab7 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | Merge "64bit friendly printf modifiers in JDWP."Ian Rogers2014-01-244-25/+32
|\ \ \ \ \
| * | | | | 64bit friendly printf modifiers in JDWP.Ian Rogers2014-01-244-25/+32
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I105da6393b31f5901036216fbfe19a71c46cf152
* | | | | | Merge "64bit fixes for elf file."Ian Rogers2014-01-241-7/+15
|\ \ \ \ \ \
| * | | | | | 64bit fixes for elf file.Ian Rogers2014-01-231-7/+15
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Force size to signed once errno isn't in play, to solve signed/unsigned comparisons. Fix printf formatting flags. Change-Id: Iabf1554c9903a4389ed38f8b1b889bb44778d9d6
* | | | | | Merge "64bit friendly printf modifiers in LIR dumping."Ian Rogers2014-01-245-16/+21
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | 64bit friendly printf modifiers in LIR dumping.Ian Rogers2014-01-235-16/+21
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Also correct header file inclusion ordering. Change-Id: I8fb99e80cf1487e8b2278d4c1d110d14ed18c086
* | | | | Merge "Optimize x86 long arithmetic"Vladimir Marko2014-01-2410-148/+669
|\ \ \ \ \
| * | | | | Optimize x86 long arithmeticMark Mendell2014-01-2310-148/+669
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Be smarter about taking advantage of a constant operand for x86 long add/sub/and/or/xor. Using instructions with immediates and generating results directly into memory reduces the number of temporary registers and avoids hardcoded register usage. Also rewrite the existing non-const x86 arithmetic to avoid fixed register use, and use the fact that x86 instructions are two operand. Pass the opcode to the XXXLong() routines to easily detect two operand DEX opcodes. Add a new StoreFinalValueWide() routine, which is similar to StoreValueWide, but doesn't do an EvalLoc to allocate registers. The src operand must already be in registers, and it just updates the dest location, and calls the right live/dirty routines to get the src into the dest properly. Change-Id: Iefc16e7bc2236a73dc780d3d5137ae8343171f62 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | Merge "Fix 64bit compilation issues with IndirectRef."Ian Rogers2014-01-241-3/+3
|\ \ \ \ \
| * | | | | Fix 64bit compilation issues with IndirectRef.Ian Rogers2014-01-231-3/+3
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | For now the high 32bits are unused when pointers are 64bit. Change-Id: I2154d9a5e70a122301e97739caf7fc1dc505795d
* | | | | Merge "64bit friendly printf modifiers in Instruction::DumpString."Ian Rogers2014-01-241-3/+7
|\ \ \ \ \
| * | | | | 64bit friendly printf modifiers in Instruction::DumpString.Ian Rogers2014-01-231-3/+7
| |/ / / / | | | | | | | | | | | | | | | Change-Id: Ibcfa81f27bc92136d7b62dc4cdd3325c273baaa0
* | | | | Merge "Remove the link from dalvik instruction back to kMirOpCheck."Vladimir Marko2014-01-244-23/+19
|\ \ \ \ \ | | |_|_|/ | |/| | |
| * | | | Remove the link from dalvik instruction back to kMirOpCheck.Vladimir Marko2014-01-244-23/+19
|/ / / / | | | | | | | | | | | | | | | | | | | | Free the MIR::meta for another use on PUT/GET instructions. Change-Id: I39ee5122227f449212cf6960e11b9561b8a6de7b
* | | | Merge "Move fused cmp branch ccode to MIR::meta."Vladimir Marko2014-01-246-5/+7
|\ \ \ \ | |/ / / |/| | |
| * | | Move fused cmp branch ccode to MIR::meta.Vladimir Marko2014-01-236-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This a small refactoring towards removing the large DecodedInstruction from the MIR class. Change-Id: I10f9ed5eaac42511d864c71d20a8ff6360292cec
* | | | Merge "Move __STDC_FORMAT_MACROS to a cflag."Ian Rogers2014-01-243-2/+3
|\ \ \ \ | |_|_|/ |/| | |
| * | | Move __STDC_FORMAT_MACROS to a cflag.Ian Rogers2014-01-233-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current inttypes.h don't define stdint printf formatting characters for C++ but in the future this will change. Rather than #define __STDC_FORMAT_MACROS at the point of inclusion (conventional) pass it as a cflag so there is a single place to remove the #define when conventions change. Change-Id: Ice2fb07e19d8fc06ebc534c903a2d02497c31b3d
* | | | Merge "64bit monitors are forced to 32bit in lock words."Ian Rogers2014-01-241-1/+2
|\| | |
| * | | 64bit monitors are forced to 32bit in lock words.Ian Rogers2014-01-231-1/+2
|/ / / | | | | | | | | | | | | | | | I expect this to change in the future but this at least unblocks building. Change-Id: I0baf3eb0e93f1e83d8f07947c1f24ba24249733c
* | | Merge "64bit friendly printf modifiers in mem map errors."Ian Rogers2014-01-241-3/+6
|\ \ \
| * | | 64bit friendly printf modifiers in mem map errors.Ian Rogers2014-01-231-3/+6
| | | | | | | | | | | | | | | | Change-Id: I197c6cf08053b9c833e50156a92965b3b66698eb
* | | | Merge "Update ElfWriterMclinker for klp"Brian Carlstrom2014-01-244-3/+35
|\ \ \ \ | |/ / / |/| | |
| * | | Update ElfWriterMclinker for klpBrian Carlstrom2014-01-184-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | (cherry picked from commit a6263af9aea65c65744bdd845fed68c4814e9514) Change-Id: I3eb9fee8afb1ef12aae4c87770882afee637971d
* | | | Merge "64bit friendly GC CAS operations."Ian Rogers2014-01-242-6/+4
|\ \ \ \
| * | | | 64bit friendly GC CAS operations.Ian Rogers2014-01-232-6/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: I54dfa5fdaf0d057ef74c84efb10a609e01923c9e
* | | | | Merge "Use direct class pointers at allocation sites in the compiled code."Hiroshi Yamauchi2014-01-2317-61/+433
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Use direct class pointers at allocation sites in the compiled code.Hiroshi Yamauchi2014-01-2317-61/+433
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Rather than looking up a class from its type ID (and checking if it's resolved/initialized, resolving/initializing if not), use direct class pointers, if possible (boot-code-to-boot-class pointers and app-code-to-boot-class pointers.) - This results in a 1-2% speedup in Ritz MemAllocTest on Nexus 4. - Embedding the object size (along with class pointers) caused a 1-2% slowdown in MemAllocTest and isn't implemented in this change. - TODO: do the same for array allocations. - TODO: when/if an application gets its own image, implement app-code-to-app-class pointers. - Fix a -XX:gc bug. cf. https://android-review.googlesource.com/79460/ - Add /tmp/android-data/dalvik-cache to the list of locations to remove oat files in clean-oat-host. cf. https://android-review.googlesource.com/79550 - Add back a dropped UNLIKELY in FindMethodFromCode(). cf. https://android-review.googlesource.com/74205 Bug: 9986565 Change-Id: I590b96bd21f7a7472f88e36752e675547559a5b1
* | | | Merge "64bit cleanliness for the dex file verifier."Ian Rogers2014-01-232-38/+38
|\ \ \ \
| * | | | 64bit cleanliness for the dex file verifier.Ian Rogers2014-01-232-38/+38
|/ / / / | | | | | | | | | | | | Change-Id: I08f55ca0185b8fc265afb2ca3f949c6d6ac7c5b6
* | | | Merge "64bit cleanliness requires PRI*64 macros for stdint types."Ian Rogers2014-01-231-1/+4
|\ \ \ \
| * | | | 64bit cleanliness requires PRI*64 macros for stdint types.Ian Rogers2014-01-231-1/+4
| |/ / / | | | | | | | | | | | | Change-Id: I0cdce36d5f875cdc64cd2db22fd8179916ffa10f
* | | | Merge "Fix 64bit issues in logging code."Ian Rogers2014-01-231-14/+21
|\ \ \ \ | |_|_|/ |/| | |
| * | | Fix 64bit issues in logging code.Ian Rogers2014-01-231-14/+21
| |/ / | | | | | | | | | Change-Id: Ia73d0141348b3f74a9949012b0060dd4acb5e3b8
* | | Merge "Fix header file references to the ::llvm::ELF namespace."Vladimir Marko2014-01-232-2/+2
|\ \ \
| * | | Fix header file references to the ::llvm::ELF namespace.Vladimir Marko2014-01-232-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | We have header files which define the namespace ::art::llvm and if they are included before the header files fixed here, references to llvm::ELF from ::art pick up ::art::llvm instead of ::llvm and fail to find ELF, causing an error. Therefore we add the leading "::". Change-Id: Ib02c9317d39cde5331dd67463013643cbc79ee1f
* | | Merge "Fix non-PLT text relocation introduced by CL 79466"Ian Rogers2014-01-231-1/+1
|\ \ \ | |/ / |/| |