summaryrefslogtreecommitdiffstats
path: root/dex2oat
Commit message (Collapse)AuthorAgeFilesLines
* Fix implicit check option handling for non-cross-compilesDave Allison2014-06-231-2/+14
| | | | | | | | This fixes an issue where the compiler was not being told to generate implicit checks but the runtime was expecting them. Bug: 15747876 Change-Id: I65e7475bac245c44d5094eb666d67bc1af327ab1
* Merge "Use command line android root in dex2oat to find image."Ian Rogers2014-06-211-1/+1
|\
| * Use command line android root in dex2oat to find image.Ian Rogers2014-06-131-1/+1
| | | | | | | | Change-Id: I20a025e07da3792131d7126ef0e5863b923c794b
* | Quick compiler: enable Arm64 compilationbuzbee2014-06-201-3/+2
| | | | | | | | Change-Id: I19058defaff1c60b4b6b4d1ad82e0a42d50506a6
* | Merge "x86_64: Enable core.oat/boot.oat compilation"Bill Buzbee2014-06-191-2/+1
|\ \
| * | x86_64: Enable core.oat/boot.oat compilationDmitry Petrochenko2014-06-181-2/+1
| | | | | | | | | | | | | | | | | | | | | This patch enabled compilation of image. Change-Id: Idacce4a3898964d3a05762925dba236d7254a254 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | | ART: Implicit checks in the compiler are independent from RuntimeAndreas Gampe2014-06-181-1/+62
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | When cross-compiling, those flags are independent. This is an initial CL that helps bypass fatal failures when cross-compiling, as not all architectures support (and have turned on) implicit checks. The actual transport for the target architecture when it is different from the runtime needs to be implemented in a follow-up CL. Bug: 15703710 Change-Id: Idc881a9a4abfd38643b862a491a5af9b8841f693
* | Arm64 hard-floatbuzbee2014-06-161-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basic enabling of hard-float for Arm64. In future CLs we'll consolidate the various targets - there is a lot of overlap. Compilation remains turned off in this CL, but I expect to enable a subset shortly. With compilation fully enabled (including the EXPERIMENTAL opcodes with the exception of REM and THROW), we get the following run-test results: 003-omnibus-opcode failures: Classes.checkCast Classes.arrayInstance UnresTest2 Haven't gone deep, but these appear to be related to throw/catch and/or stacktrace. For REM, the generated code looks reasonable to me - my guess is that we've got something wrong on the transition to the runtime. Haven't looked deeper yet, though. The bulk of the other failure also appear to be related to transitioning to the runtime system, or handling try/catch. run-test status: Status with optimizations disabled, REM_FLOAT/DOUBLE and THROW disabled: succeeded tests: 94 failed tests: 22 failed: 003-omnibus-opcodes failed: 004-annotations failed: 009-instanceof2 failed: 024-illegal-access failed: 025-access-controller failed: 031-class-attributes failed: 044-proxy failed: 045-reflect-array failed: 046-reflect failed: 058-enum-order failed: 062-character-encodings failed: 063-process-manager failed: 064-field-access failed: 068-classloader failed: 071-dexfile failed: 083-compiler-regressions failed: 084-class-init failed: 086-null-super failed: 087-gc-after-link failed: 100-reflect2 failed: 107-int-math2 failed: 201-built-in-exception-detail-messages Change-Id: Ib66209285cad8998d77a14781de300af02a96b15
* | Merge "x86_64: Enable compilation"Ian Rogers2014-06-121-1/+1
|\ \
| * | x86_64: Enable compilationDmitry Petrochenko2014-06-131-1/+1
| |/ | | | | | | | | | | | | | | This patch enables compilation of all methods for x86_64 except image. Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf8233 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* | Optionally add debug symbols to ELF files made by quick compiler.Alex Light2014-06-121-9/+23
|/ | | | | | | | | | | | | | | Added debug symbols to ELF files created by dex2oat using the quick compiler. Adds two flags --include-debug-symbols and --no-include-debug-symbols for dex2oat that control the inclusion of these debug symbols. Debug info is added by default if kIsDebugBuild is true. Fixed bug where Intel DWARF information would not correctly deal with deduplicated code the binary. Changed the portable compiler code path in dex2oat.cc so that symbols will not be stripped when run with --include-debug-symbols. Change-Id: Ia2eb2f654dedf0e5e8606f7744e05b8d14155fb1
* Remove deprecated WITH_HOST_DALVIK.Ian Rogers2014-06-101-8/+6
| | | | | | | | | | | | | | | | | | | | | | | Bug: 13751317 Fix the Mac build: - disable x86 selector removal that causes OS/X 10.9 kernel panics, - madvise don't need does zero memory on the Mac, factor into MemMap routine, - switch to the elf.h in elfutils to avoid Linux kernel dependencies, - we can't rely on exclusive_owner_ being available from other pthread libraries so maintain our own when futexes aren't available (we can't rely on the OS/X 10.8 hack any more), - fix symbol naming in assembly code, - work around C library differences, - disable backtrace in DumpNativeStack to avoid a broken libbacktrace dependency, - disable main thread signal handling logic, - align the stack in stub_test, - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables. Not all host tests are passing on the Mac with this change. dex2oat works as does running HelloWorld. Change-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3
* Merge "Fixed and refactored profiler options handling"Calin Juravle2014-06-061-1/+37
|\
| * Fixed and refactored profiler options handlingCalin Juravle2014-06-061-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* | Workaround for running out of address space on N7v1.Vladimir Marko2014-06-051-0/+23
|/ | | | | Bug: 13564922 Change-Id: I2ac466f613e465691078c41b2693f2327d07a0a8
* ART: Setting up cleanupJean Christophe Beyler2014-05-301-6/+6
| | | | | | | | | | | | | | - Moved code around to actually have the clean-up code in a PassDriver format. This allows us to better control what is being called after an optimization It also allows the use of a centralized pass system for both optimizations and cleanup. Change-Id: I9d21e9bb9ee663739722f440d82adf04f73e380c Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com> Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com> Signed-off-by: Yixin Shou <yixin.shou@intel.com> Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com> Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
* Fix pass driver's dump_pass_list_ and print_pass_list_.Vladimir Marko2014-05-291-8/+2
| | | | | | | | | The lists were allocated with new char[], so they should have been held by std::unique_ptr<const char[]> rather than std::unique_ptr<const char>. However, it's much cleaner with std::string. Change-Id: Ie7c604773272194345f5e6e3c4803c3a914edf99
* Merge "ART: Print and dump functionalities per pass"Ian Rogers2014-05-281-0/+14
|\
| * ART: Print and dump functionalities per passJean Christophe Beyler2014-05-271-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LOG is a great logging tool but sometimes a pass has some debugging text it want to be able to turn on/off easily. By going via a print_pass flag, we can actually turn it on/off easily per pass when debugging/instrumenting. - Added a pass printer to help debug messages for future passes. - Added a print_pass flag in CompilationUnit to filter out messages. At the same time, did a similar system for dumping the CFG. - Also moved some API into public from protected. Change-Id: Ie0e89a8fc773e8583f3e4ffd6e4bd2eebdbb2bf4 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com> Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com> Signed-off-by: Yixin Shou <yixin.shou@intel.com> Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com> Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
* | Fix ExtractToMemMap to show original zip file name in ashmemBrian Carlstrom2014-05-231-2/+3
|/ | | | | | (cherry picked from commit 1fca8e91f32dc8b13d3129b7ef4a0194839736e6) Change-Id: Id7d22600496b090ac32150c8c6424da89964b6be
* ART: Pass driver generalizationJames C Scott2014-05-221-3/+3
| | | | | | | | | | | | - Generalizing Pass Driver. - Migrating ME Pass Driver to use the new generalized Pass Driver. There will be some more changes after in the compiler code to generalize it a bit more by separating what is being done by the optimizing passes and post-pass cleanups. Change-Id: I140a70e88483d7c3991b7d336bd593b2613ae194 Signed-off-by: James C Scott <james.c.scott@intel.com>
* Now we have a proper C++ library, use std::unique_ptr.Ian Rogers2014-05-191-19/+19
| | | | | | | Also remove the Android.libcxx.mk and other bits of stlport compatibility mechanics. Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
* ART: Turn off ARM64 compilation for nowAndreas Gampe2014-05-161-1/+1
| | | | | | | When no compiler filter string is given to dex2oat for ARM64, default to interpreter. Change-Id: I2a97e07b1d9b75a04aafe4aaa4437e500bdaf202
* Remove ISA from boot image name.Brian Carlstrom2014-05-141-3/+1
| | | | | | | | | | Partially reverts b9beb2e2efb6a204a69ca660d478b45f851e8f09 Bug: 14882223 (cherry picked from commit 3da44327c8306bb354c0163a7c7779dea6eeb38a) Change-Id: Idc9266a97d1047434c110ef140e2f2708c4aadef
* dex2oat: convert NULL to nullptrKenny Root2014-05-131-34/+33
| | | | Change-Id: I658511212f7ab265de473e198f8fe3625bbc9b46
* Merge "Changes for vogar compatibility"Kenny Root2014-05-131-4/+6
|\
| * Changes for vogar compatibilityKenny Root2014-05-131-4/+6
| | | | | | | | | | | | | | | | | | | | | | Make sure dex2oat can make an image with an empty list of image_classes. Add in some checks to make sure that no bad arguments sneak into CompilerDriver. If we're not on the ART_TARGET, we should check for the "hostdex" versions of the libraries to substitute in our libart version. Change-Id: I5e8485c6089d25664492f0217b43ef64ca84c061
* | Add Handle/HandleScope and delete SirtRef.Mathieu Chartier2014-05-131-1/+1
|/ | | | | | | | | | | | | | | | Delete SirtRef and replaced it with Handle. Handles are value types which wrap around StackReference*. Renamed StackIndirectReferenceTable to HandleScope. Added a scoped handle wrapper which wraps around an Object** and restores it in its destructor. Renamed Handle::get -> Get. Bug: 8473721 Change-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a
* Merge "Move quick frame info to OatQuickMethodHeader."Vladimir Marko2014-05-131-1/+2
|\
| * Move quick frame info to OatQuickMethodHeader.Vladimir Marko2014-05-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename OatMethodHeader to OatQuickMethodHeader, move frame info from OatMethodOffsets to OatQuickMethodHeader. Retrieve the info from other places for non-quick methods (portable compiled bytecode or jni stub, generic jni, runtime, abstract and proxy). This change has a libcore/ companion CL "Remove ArtMethod's quick fields for frame size and spills." https://android-review.googlesource.com/94164 Bug: 11767815 Change-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f
* | Place ISA into boot image name.Ian Rogers2014-05-121-2/+4
|/ | | | | | | Depends upon: https://android-review.googlesource.com/94078 Change-Id: I22c18b03b2c0db7a3f792920064e7710363b58b4
* Use atomic load/store for volatile IGET/IPUT/SGET/SPUT.Vladimir Marko2014-05-081-0/+6
| | | | | Bug: 14112919 Change-Id: I79316f438dd3adea9b2653ffc968af83671ad282
* AArch64: Add fake arm64 backend, and disable it by method filter.Zheng Xu2014-05-071-1/+1
| | | | | | | | | | | | | | | | Just create an ArmCodeGenerator for arm64, but currently no code will be generated for arm64. The method filter can: 1. Skip methods with unsupported prototype. 2. Skip methods with unsupported dalvik byte code. 3. Skip methods with invocation to unsupported prototype. These are temporary codes and should be removed later. But with this patch, it won't break anything when we merge partly implemented arm64 backend later. Change-Id: Ib9180d7b8a978f0a5ebaf6b4893e7e3724897113
* Merge "Disable the ahead-of-time compilation for MIPS."Ian Rogers2014-05-011-2/+2
|\
| * Disable the ahead-of-time compilation for MIPS.Ian Rogers2014-05-011-2/+2
| | | | | | | | | | | | Bug: 14464004 Change-Id: I551c0dc4122853a1a9ab566d03bac74cc057cba5
* | Use instruction specific dalvik cache dirs.Narayan Kamath2014-05-011-0/+3
|/ | | | | | | | | | | | - All oat & art files are now placed under /data/dalvik-cache/<isa>/. - GetDalvikCacheOrDie now requires a mandatory subdirectory argument, and is implicitly rooted under /data/. - Added helper methods to convert InstructionSet enums into strings and vice versa. (cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe) Change-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd
* Merge "Fix typo of --oat-fd description in help"Brian Carlstrom2014-04-281-1/+1
|\
| * Fix typo of --oat-fd description in helpWonil Kim2014-04-281-1/+1
| | | | | | | | | | | | | | --oat-fd description in help was copied from --oat-file description. Change-Id: Idbf36018af58db169f6d65382a7602ec950cce99 Signed-off-by: Wonil Kim <wonil.kim@gmail.com>
* | Do not require dexopt when previous profile does not existBrian Carlstrom2014-04-251-2/+1
|/ | | | | | | Also turn down some dex2oat related noise Bug: 14184659 Change-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f
* Build dex2oat as 64b for the target when using zygote64Andreas Gampe2014-04-161-2/+10
| | | | | | | In single-zygote 64b builds we should build dex2oat as 64b to avoid installd issues Change-Id: I5f281d90fbd44abbca4182e39162b184be9f1b35
* AArch64: List arm64 as instruction set optionStuart Monteith2014-04-111-1/+1
| | | | | | | | When arm64 was added to dex2oat, it wasn't added to the list of instruction sets in the help text. This adds it. Change-Id: I9ffecb67a053b24ad624effd1853ff47331d2e91 Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
* Revert "Revert "Revert "Use trampolines for calls to helpers"""Dave Allison2014-04-091-25/+3
| | | | | | This reverts commit f9487c039efb4112616d438593a2ab02792e0304. Change-Id: Id48a4aae4ecce73db468587967968a3f7618b700
* Revert "Revert "Use trampolines for calls to helpers""Dave Allison2014-04-091-3/+25
| | | | | | | | | This reverts commit 081f73e888b3c246cf7635db37b7f1105cf1a2ff. Change-Id: Ibd777f8ce73cf8ed6c4cb81d50bf6437ac28cb61 Conflicts: compiler/dex/quick/mir_to_lir.h
* Revert "Use trampolines for calls to helpers"Dave Allison2014-04-071-12/+3
| | | | | | This reverts commit 754ddad084ccb610d0cf486f6131bdc69bae5bc6. Change-Id: Icd979adee1d8d781b40a5e75daf3719444cb72e8
* Use trampolines for calls to helpersDave Allison2014-04-041-3/+12
| | | | | | | | | | | | | | | | | | | | | | This is an ARM specific optimization to the compiler that uses trampoline islands to make calls to runtime helper functions. The intention is to reduce the size of the generated code (by 2 bytes per call) without affecting performance. By default this is on when generating an OAT file. It is off when compiling to memory. To switch this off in dex2oat, use the command line option: --no-helper-trampolines Enhances disassembler to print the trampoline entry on the BL instruction like this: 0xb6a850c0: f7ffff9e bl -196 (0xb6a85000) ; pTestSuspend Bug: 12607709 Change-Id: I9202bdb7cf21252ad807bd48701f1f6ce8e3d0fe
* Check the machine type of an ELF file when loading.Andreas Gampe2014-04-041-13/+1
| | | | | | | This ensures that we reject wrong target ELF files, and should result in a recompile for the right target. Change-Id: I898dddc4f2bb9b1607a7436083d0ba7619b6007b
* Add support for -Xverify:none mode.Jeff Hao2014-04-021-9/+12
| | | | | | | This mode skips all verification and compilation. Public bug: https://code.google.com/p/android/issues/detail?id=67664 Change-Id: Idd00ab8e9e46d129c02988b063c41a507e07bf5b
* Merge "Pass instruction-set from runtime through to spawned dex2oat."Ian Rogers2014-04-021-1/+1
|\
| * Pass instruction-set from runtime through to spawned dex2oat.Ian Rogers2014-04-021-1/+1
| | | | | | | | Change-Id: I1727af7beb9f710c29124d4d6bc9175e4856f3cc
* | force dex2oat target executables to be compiled for 32-bitColin Cross2014-04-021-2/+2
|/ | | | | | | | 64-bit dex2oat doesn't support 32-bit targets yet, force dex2oat target executables to compile 32-bit for now by passing in a value for LOCAL_MULTILIB to build-art-executable. Bug: 13764385 Change-Id: I41adba1e64f373e4b61a3c13af2592ed4f7d0b57