e832e64a7e82d7f72aedbd7d798fb929d458ee8f |
|
10-Nov-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change 64 bit ArtMethod fields to be pointer sized Changed the 64 bit entrypoint and gc map fields in ArtMethod to be pointer sized. This saves a large amount of memory on 32 bit systems. Reduces ArtMethod size by 16 bytes on 32 bit. Total number of ArtMethod on low memory mako: 169957 Image size: 49203 methods -> 787248 image size reduction. Zygote space size: 1070 methods -> 17120 size reduction. App methods: ~120k -> 2 MB savings. Savings per app on low memory mako: 125K+ per app (less active apps -> more image methods per app). Savings depend on how often the shared methods are on dirty pages vs shared. TODO in another CL, delete gc map field from ArtMethod since we should be able to get it from the Oat method header. Bug: 17643507 Change-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8
|
235e77bd9f19e4faefda109be40f8744f3a66f40 |
|
13-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Set default visibility to protected Set default visibility of symbols to protected. This allows the linker to optimize internal calls and helps avoid plt calls. Make almost all assembly stubs hidden, as -fvisibility does not seem to apply to them. Change the assembly tests accordingly. Also allows to clean up previous hacks to avoid plt calls. Bug: 16974467 Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
|
8016a12a5f9c2ea70b52e353a0169ba836ee9402 |
|
22-Feb-2014 |
Ian Rogers <irogers@google.com> |
Make X86 assembly labels local. Avoids the symbols being part of the symbol file and confusing tools like gdb. Change-Id: I4c40b0d42964e6b2e3fa135320e603b5b41ea0e1
|
ef7d42fca18c16fbaf103822ad16f23246e2905d |
|
06-Jan-2014 |
Ian Rogers <irogers@google.com> |
Object model changes to support 64bit. Modify mirror objects so that references between them use an ObjectReference value type rather than an Object* so that functionality to compress larger references can be captured in the ObjectRefererence implementation. ObjectReferences are 32bit and all other aspects of object layout remain as they are currently. Expand fields in objects holding pointers so they can hold 64bit pointers. Its expected the size of these will come down by improving where we hold compiler meta-data. Stub out x86_64 architecture specific runtime implementation. Modify OutputStream so that reads and writes are of unsigned quantities. Make the use of portable or quick code more explicit. Templatize AtomicInteger to support more than just int32_t as a type. Add missing, and fix issues relating to, missing annotalysis information on the mutator lock. Refactor and share implementations for array copy between System and uses elsewhere in the runtime. Fix numerous 64bit build issues. Change-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822
|
3f2d031f639b3b9dd4adbf9e70d23de931a9801d |
|
21-Jan-2014 |
Mark Mendell <mark.p.mendell@intel.com> |
Use macros to remove CFI information for MAC OS/X Place allocation macros inline for x86 as the macros aren't/can't go through the Linux/OSX normalizing macro wrappers. Switch to clang for OS/X host build thereby enabling -std=gnu++11 and -Wthread-safety. Remove the -Wstrict-aliasing numeric option as 3 is the default warning level and warning levels aren't supported by clang's command line. This builds as far as gtests which fail due to assumptions they would only ever compile on non-GCC with RTTI. Change-Id: Id0d83578e9b93b0f6aea5e9b8ddf2815f0dcd8aa Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
a9abe872ad5ad6128d6f3fb018b6447962303ecc |
|
10-Jan-2014 |
Mark Mendell <mark.p.mendell@intel.com> |
Make x86 runtime PIC The existing code in runtime/arch/x86 doesn't use PIC code to call routines, and this causes a message that libart{,d}.so having text relocations to be genartion. That message, in turn, messes up running the art-target tests. Change-Id: I7fe5dbb8eed458a0f7bd3713566ee38a5db8e904 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
984c18350e6a1d603bf31ae07f137c0a8b14e83c |
|
20-Aug-2013 |
Brian Carlstrom <bdc@google.com> |
Fix typo of quick instead of portable Change-Id: I375edd8c2625e39bfd6bb9014debc1b00ba31f73
|
97fbbef4736845fe1ce7d1090c70eb6aaa6628dd |
|
16-Aug-2013 |
Ian Rogers <irogers@google.com> |
Fix some x86 portable asm. Change-Id: Ia29ff41208511f2e2d4c903f245ed2140ebe2823
|
bd136a29f08486525d6abc7d0a0006ce5b4011c1 |
|
14-Aug-2013 |
Dragos Sbirlea <dragoss@google.com> |
Get PORTABLE + SMALL on x86. Implemented the portable resolution trampoline and the portable to interpreter bridge. Also work on integrating SEA_IR in the PORTABLE+SMALL framework. Refactor some naming and correct indenting. Change-Id: Ibd97da5e5b6f5148274c9bff368e3654b661ef51
|
468532ea115657709bc32ee498e701a4c71762d4 |
|
05-Aug-2013 |
Ian Rogers <irogers@google.com> |
Entry point clean up. Create set of entry points needed for image methods to avoid fix-up at load time: - interpreter - bridge to interpreter, bridge to compiled code - jni - dlsym lookup - quick - resolution and bridge to interpreter - portable - resolution and bridge to interpreter Fix JNI work around to use JNI work around argument rewriting code that'd been accidentally disabled. Remove abstact method error stub, use interpreter bridge instead. Consolidate trampoline (previously stub) generation in generic helper. Simplify trampolines to jump directly into assembly code, keeps stack crawlable. Dex: replace use of int with ThreadOffset for values that are thread offsets. Tidy entry point routines between interpreter, jni, quick and portable. Change-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e (cherry picked from commit 848871b4d8481229c32e0d048a9856e5a9a17ef9)
|
848871b4d8481229c32e0d048a9856e5a9a17ef9 |
|
05-Aug-2013 |
Ian Rogers <irogers@google.com> |
Entry point clean up. Create set of entry points needed for image methods to avoid fix-up at load time: - interpreter - bridge to interpreter, bridge to compiled code - jni - dlsym lookup - quick - resolution and bridge to interpreter - portable - resolution and bridge to interpreter Fix JNI work around to use JNI work around argument rewriting code that'd been accidentally disabled. Remove abstact method error stub, use interpreter bridge instead. Consolidate trampoline (previously stub) generation in generic helper. Simplify trampolines to jump directly into assembly code, keeps stack crawlable. Dex: replace use of int with ThreadOffset for values that are thread offsets. Tidy entry point routines between interpreter, jni, quick and portable. Change-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e
|
834b394ee759ed31c5371d8093d7cd8cd90014a8 |
|
31-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Merge remote-tracking branch 'goog/dalvik-dev' into merge-art-to-dalvik-dev Change-Id: I323e9e8c29c3e39d50d9aba93121b26266c52a46
|
7655f29fabc0a12765de828914a18314382e5a35 |
|
29-Jul-2013 |
Ian Rogers <irogers@google.com> |
Portable refactorings. Separate quick from portable entrypoints. Move architectural dependencies into arch. Change-Id: I9adbc0a9782e2959fdc3308215f01e3107632b7c
|