summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove the --gen-gdb-info compiler option.David Srbecky2015-04-125-20/+0
| | | | | | It is never used. We generally use --include-debug-symbols instead. Change-Id: I933495cd85ab4f7dfcf3ef3cd2d943d4b870ffeb
* Merge "ART: Add Array.createObjectArray to unstarted runtime"Andreas Gampe2015-04-102-4/+29
|\
| * ART: Add Array.createObjectArray to unstarted runtimeAndreas Gampe2015-04-102-4/+29
|/ | | | | | | Necessary for compile-time initialization of android.text.Layout. Bug: 19542228 Change-Id: I4220c65fcc3a8aaa2765b6f07f1f81c330484244
* Merge "Revert "[optimizing] Improve x86 shifts""Nicolas Geoffray2015-04-104-208/+39
|\
| * Revert "[optimizing] Improve x86 shifts"Roland Levillain2015-04-104-208/+39
| | | | | | | | | | | | | | | | This reverts commit 222fcf96c9b73bbb739012575e7e413caf9348ec. Reverting this CL as it is breaking a few tests (see http://build.chromium.org/p/client.art/builders/host-x86/builds/3251/steps/test%20optimizing/logs/stdio). Will investigate ASAP. Change-Id: Iddd8363e83a24aa49fbdf0f0c9dc12e63b4848de
* | Merge "Move ArtField to native"Mathieu Chartier2015-04-10108-1428/+1644
|\ \
| * | Move ArtField to nativeMathieu Chartier2015-04-10108-1428/+1644
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add linear alloc. Moved ArtField to be native object. Changed image writer to put ArtFields after the mirror section. Savings: 2MB on low ram devices 4MB on normal devices Total PSS measurements before (normal N5, 95s after shell start): Image size: 7729152 bytes 23112 kB: .NonMoving 23212 kB: .NonMoving 22868 kB: .NonMoving 23072 kB: .NonMoving 22836 kB: .NonMoving 19618 kB: .Zygote 19850 kB: .Zygote 19623 kB: .Zygote 19924 kB: .Zygote 19612 kB: .Zygote Avg: 42745.4 kB After: Image size: 7462912 bytes 17440 kB: .NonMoving 16776 kB: .NonMoving 16804 kB: .NonMoving 17812 kB: .NonMoving 16820 kB: .NonMoving 18788 kB: .Zygote 18856 kB: .Zygote 19064 kB: .Zygote 18841 kB: .Zygote 18629 kB: .Zygote 3499 kB: .LinearAlloc 3408 kB: .LinearAlloc 3424 kB: .LinearAlloc 3600 kB: .LinearAlloc 3436 kB: .LinearAlloc Avg: 39439.4 kB No reflection performance changes. Bug: 19264997 Bug: 17643507 Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
* | | Merge "ART: Fix failure-log script"Andreas Gampe2015-04-101-1/+1
|\ \ \ | |/ / |/| |
| * | ART: Fix failure-log scriptAndreas Gampe2015-04-101-1/+1
|/ / | | | | | | | | | | The transaction error class has been changed, update the script. Change-Id: Ibc4dfb8cdca01eb9dc9e868c18d36bf6badb0521
* | Merge "ART: Refactor CompileOptimized"Andreas Gampe2015-04-101-15/+15
|\ \
| * | ART: Refactor CompileOptimizedAndreas Gampe2015-04-101-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Factor out register allocation. Both Clang and GCC inline the function, but it changes how Clang stack-allocates enough so that the resulting frame size is below our limit. Bug: 20139216 Change-Id: I2cf393aed70f2ce0556252b61ae639aacab6f3a7
* | | Merge "Avoid using dex cache array pointers in libart."Vladimir Marko2015-04-105-9/+52
|\ \ \
| * | | Avoid using dex cache array pointers in libart.Vladimir Marko2015-04-105-9/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for making dex cache arrays native, avoid using them in Java code. This causes a performance regression for our reflection benchmarks. Class_getDeclaredMethod and Class_getMethod take an up to 30% hit, measured using the Quick compiler. We accept this hit at this stage and we will tune the performance after we're done with the larger effort. Companion libcore/ change: https://android-review.googlesource.com/146069 Bug: 20134538 Change-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1
* | | | Merge "ART: Remove WriteElf from Compiler"Andreas Gampe2015-04-105-47/+9
|\ \ \ \
| * | | | ART: Remove WriteElf from CompilerAndreas Gampe2015-04-105-47/+9
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | As Portable is gone, we only have one elf_writer left. It also allows to put the decision for 32b vs 64b ELF into a central point. Change-Id: Iae67d06df85268b3f0ee5725abc65edd23eb2499
* | | | Merge "Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub."Roland Levillain2015-04-104-9/+697
|\ \ \ \
| * | | | Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub.Alexandre Rames2015-04-104-9/+697
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under assumptions for the 'cost' of each IR (eg. neither HAdd nor HSub are faster than the other), transformations are only applied if they (locally) cannot degrade the quality of the graph. The code could be extended to look at uses of the IRs and detect more opportunities for optimisations. The optimisations in this patch do not look at other uses for their inputs. Change-Id: Ib60dab007af30f43421ef5bb55db2ec32fb8fc0c
* | | | Merge "Follow up of "div/rem on x86 and x86_64", to tidy up the code a little."Calin Juravle2015-04-106-46/+37
|\ \ \ \
| * | | | Follow up of "div/rem on x86 and x86_64", to tidy up the code a little.Guillaume Sanchez2015-04-106-46/+37
| | | | | | | | | | | | | | | | | | | | Change-Id: Ibf39cbc8ac1d773599d70be2cb1e941674b60f1d
* | | | | Merge "[optimizing] Improve x86 parallel moves/swaps"Calin Juravle2015-04-106-57/+191
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | [optimizing] Improve x86 parallel moves/swapsMark Mendell2015-04-106-57/+191
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new constructor to ScratchRegisterScope that will supply a register if there is a free one, but not spill to force one. Use this to generated alternate code that doesn't use a temporary, as the spill/restore of a register generates extra instructions that aren't necessary on x86. Here is the benefit for a 32 bit memory-to-memory exchange with no free registers: < 50 push eax < 53 push ebx < 8B44244C mov eax, [esp + 76] < 8B5C246C mov ebx, [esp + 108] < 8944246C mov [esp + 108], eax < 895C244C mov [esp + 76], ebx < 5B pop ebx < 58 pop eax --- > FF742444 push [esp + 68] > FF742468 push [esp + 104] > 8F44244C pop [esp + 72] > 8F442468 pop [esp + 100] Avoid using xchg instruction, as it is slow on smaller processors. Change-Id: Id29ee3abd998577baaee552d55d23e60ae0c7871 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | Merge "[optimizing] Improve x86 shifts"Roland Levillain2015-04-104-39/+208
|\ \ \ \ | | |_|/ | |/| |
| * | | [optimizing] Improve x86 shiftsMark Mendell2015-04-104-39/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support memory operands for integer shifts. Generate better code for long shifts by constants. Change-Id: Icc92fa1b59cc280d4894af6f054e19b01977d5ce Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | Merge "Optimizing x86: Fix VisitArraySet for FP value"Roland Levillain2015-04-102-5/+31
|\ \ \ \
| * | | | Optimizing x86: Fix VisitArraySet for FP valueSerguei Katkov2015-04-102-5/+31
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Instruction generator expects to see FP value in XMM register, so update location builder to follow this. Change-Id: Idca4bb5cdb59249c77fcc6f76cdfcaba47222b3d Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
* | | | Merge "[optimizing] Address x86_64 RIP patch comments"Roland Levillain2015-04-105-63/+46
|\ \ \ \ | |_|/ / |/| | |
| * | | [optimizing] Address x86_64 RIP patch commentsMark Mendell2015-04-105-63/+46
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Nicolas had some comments after the patch https://android-review.googlesource.com/#/c/144100 had merged. Fix the problems that he found. Change-Id: I40e8a4273997860db7511dc8f1986281b72bead2 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | Merge "Fix checker tests in 458-checker-instruction-simplification."Roland Levillain2015-04-101-16/+48
|\ \ \
| * | | Fix checker tests in 458-checker-instruction-simplification.Alexandre Rames2015-04-101-16/+48
|/ / / | | | | | | | | | Change-Id: I9931e1692117360b8396c0dd8d171c822f0aba3b
* | | Merge "Refine erratum 843419 check for linker workaround."Vladimir Marko2015-04-102-9/+102
|\ \ \
| * | | Refine erratum 843419 check for linker workaround.Matteo Franchin2015-04-092-9/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The check is extended to avoid patching sequences where the adrp is followed by a load which can easily be proved to be aligned. Change-Id: Ia5741e3d73bc143c29bf0e301f767012d7598171
* | | | Merge "Move DWARF related code in ElfWriter to its own file."David Srbecky2015-04-105-386/+426
|\ \ \ \
| * | | | Move DWARF related code in ElfWriter to its own file.David Srbecky2015-04-105-386/+426
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is purely for organisation. The DWARF related code is becoming more complex and I do not want to keep mixing it with the ElfWriter. The ElfWriter probably should not be dealing with the fine details of DWARF generation. I intend to do much more work on DWARF in the future so this situatuion would only get worse as the code grows. The code could also use some refactoring and splitting. However, I have mostly just moved it in this CL. Change-Id: I6e3401a2b745ddf991b440ad7899ad7d4b921be6
* | | | | Merge "Extend the DWARF library to support .debug_info section."David Srbecky2015-04-1010-409/+571
|\ \ \ \ \ | |/ / / /
| * | | | Extend the DWARF library to support .debug_info section.David Srbecky2015-04-0910-409/+571
| | | | | | | | | | | | | | | | | | | | Change-Id: I9916abd8db227e7a73a3311294e675be5222a709
* | | | | Merge "[MIPS] Refactoring code for disassembler"Andreas Gampe2015-04-096-348/+64
|\ \ \ \ \
| * | | | | [MIPS] Refactoring code for disassemblerGoran Jakovljevic2015-04-096-348/+64
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Code for mips64 is merged with code for mips. Change-Id: I2e3f2118c69a189787ae8e7f09adb4ee5c0d00d9
* | | | | Merge "ART: Use canonical location in dex2oat"Andreas Gampe2015-04-091-2/+7
|\ \ \ \ \
| * | | | | ART: Use canonical location in dex2oatAndreas Gampe2015-04-091-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To filter class-path dex files, use the canonical location, not the location. That will correctly resolve relative vs absolute paths. Bug: 20133593 Change-Id: I894656cb6bef75cdaffb188987af0a3647c74ad6
* | | | | | Merge "Add support for nested method verifiers"Mathieu Chartier2015-04-094-10/+15
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | Add support for nested method verifiersMathieu Chartier2015-04-094-10/+15
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Can occur in the following scenario: MethodVerifier::Verify -> MethodVerifier::GetStaticField -> ResolveFieldJLS -> ThrowNoSuchFieldError -> EnsureInitialized -> VerifyClass Also fixed another case where we can be requested to dump for ANR while we are suspended in one of the AllowSuspension points. Bug: 20140397 Change-Id: Ib17f6b98954caa5d1ea1c1dcde66091cc6d11c25
* | | | | Merge "Remove duplicate of DexFile::DecodeDebugInfo."David Srbecky2015-04-093-111/+70
|\ \ \ \ \
| * | | | | Remove duplicate of DexFile::DecodeDebugInfo.David Srbecky2015-04-093-111/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call DexFile::DecodeDebugInfo instead of having a local copy. Change-Id: I4f94fd56a81fea1a2d10d5a26b9650d6d7ff9448
* | | | | | Merge "Fix memory leaks in the CFI tests."David Srbecky2015-04-092-5/+24
|\ \ \ \ \ \
| * | | | | | Fix memory leaks in the CFI tests.David Srbecky2015-04-092-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Icb98e4995731c7ac5f99d1be20b447161ea4c4bd
* | | | | | | Merge "ART: Fix indent in Mips backend"Andreas Gampe2015-04-092-78/+78
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | |
| * | | | | | ART: Fix indent in Mips backendAndreas Gampe2015-04-092-78/+78
|/ / / / / / | | | | | | | | | | | | | | | | | | Change-Id: Ib8bc6f6bf36079e0b6e4b65ceab8af7dedc60efc
* | | | | | Merge "Fix GenDivRemLit() for Mips."Andreas Gampe2015-04-091-1/+7
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Fix GenDivRemLit() for Mips.Douglas Leung2015-04-071-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug was reported by Ingenic where the result is incorrect if we divide a number by an unsigned 16-bit constant with its MSB bit (bit 15) set. Change-Id: I53d2599918cc47b1a9809160310716dca67ef243
* | | | | | Merge "Fix build - the stack frame is too large."David Srbecky2015-04-091-0/+4
|\ \ \ \ \ \