| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I20a025e07da3792131d7126ef0e5863b923c794b
|
| |
| |
| |
| | |
Change-Id: I19058defaff1c60b4b6b4d1ad82e0a42d50506a6
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch enabled compilation of image.
Change-Id: Idacce4a3898964d3a05762925dba236d7254a254
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This patch enables compilation of all methods for x86_64
except image.
Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf8233
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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
|
|/
|
|
|
| |
Bug: 13564922
Change-Id: I2ac466f613e465691078c41b2693f2327d07a0a8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
| |
(cherry picked from commit 1fca8e91f32dc8b13d3129b7ef4a0194839736e6)
Change-Id: Id7d22600496b090ac32150c8c6424da89964b6be
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
| |
Also remove the Android.libcxx.mk and other bits of stlport compatibility
mechanics.
Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
|
|
|
|
|
|
|
| |
When no compiler filter string is given to dex2oat for ARM64,
default to interpreter.
Change-Id: I2a97e07b1d9b75a04aafe4aaa4437e500bdaf202
|
|
|
|
|
|
|
|
|
|
| |
Partially reverts b9beb2e2efb6a204a69ca660d478b45f851e8f09
Bug: 14882223
(cherry picked from commit 3da44327c8306bb354c0163a7c7779dea6eeb38a)
Change-Id: Idc9266a97d1047434c110ef140e2f2708c4aadef
|
|
|
|
| |
Change-Id: I658511212f7ab265de473e198f8fe3625bbc9b46
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
| |
Depends upon:
https://android-review.googlesource.com/94078
Change-Id: I22c18b03b2c0db7a3f792920064e7710363b58b4
|
|
|
|
|
| |
Bug: 14112919
Change-Id: I79316f438dd3adea9b2653ffc968af83671ad282
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Bug: 14464004
Change-Id: I551c0dc4122853a1a9ab566d03bac74cc057cba5
|
|/
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
--oat-fd description in help was copied from --oat-file description.
Change-Id: Idbf36018af58db169f6d65382a7602ec950cce99
Signed-off-by: Wonil Kim <wonil.kim@gmail.com>
|
|/
|
|
|
|
|
| |
Also turn down some dex2oat related noise
Bug: 14184659
Change-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f
|
|
|
|
|
|
|
| |
In single-zygote 64b builds we should build dex2oat as 64b to
avoid installd issues
Change-Id: I5f281d90fbd44abbca4182e39162b184be9f1b35
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
This reverts commit f9487c039efb4112616d438593a2ab02792e0304.
Change-Id: Id48a4aae4ecce73db468587967968a3f7618b700
|
|
|
|
|
|
|
|
|
| |
This reverts commit 081f73e888b3c246cf7635db37b7f1105cf1a2ff.
Change-Id: Ibd777f8ce73cf8ed6c4cb81d50bf6437ac28cb61
Conflicts:
compiler/dex/quick/mir_to_lir.h
|
|
|
|
|
|
| |
This reverts commit 754ddad084ccb610d0cf486f6131bdc69bae5bc6.
Change-Id: Icd979adee1d8d781b40a5e75daf3719444cb72e8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This ensures that we reject wrong target ELF files,
and should result in a recompile for the right
target.
Change-Id: I898dddc4f2bb9b1607a7436083d0ba7619b6007b
|
|
|
|
|
|
|
| |
This mode skips all verification and compilation.
Public bug: https://code.google.com/p/android/issues/detail?id=67664
Change-Id: Idd00ab8e9e46d129c02988b063c41a507e07bf5b
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I1727af7beb9f710c29124d4d6bc9175e4856f3cc
|
|/
|
|
|
|
|
|
| |
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
|