3d21bdf8894e780d349c481e5c9e29fe1556051c |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 (cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d Fix some ArtMethod related bugs Added root visiting for runtime methods, not currently required since the GcRoots in these methods are null. Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes --trace run-tests 005, 044. Fixed optimizing compiler bug where we used a normal stack location instead of double on ARM64, this fixes the debuggable tests. TODO: Fix JDWP tests. Bug: 19264997 Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3 ART: Fix casts for 64-bit pointers on 32-bit compiler. Bug: 19264997 Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457 Fix JDWP tests after ArtMethod change Fixes Throwable::GetStackDepth for exception event detection after internal stack trace representation change. Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of proxy method. Bug: 19264997 Change-Id: I363e293796848c3ec491c963813f62d868da44d2 Fix accidental IMT and root marking regression Was always using the conflict trampoline. Also included fix for regression in GC time caused by extra roots. Most of the regression was IMT. Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to detached thread. EvaluateAndApplyChanges: From ~2500 -> ~1980 GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots Bug: 19264997 Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0 Fix bogus image test assert Previously we were comparing the size of the non moving space to size of the image file. Now we properly compare the size of the image space against the size of the image file. Bug: 19264997 Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a [MIPS64] Fix art_quick_invoke_stub argument offsets. ArtMethod reference's size got bigger, so we need to move other args and leave enough space for ArtMethod* and 'this' pointer. This fixes mips64 boot. Bug: 19264997 Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
|
99ca40cf9d390479a7243b8b3321cad7d9faa2a4 |
|
16-May-2015 |
Andreas Gampe <agampe@google.com> |
ART: Refactor UnstartedRuntime for testing Expose the UnstartedRuntime implementation functions as private static methods of a class. Add a gtest that can invoke these functions. Add sample tests for String and Memory. Bug: 21173514 (cherry picked from commit 799681b176ad25437ce2849639f54f610dcbf684) Change-Id: Ib5bde6347fafaf7607c642542ea7d5938ff4b1df
|
2cebb24bfc3247d3e9be138a3350106737455918 |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Replace NULL with nullptr Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
|
3e52aa4d406fe802dabee2a2e7ba8764cc13aaaa |
|
12-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Move GetAndroidToolsDir to common location. Move the code which looks for the prebuilts directory to CommonRuntimeTest and add test for it. Change-Id: Id804de31c466656957fdd4b6a470f80a00477aed
|
c785344b87221f5e4e6473e5b762e4e61fe65dcf |
|
27-Mar-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move ArtField to native 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
|
bb9c6b1c55e9e2308b4f5892a398a8837231fdbd |
|
29-Mar-2015 |
Andreas Gampe <agampe@google.com> |
ART: Refactor callbacks_ in common_runtime_test The callback is now important for some runtime checks, and just resetting callbacks_ is not correct anymore. Change-Id: I2cb806f1916fd5ea190911a833ce460be557a428
|
81c6f8db12b203878a7d72444ead2bc7cf5c47ad |
|
26-Mar-2015 |
Andreas Gampe <agampe@google.com> |
ART: PathClassLoader for compiler Use an actual PathClassLoader when compiling apps, instead of a side structure and cutout. This CL sets up a minimal object 'cluster' that recreates the Java side of a regular ClassLoader such that the Class-Linker will recognize it and use the internal native fast-path. This CL removes the now unnecessary compile-time-classpath and replaces it with a single 'compiling-the-boot-image' flag in the compiler callbacks. Note: This functionality is *only* intended for the compiler, as the objects have not been completely initialized. Bug: 19781184 Change-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d
|
4460a84be92b5a94ecfb5c650aef4945ab849c93 |
|
09-Mar-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Rosalloc thread local allocation path without a cas. Speedup on N4: MemAllocTest 3044 -> 2396 (~21% reduction) BinaryTrees 4101 -> 2929 (~26% reduction) Bug: 9986565 Change-Id: Ia1d1a37b9e001f903c3c056e8ec68fc8c623a78b
|
9b5cba401aae6d34450112bdcf9bab5e19da90f2 |
|
11-Mar-2015 |
Andreas Gampe <agampe@google.com> |
ART: Missing include Fix missing include. Change-Id: I439bdf3a5c7dc2a710f3dfa0dca494ac3698de60
|
2969bcdcd80624e4a4fef696b54c2c76b44b6853 |
|
09-Mar-2015 |
Andreas Gampe <agampe@google.com> |
ART: Refactor unstarted runtime Refactor and clean up unstarted runtime. Bug: 19542228 Change-Id: Ib3e4b3517e06e8242d4fed32ca59419fef553a47
|
892fc96694b51ac7a896dacd75af5b235f955825 |
|
10-Mar-2015 |
Richard Uhler <ruhler@google.com> |
Revert "Turn on logging for oat file assistant tests." This reverts commit f45599d8f92748c5c2d2aec515948932c52444eb. Change-Id: I33c6c5bf1d2643bdf8ce13708f376d01599c2a98
|
f45599d8f92748c5c2d2aec515948932c52444eb |
|
10-Mar-2015 |
Richard Uhler <ruhler@google.com> |
Turn on logging for oat file assistant tests. Temporary to debug test failure. Change-Id: Idbfcdbdae5e0aa3544b01f1a1ab0297a81d736d5
|
66d874d96d5699bb090c59f47a5a528956ca053e |
|
15-Jan-2015 |
Richard Uhler <ruhler@google.com> |
Create OatFileAssistant class for assisting with oat files. The oat file assistant is used for determining whether dex2oat or patchoat is needed, for running dex2oat or patchoat as needed to make an oat file up to date, and to load dex files associated with a given dex location. The introduction of the OatFileAssistant class is meant to clean up and consolidate code related to the management of oat files that was duplicated and spread across dalvik_system_DexFile.cc and class_linker.cc. Bug: 11301553 Change-Id: I0c16027b9bae4570c2c50faa9c14f581c0cbafb8
|
aaebaa0121be3b9d9f13630585304482cbcaeb4b |
|
26-Jan-2015 |
Igor Murashkin <iam@google.com> |
art: Refactor RuntimeOptions/ParsedOptions Refactor the RuntimeOptions to be a type-safe map (VariantMap, see runtime_options.h) and the ParsedOptions to delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h). This is the start of a command line parsing refactor, and may include more in the future (dex2oat, patchoat, etc). For more details of the command line parsing generator usage see cmdline/README.md Change-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563
|
369810a98e6394b6dd162f5349e38a1f597b3bc7 |
|
15-Jan-2015 |
Andreas Gampe <agampe@google.com> |
ART: Allow scoped adjustments to log verbosity Add ScopedLogSeverity to adjust the logging level. Suppress warnings by default in gtests. Suppress errors in instances where errors are expected. Change-Id: If3ef865813e9505ab60bc90baed63ff11d90afbb
|
fbef44de596d298dc6430f482dffc933a046dd28 |
|
23-Dec-2014 |
Richard Uhler <ruhler@google.com> |
Use unique_ptr to track ownership of dex files. Bug: 18809837 Change-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a
|
c275259449ec57987e52d3ab1eda3272b994488f |
|
02-Jan-2015 |
Richard Uhler <ruhler@google.com> |
Remove back-door bootclasspath option from Runtime The 'bootclasspath' option allowed users of the Runtime to load their own boot class path DexFiles and pass them directly to the Runtime as an option. This obscures the fact that the Runtime must take ownership of the boot class path DexFiles. This change removes the use of the bootclasspath option by dex2oat and the common runtime tests. For dex2oat, we use the existing -Xbootclasspath option instead, and introduce a new -Xbootclasspath-locations option to override the dex locations for the loaded boot class path dex files. For the common runtime tests, we simply use -Xbootclasspath. Bug: 18809837 Change-Id: Idfcd4885390bf0f3dc350993756dd337220def73
|
e21dc3db191df04c100620965bee4617b3b24397 |
|
09-Dec-2014 |
Andreas Gampe <agampe@google.com> |
ART: Swap-space in the compiler Introduce a swap-space and corresponding allocator to transparently switch native allocations to memory backed by a file. Bug: 18596910 (cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9) Change-Id: I131448f3907115054a592af73db86d2b9257ea33
|
62746d8d9c4400e4764f162b22bfb1a32be287a9 |
|
09-Dec-2014 |
Andreas Gampe <agampe@google.com> |
ART: Swap-space in the compiler Introduce a swap-space and corresponding allocator to transparently switch native allocations to memory backed by a file. Bug: 18596910 Change-Id: I131448f3907115054a592af73db86d2b9257ea33
|
3774335b08076117d6950cd472cdd59a167470b5 |
|
13-Nov-2014 |
Igor Murashkin <iam@google.com> |
Add a new imgdiag tool to diff boot.art/core.art against a process Analyze the dirty memory pages of a running process per-object, this allows is to to fine-tune the dirty object binning algorithm in image writer. Also: * Factor out oatdump command line parsing code into cmdline.h * Factor out common build rules for building variations of binaries * Add a gtest for imgdiag Bug: 17611661 Change-Id: I3ac852a0d223af66f6d59ae5dbc3df101475e3d0
|
4303ba97313458491e038d78efa041d41cf7bb43 |
|
06-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Track Flush & Close in FdFile Implement a check that aborts when a file hasn't been explicitly flushed and closed when it is destructed. Add WARN_UNUSED to FdFile methods. Update dex2oat, patchoat, scoped_flock and some gtests to pass with this. (cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494) Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
|
9433ec60b325b708b9fa87e699ab4a6565741494 |
|
06-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Track Flush & Close in FdFile Implement a check that aborts when a file hasn't been explicitly flushed and closed when it is destructed. Add WARN_UNUSED to FdFile methods. Update dex2oat, patchoat, scoped_flock and some gtests to pass with this. Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
|
c7dd295a4e0cc1d15c0c96088e55a85389bade74 |
|
22-Oct-2014 |
Ian Rogers <irogers@google.com> |
Tidy up logging. Move gVerboseMethods to CompilerOptions. Now "--verbose-methods=" option to dex2oat rather than runtime argument "-verbose-methods:". Move ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc except for a forward declaration. Remove ConstDumpable as Dump methods are all const (and make this so if not currently true). Make LogSeverity an enum and improve compile time assertions and type checking. Remove log_severity.h that's only used in logging.h. With system headers gone from logging.h, go add to .cc files missing system header includes. Also, make operator new in ValueObject private for compile time instantiation checking. Change-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641
|
c54e12a413e16f90526318f1f466a900a717fbb0 |
|
15-Oct-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change MemMap::maps_ to not be global variable Runtime.exit() was causing globals to get destructed at the same time that another thread was using it for allocating a new mem map. (cherry picked from commit 6e88ef6b604a7a945a466784580c42e6554c1289) Bug: 17962201 Change-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962
|
6e88ef6b604a7a945a466784580c42e6554c1289 |
|
15-Oct-2014 |
Mathieu Chartier <mathieuc@google.com> |
Change MemMap::maps_ to not be global variable Runtime.exit() was causing globals to get destructed at the same time that another thread was using it for allocating a new mem map. Bug: 17962201 Change-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962
|
ee5618be0076ac359ab59af1c2ba945d85b2986e |
|
15-Aug-2014 |
Jeff Hao <jeffhao@google.com> |
resolved conflicts for merge of 549c9b17 to lmp-dev-plus-aosp Change-Id: Icea7763c830aeefa02d6a86c960c4b41148d397b
|
95b4c65da93500cdbdcaa3e01010771ef3f466f1 |
|
15-Aug-2014 |
Jeff Hao <jeffhao@google.com> |
Prevent stubs from being installed in java.lang.reflect.Proxy.<init>. This CL is a better fix for proxy tracing and undoes the changes in https://android-review.googlesource.com/#/c/103025/ Bug: 16386215 (cherry picked from commit db8a664e0b68c7c4d36270cd21dce8de1912d7f9) Change-Id: Ic9e0ea2af7cb2da5d90c56aa009de92dba14cc47
|
4bf8d11df5dccc1b276cd9c40a98e8a14d79a9c8 |
|
25-Jul-2014 |
Jeff Hao <jeffhao@google.com> |
Fix proxy tracing and enable tests that now work with tracing. Also updates proxy_test to generate an image for GetQuickOatCodeFor. Bug: 16386215 (cherry picked from commit f0a3f09c3d54646166a55c05a6b39c7dd504129c) Change-Id: I138edbad9e1646db8590f2b1b73f2788d9710e68
|
db8a664e0b68c7c4d36270cd21dce8de1912d7f9 |
|
15-Aug-2014 |
Jeff Hao <jeffhao@google.com> |
Prevent stubs from being installed in java.lang.reflect.Proxy.<init>. This CL is a better fix for proxy tracing and undoes the changes in https://android-review.googlesource.com/#/c/103025/ Change-Id: Ie82bb49f07774bd08a6720ddbe5b1f8ee9363acf
|
f896965072343a2d6ad64d46a61112b10b3645dd |
|
06-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Remove test files after test The unix_file tests should remove files and directories when they are done testing. Bug: 16505797 (cherry picked from commit 7747c8de402f64e3009ca3bcccebddbb70f617ee) Change-Id: I9c3c8f1a80ec0d37628a742193267e182c25b0cd
|
2994e29b57ff57ce3d59a26a01e27e674bd6238b |
|
06-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Use TMPDIR for test directories Bug: 16499668 (cherry picked from commit 5a79fdecffbea657ebecd4cf19078925239eb1c3) Change-Id: I6981f707862bf4a9cc79800db85b0416f30115af
|
68d8b42ddec39ec0174162d90d4abaa004d1983e |
|
17-Jul-2014 |
Ian Rogers <irogers@google.com> |
Wire up check JNI force copy mode. Increase check JNI checks. Break apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h. Fix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case of VM routines. Make class loader override and shared library class loader JNI global references rather than mirror pointers. Clean-ups to native bridge. Change-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55
|
5a79fdecffbea657ebecd4cf19078925239eb1c3 |
|
06-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Use TMPDIR for test directories Bug: 16499668 Change-Id: I0d3db4697ef7b1706807e7daa5e000bb89df14e0
|
7747c8de402f64e3009ca3bcccebddbb70f617ee |
|
06-Aug-2014 |
Andreas Gampe <agampe@google.com> |
ART: Remove test files after test The unix_file tests should remove files and directories when they are done testing. Bug: 16505797 Change-Id: Iff6856f64ee42ee9818b4ac23a6de3fe7eec6eae
|
f0a3f09c3d54646166a55c05a6b39c7dd504129c |
|
25-Jul-2014 |
Jeff Hao <jeffhao@google.com> |
Fix proxy tracing and enable tests that now work with tracing. Also updates proxy_test to generate an image for GetQuickOatCodeFor. Bug: 16386215 Change-Id: Ie7daad3d73ea7b60187bc1e7037ade0df8277107
|
94f7b49578b6aaa80de8ffed230648d601393905 |
|
23-Jul-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Add GcRoot to clean up and enforce read barriers. Introduce a value-type wrapper around Object* for GC roots so that 1) we won't have to directly add the read barrier code in many places and 2) we can avoid accidentally bypassing/missing read barriers on GC roots (the GcRoot interface ensures that the read barrier is executed on a read). The jdwp test passed. Bug: 12687968 Change-Id: Ib167c7c325b3c7e3900133578815f04d219972a1
|
1fe5e5cce85a3cdc64a8d226a8ef4e6134c2b9eb |
|
12-Jul-2014 |
Andreas Gampe <agampe@google.com> |
ART: Fix target test paths Nativetest is now nativetest64 on 64b targets. Change-Id: I4c4c6bba1a56525df2993708caaae3e6f7f5f2f6
|
a59dd80f9f48cb750d329d4d4af2d99d72b484d1 |
|
03-Jul-2014 |
Alex Light <allight@google.com> |
Runtime can now be set to require relocation Add a pair of runtime flags -Xrelocate and -Xnorelocate that can force the runtime to require that all files that are run are relocated, to prevent attacks based on the known art base address. Add support for running patchoat on oat files compiled without an image. Change run-test to have new --prebuild and --relocate flags. Bug: 15358152 Change-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d
|
e63db27db913f1a88e2095a1ee8239b2bb9124e8 |
|
16-Jul-2014 |
Ian Rogers <irogers@google.com> |
Break apart header files. Create libart-gtest for common runtime and compiler gtest routines. Rename CompilerCallbacksImpl that is quick compiler specific. Rename trace clock source constants to not use the overloaded profiler term. Change-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933
|
a1ce1fef2d49d1d537776a5308ace7102a815fe5 |
|
25-Feb-2014 |
Brian Carlstrom <bdc@google.com> |
Split up CommonTest into CommonRuntimeTest and CommonCompilerTest Change-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70
|