OSDN Git Service
Nicolas Geoffray [Tue, 27 Oct 2015 15:03:38 +0000 (15:03 +0000)]
Merge "Remove stalled DCHECK."
Vladimir Marko [Tue, 27 Oct 2015 15:02:06 +0000 (15:02 +0000)]
Merge "Optimizing: Determine invoke-static/-direct dispatch early."
Nicolas Geoffray [Tue, 27 Oct 2015 14:54:21 +0000 (14:54 +0000)]
Remove stalled DCHECK.
Change-Id: I446f3f6b6da6a3f2c883f794b2e6ffb379a89c95
Nicolas Geoffray [Tue, 27 Oct 2015 14:42:22 +0000 (14:42 +0000)]
Merge "MIPS32: Move code from RA to T9 in longjump"
Goran Jakovljevic [Tue, 27 Oct 2015 11:29:07 +0000 (12:29 +0100)]
MIPS32: Move code from RA to T9 in longjump
Do not use the return address. It should not be clobbered as we
may need it, e.g., for single-frame deopt.
This fixes following tests:
* 449-checker-bce
* 534-checker-bce-deoptimization
* 535-deopt-and-inlining
Change-Id: Ic94a2897c7336da094a8937ab1bc4a02a680de53
Nicolas Geoffray [Tue, 27 Oct 2015 11:45:38 +0000 (11:45 +0000)]
Merge "Move jdwp and libcore testing to jit."
Calin Juravle [Tue, 27 Oct 2015 10:30:08 +0000 (10:30 +0000)]
Merge "MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp()."
Neil Fuller [Tue, 27 Oct 2015 09:32:32 +0000 (09:32 +0000)]
Merge "Revert "Mark 2 libcore tests as failing.""
Alexey Frunze [Mon, 26 Oct 2015 23:11:39 +0000 (16:11 -0700)]
MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp().
Change-Id: I8584c150cae27353b57f3dccc78a68d6cd6fc2c1
Andreas Gampe [Mon, 26 Oct 2015 21:23:47 +0000 (21:23 +0000)]
Merge "MIPS64: Clean-up intrinsics code"
Alex Light [Mon, 26 Oct 2015 21:15:34 +0000 (21:15 +0000)]
Merge "Cleanup some of the run-test system"
Dan Albert [Mon, 26 Oct 2015 19:13:32 +0000 (19:13 +0000)]
Merge "Make dchecked_vector C++11 compatible."
Mathieu Chartier [Mon, 26 Oct 2015 18:53:09 +0000 (18:53 +0000)]
Merge "Add HashSet::Reserve"
Dan Albert [Mon, 26 Oct 2015 18:39:41 +0000 (11:39 -0700)]
Make dchecked_vector C++11 compatible.
Since GCC's C++14 ABI is incorrect, we need to drop GCC users back to
C++11. Since ART does not unconditionally use clang, it cannot
unconditionally use C++14 either.
This constructor for std::vector was added in C++14, so we need to
implement it ourselves.
Bug: http://b/
25022512
Change-Id: Ib31a312c8c91fe6eccf24d59ef58f2fa8e634e1c
Mathieu Chartier [Mon, 26 Oct 2015 18:47:41 +0000 (18:47 +0000)]
Merge "Trim arena maps during heap trim"
Mathieu Chartier [Mon, 26 Oct 2015 18:20:18 +0000 (11:20 -0700)]
Add HashSet::Reserve
Reserves enough room to insert n elements without expanding.
Motivation is to use this for cases where we know how many elements
will be inserted.
Change-Id: I3c51fc7f4601903411fc90b0f1bf270fe9a30919
Nicolas Geoffray [Mon, 26 Oct 2015 18:40:41 +0000 (18:40 +0000)]
Move jdwp and libcore testing to jit.
Change-Id: I4bfd2894ed4cd4a4a5825eae41388b915d97adea
Alex Light [Mon, 26 Oct 2015 17:11:58 +0000 (10:11 -0700)]
Cleanup some of the run-test system
Make run-test cleaner when using experimental default methods and
lambdas. Adds a --experimental <type> flag that adds the required
experimental compiler and runtime flags.
Change-Id: Ia9327b44e14597a400bf279fc946a43619f1355c
Mathieu Chartier [Mon, 26 Oct 2015 17:21:14 +0000 (10:21 -0700)]
Trim arena maps during heap trim
Reduces RAM with verify-at-runtime.
Before:
9985 kB: .LinearAlloc
After:
6594 kB: .LinearAlloc
Change-Id: I4d0a0359cc3b55c924790f749eaeaa5cf55ad7df
Mathieu Chartier [Mon, 26 Oct 2015 17:04:29 +0000 (17:04 +0000)]
Merge "Use arenas for the verifier"
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Use arenas for the verifier
Improvements are from using arenas for verifier. The things that
were moved into arenas are register lines, reg types, and reg type
descriptors.
Also some minor cleanup. Fixed double space formatting error in
string piece.
========================================
Before:
=======================================
compile GmsCore 50x on host -j1:
real 3m5.510s
user 2m48.139s
sys 0m11.753s
50 random APKs:
real 1m18.157s
user 1m8.167s
sys 0m8.071s
RAM (GmsCore):
(threads: 1) arena alloc=0B java alloc=27MB native alloc=64MB free=792KB
(threads: 4) arena alloc=0B java alloc=27MB native alloc=64MB free=397KB
Perf:
=============================
After:
=============================
compile GmsCore 50x on host -j1:
real 2m31.455s
user 2m14.784s
sys 0m10.888s
50 random APKs:
Speed up from arena allocating:
real 1m12.094s
user 1m2.325s
sys 0m7.872s
Speed up from areans + CreateFindClassDefIndex + unordered_map for DexFileVerifier.
real 1m8.654s
user 0m58.955s
sys 0m7.777s
RAM (GmsCore):
(threads: 1) arena alloc=1049KB java alloc=27MB native alloc=65MB free=538KB
(threads: 4) arena alloc=4MB java alloc=27MB native alloc=69MB free=650KB
Perf on host key results:
_int_malloc: 3.60% -> 1.39%
malloc: 1.48% -> 0.65%
_int_free: 1.59% -> 0.61%
RegTypeCache::FromClass: 1.47% -> 0.86%
malloc_consolidate: 0.89% -> 0.63%
Real speed up is ~22% on GmsCore, ~14% on the set of 60 APKs.
Bug:
10921004
Change-Id: If13d4ab4284a176f93a26a412549b6b1149dfb16
Andreas Gampe [Mon, 26 Oct 2015 15:25:40 +0000 (15:25 +0000)]
Merge "ART: Support trivially-destructible arrays in ArenaUniquePtr"
Nicolas Geoffray [Mon, 26 Oct 2015 14:18:51 +0000 (14:18 +0000)]
Merge "MIPS32: Fix loading address in GenerateStaticOrDirectCall"
Nicolas Geoffray [Mon, 26 Oct 2015 13:36:48 +0000 (13:36 +0000)]
Merge "MIPS32: Remove tests from list of broken tests"
Goran Jakovljevic [Mon, 26 Oct 2015 13:28:52 +0000 (14:28 +0100)]
MIPS32: Fix loading address in GenerateStaticOrDirectCall
Load word instead of doubleword.
Change-Id: I496278c87577ee23c8dd4c4be7b64214efcdd1f6
Goran Jakovljevic [Mon, 26 Oct 2015 13:18:31 +0000 (14:18 +0100)]
MIPS32: Remove tests from list of broken tests
These tests are passing after the optimizing compiler is enabled.
Change-Id: Ib203c48532f2557bfec9325456f3b19d460ba047
Calin Juravle [Mon, 26 Oct 2015 12:39:04 +0000 (12:39 +0000)]
Merge "Revert "Run type propagation after inliner only when needed.""
Calin Juravle [Mon, 26 Oct 2015 12:38:43 +0000 (12:38 +0000)]
Revert "Run type propagation after inliner only when needed."
This reverts commit
4e5dd521063beae1706410419f19c7e224db50fe.
Change-Id: I0de261d14dd3f71abe05f9bc71744820cf23b937
Calin Juravle [Mon, 26 Oct 2015 12:06:24 +0000 (12:06 +0000)]
Merge "Run type propagation after inliner only when needed."
Neil Fuller [Mon, 26 Oct 2015 09:46:53 +0000 (09:46 +0000)]
Revert "Mark 2 libcore tests as failing."
This reverts commit
d9486f963302512dc1cfd9fb0898a864dee51902.
Change-Id: I3afd4aff0667392da0c912c160fd5a39a1f8819d
Nicolas Geoffray [Mon, 26 Oct 2015 08:57:38 +0000 (08:57 +0000)]
Merge "Fix dependencies when not building with Jack."
Mingyao Yang [Sat, 24 Oct 2015 00:44:17 +0000 (00:44 +0000)]
Merge "Disable store elimination on singleton object."
Mingyao Yang [Sat, 24 Oct 2015 00:08:42 +0000 (17:08 -0700)]
Disable store elimination on singleton object.
Stores into singleton objects that are finalizable need to be kept.
Disable those store eliminations before we have the finalizable info available.
Change-Id: I281e0c442588ec291b1002fdc9b59a144c15dc8e
Andreas Gampe [Sat, 24 Oct 2015 00:31:36 +0000 (17:31 -0700)]
ART: Support trivially-destructible arrays in ArenaUniquePtr
For trivially-destructible types of arrays, we do not have to call
the destructor on all elements. This is minimal support to tag
ownership of some arena-allocated arrays.
Change-Id: I45ec7ed6bab3842c9447d954e359cb8cf047aee6
Mathieu Chartier [Fri, 23 Oct 2015 20:28:06 +0000 (20:28 +0000)]
Merge "Add ArenaUniquePtr"
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Add ArenaUniquePtr
Motivation is to use it for adding arenas in the verifier.
Also added arena tags to prevent double free errors.
Bug:
10921004
Change-Id: I545f3374eceb9a6a35e738cb899d1493098fb760
Andreas Gampe [Fri, 23 Oct 2015 18:40:24 +0000 (18:40 +0000)]
Merge "enum operator<<() script fails with do { } while cond;"
Mathieu Chartier [Fri, 23 Oct 2015 18:30:26 +0000 (18:30 +0000)]
Merge "Move ArenaBitVector into the runtime"
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Move ArenaBitVector into the runtime
Motivation is using arenas in the verifier.
Bug:
10921004
Change-Id: I3c7ed369194b2309a47b12a621e897e0f2f65fcf
Andreas Gampe [Fri, 23 Oct 2015 18:20:20 +0000 (18:20 +0000)]
Merge "ART: Speed up thread stack tracing for ANRs"
Christopher Ferris [Mon, 27 Jan 2014 05:36:13 +0000 (21:36 -0800)]
ART: Speed up thread stack tracing for ANRs
Share a BacktraceMap for all threads being dumped, which speeds up
ANR dumping. Results from Nexus 9 (average of five):
Before: 0.587s
After: 0.206s
Change-Id: Ia70e0dbd39049318c02de561e7b95258d4849467
Mingyao Yang [Fri, 23 Oct 2015 17:45:57 +0000 (17:45 +0000)]
Merge "Revert "Revert "load store elimination."""
Nicolas Geoffray [Fri, 23 Oct 2015 16:27:59 +0000 (17:27 +0100)]
Fix dependencies when not building with Jack.
Change-Id: I6528a835974c4915872974265f2d135f754169b5
Calin Juravle [Mon, 19 Oct 2015 15:19:23 +0000 (16:19 +0100)]
Run type propagation after inliner only when needed.
Currently we run a type propagation pass unconditionally after the
inliner. This change looks at the returned value (if any) and runs a
minimal type propagation only if its type has changed.
Change-Id: I0dd72bd481219081e8a978d2632426afc980d73a
Nicolas Geoffray [Fri, 23 Oct 2015 15:15:40 +0000 (15:15 +0000)]
Merge "Disable two tests that require IPv6."
Nicolas Geoffray [Fri, 23 Oct 2015 15:06:49 +0000 (16:06 +0100)]
Disable two tests that require IPv6.
bug:
25178637
Change-Id: I4615cb4d2f2d9cbb050d02cb77b36215c24fd43b
Roland Levillain [Fri, 23 Oct 2015 15:00:57 +0000 (15:00 +0000)]
Merge "ARM64: Instruction simplification for array accesses."
Vladimir Marko [Thu, 15 Oct 2015 17:02:30 +0000 (18:02 +0100)]
Optimizing: Determine invoke-static/-direct dispatch early.
Determine the dispatch type of invoke-static/-direct in a
special pass right after the type inference. This allows the
inliner to pass the "needs dex cache" check and inline more.
It also allows the code generator to avoid requesting a
register location for the ArtMethod* for kDexCachePcRelative
and direct methods.
The supported dispatch check handles also situations that
the CompilerDriver currently doesn't allow. The cleanup of
the CompilerDriver and required changes to Quick will come
in a separate change.
Change-Id: I3f8e903a119949e95871d8ab0a995f4731a13a07
Roland Levillain [Fri, 23 Oct 2015 13:09:43 +0000 (13:09 +0000)]
Merge "Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."
Roland Levillain [Fri, 23 Oct 2015 12:25:35 +0000 (13:25 +0100)]
Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning.
The current heap poisoning instrumentation of this intrinsic
does not always work properly when heap poisoning in
enabled, hence this quick fix to let the build & test
infrastructure turn green again.
Bug:
12687968
Change-Id: I546a392a61e429cd13209261f806d0aed8d1cd86
Roland Levillain [Fri, 23 Oct 2015 10:09:28 +0000 (10:09 +0000)]
Merge "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic."
Andreas Gampe [Fri, 23 Oct 2015 04:29:26 +0000 (04:29 +0000)]
Merge "MIPS64: Add tests for rotation, and shift instructions"
Mingyao Yang [Thu, 22 Oct 2015 22:40:58 +0000 (15:40 -0700)]
Revert "Revert "load store elimination.""
This reverts commit
8030c4100d2586fac39ed4007c61ee91d4ea4f25.
Change-Id: I79558d85484be5f5d04e4a44bea7201fece440f0
Richard Uhler [Thu, 22 Oct 2015 19:07:58 +0000 (19:07 +0000)]
Merge "Release ahat version 0.2."
Nicolas Geoffray [Thu, 22 Oct 2015 17:27:50 +0000 (17:27 +0000)]
Merge "MIPS: Initial version of optimizing compiler for MIPS32"
Goran Jakovljevic [Tue, 25 Aug 2015 14:11:42 +0000 (16:11 +0200)]
MIPS: Initial version of optimizing compiler for MIPS32
Change-Id: I370388e8d5de52c7001552b513877ef5833aa621
Nicolas Geoffray [Thu, 22 Oct 2015 13:49:37 +0000 (13:49 +0000)]
Merge "Do not run the verifier when deopting optimized frames."
Nicolas Geoffray [Tue, 20 Oct 2015 14:52:58 +0000 (15:52 +0100)]
Do not run the verifier when deopting optimized frames.
The stack maps contain all the required information.
Change-Id: I709e72b3de0d76a4203a3a004f093071e7865642
Yohann Roussel [Thu, 22 Oct 2015 10:46:36 +0000 (10:46 +0000)]
Merge "Fix art-run-tests dependencies"
Roland Levillain [Thu, 22 Oct 2015 10:38:49 +0000 (11:38 +0100)]
Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.
Properly handle the case when the same object is passed to
sun.misc.Unsafe.compareAndSwapObject for the `obj` and
`newValue` arguments (named `base` and `value` in the
intrinsic implementation) and re-enable this intrinsic.
Also convert some reinterpret_casts to down_casts.
Bug:
12687968
Change-Id: I82167cfa77840ae2cdb45b9f19f5f530858fe7e8
Chris Larsen [Wed, 21 Oct 2015 22:28:53 +0000 (15:28 -0700)]
MIPS64: Clean-up intrinsics code
- Wrap lines longer that 100 characters.
- Fix return type in comments for various Long intrinsics.
- Add Location::OutputOverlap parameter to CreateFPToFP() function;
wrong value was being used for floor()/ceil() intrinsics.
Change-Id: I998b647e1c20521a72da89cfe2d5a4c27e3ab85c
Mathieu Chartier [Wed, 21 Oct 2015 18:01:42 +0000 (18:01 +0000)]
Merge "Use binary search for FindDeclaredInstance/StaticField"
Vladimir Marko [Wed, 21 Oct 2015 16:53:55 +0000 (16:53 +0000)]
Merge "Fix destruction order in Dex2Oat."
Sebastien Hertz [Wed, 21 Oct 2015 16:28:32 +0000 (16:28 +0000)]
Merge "JDWP: fix possible JdwpEvent memory leak"
Calin Juravle [Wed, 21 Oct 2015 15:56:16 +0000 (15:56 +0000)]
Merge "Block signals before invoking special or user handlers"
Mathieu Chartier [Wed, 21 Oct 2015 01:30:03 +0000 (18:30 -0700)]
Use binary search for FindDeclaredInstance/StaticField
Before:
real 1m18.157s
user 1m8.167s
sys 0m8.071s
After:
real 1m12.943s
user 1m3.223s
sys 0m7.881s
Perf results:
FindDeclaredStaticField: 1.78% -> 0.11%
__GI___strncmp_ssse3: 2.45% -> 0.87%
Bug:
10921004
Change-Id: Ice7d3ce2635d6cd2de5574055375d9e20712d241
Yohann Roussel [Tue, 21 Jul 2015 14:25:44 +0000 (16:25 +0200)]
Fix art-run-tests dependencies
Their classpath dependency was missing
(cherry picked from commit
6c8d5962573e2df393594bbcee80d07f16edafe3)
Change-Id: Id4f489c140585c62b6c105533b97837612c6199c
Sebastien Hertz [Wed, 21 Oct 2015 14:18:58 +0000 (16:18 +0200)]
JDWP: fix possible JdwpEvent memory leak
Fixes possible memory leak when registering new JdwpEvent but the
Count modifier is invalid. This is done by using a std::unique_ptr
with a custom delete function. It also allows to easily introduce
more modifier checks in the future.
Bug:
14076832
Change-Id: I339ffb1297165ff85ab924e5e7618d336df5612b
Nicolas Geoffray [Wed, 21 Oct 2015 13:12:27 +0000 (13:12 +0000)]
Merge "Mark 2 libcore tests as failing."
Nicolas Geoffray [Wed, 21 Oct 2015 12:59:28 +0000 (13:59 +0100)]
Mark 2 libcore tests as failing.
bug:
25136848
Change-Id: If1cde2f3a0140a5eb9c138a462ecc9a30e73b8eb
Nicolas Geoffray [Wed, 21 Oct 2015 11:14:39 +0000 (11:14 +0000)]
Merge "Remove the magic 32 constant and ensure alignment."
Nicolas Geoffray [Wed, 21 Oct 2015 11:07:31 +0000 (12:07 +0100)]
Remove the magic 32 constant and ensure alignment.
Change-Id: I383315bf3cd5f0b8634e2982da55d5d864009a91
Bruce Hoult [Mon, 12 Oct 2015 01:12:00 +0000 (10:12 +0900)]
enum operator<<() script fails with do { } while cond;
The script assumes that a line containing a '}' and a ';' will only
and always signal the end of a scope.
Unfortunately, this also matches '} while (myCond);',
thus incorrectly thinking it has reached the end of a scope.
This can result in enums being emitted without scope resolution
(or with insufficient scope resolution), cause compile errors.
Change-Id: I6e1b3453b941bff93ddd0b2a9fd3950182668728
Signed-off-by: randy.jeong <randy.jeong@samsung.com>
Calin Juravle [Wed, 21 Oct 2015 10:15:20 +0000 (10:15 +0000)]
Merge "Inliner: make sure the returned value is in the outer graph."
Nicolas Geoffray [Wed, 21 Oct 2015 10:00:34 +0000 (10:00 +0000)]
Merge "Use DlMallocSpace for the JIT code cache."
Nicolas Geoffray [Thu, 15 Oct 2015 12:53:04 +0000 (13:53 +0100)]
Use DlMallocSpace for the JIT code cache.
- Also tidy up some code in the JIT compiler.
- And mprotect code space to be writable only when allocating.
Change-Id: I46ea5c029aec489f2af63452de31db3736aebc20
Stephen Hines [Wed, 21 Oct 2015 06:34:26 +0000 (06:34 +0000)]
Merge "ART: Disable Clang for arm"
Andreas Gampe [Wed, 21 Oct 2015 05:10:26 +0000 (22:10 -0700)]
ART: Disable Clang for arm
Disable Clang for arm32 until a fix for the issue is found.
Bug:
25130937
Change-Id: Ia33f387b89ac8d1e8eac9a2782c45f038b9e8a1a
Andreas Gampe [Wed, 21 Oct 2015 04:54:04 +0000 (04:54 +0000)]
Merge "ART: Fix left-shift of negative numbers"
Andreas Gampe [Wed, 21 Oct 2015 04:08:52 +0000 (21:08 -0700)]
ART: Fix left-shift of negative numbers
Shifting negative numbers is undefined.
Change-Id: I0c32a3fcf372eae74507a5f2383edbfaf5c6830c
Alex Light [Tue, 20 Oct 2015 21:28:27 +0000 (21:28 +0000)]
Merge "Fix typos."
Richard Uhler [Tue, 20 Oct 2015 19:29:14 +0000 (19:29 +0000)]
Merge "Change dex_location_ from const char* to std::string."
Richard Uhler [Tue, 20 Oct 2015 19:26:52 +0000 (19:26 +0000)]
Merge "Switch ahat test to use core-optimizing-pic.art."
Calin Juravle [Tue, 20 Oct 2015 13:54:07 +0000 (14:54 +0100)]
Inliner: make sure the returned value is in the outer graph.
The returned value may be a constant or a parameter value. If so, it
will be in the inlined entry_block and (before this CL) we would not
update its block or graph. This CL fixes this and makes sure that the
returned value belongs to the outer graph.
Change-Id: Ie296f0d5a320c33f39eb187df6d328371ccf6500
Chris Larsen [Mon, 19 Oct 2015 21:17:16 +0000 (14:17 -0700)]
MIPS64: Add tests for rotation, and shift instructions
Change-Id: I5611cb5c638c6be193739cbe859cb4ff4074a5fa
Alex Light [Tue, 20 Oct 2015 17:49:48 +0000 (10:49 -0700)]
Fix typos.
Change-Id: Ie2198e3bb4b978c638de12db34547b4311d85eb5
Roland Levillain [Tue, 20 Oct 2015 17:48:04 +0000 (17:48 +0000)]
Merge "Disable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning."
Alex Light [Tue, 20 Oct 2015 17:37:11 +0000 (17:37 +0000)]
Merge "Disable test 961-default-iface-resolution-generated with gcstress"
Andreas Gampe [Tue, 20 Oct 2015 17:23:45 +0000 (17:23 +0000)]
Merge "MIPS64: Disassembler support for rotate instructions."
Alex Light [Tue, 20 Oct 2015 17:23:32 +0000 (10:23 -0700)]
Disable test 961-default-iface-resolution-generated with gcstress
The test takes too long with gcstress and can cause timeouts.
Change-Id: I99d16e882650ea73d07f4292fcfba0869f5b7ed1
Richard Uhler [Tue, 20 Oct 2015 17:03:38 +0000 (10:03 -0700)]
Release ahat version 0.2.
* Update ahat to use perflib studio-1.4
* Add some help tips.
Change-Id: I5aeafb27ff9e55f2ad1a6316184b8d3838e1df7c
Roland Levillain [Tue, 20 Oct 2015 16:55:06 +0000 (17:55 +0100)]
Disable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning.
The current heap poisoning instrumentation of this intrinsic
does not always work properly when heap poisoning in
enabled, hence this quick fix to let the build & test
infrastructure turn green again.
Bug:
12687968
Change-Id: I03702a057fb6f07134e926e2c1c2780f47e3a50a
Vladimir Marko [Tue, 20 Oct 2015 10:20:09 +0000 (11:20 +0100)]
Fix destruction order in Dex2Oat.
In case of a failure (say, --image= pointing to non-existent
directory), the image_writer_ may not be destroyed in
CreateImageFile() and it will be destroyed in Dex2Oat's
destructor instead. However, ImageWriter owns a MemMap, so
it must be destroyed before MemMap::Shutdown() called from
Runtime's destructor. In release builds without leak checks,
we intentionally leak the runtime, so we don't hit the
destruction order issue. However, debug build was crashing
on the DCHECK(maps_ != nullptr) in MemMap destructor.
This change cleans up the destruction order and deliberately
leaks even more owned data in release builds without leak
checks.
Change-Id: Ib7f305bb676589d0379ecaafe6a53eeae208beaa
Nicolas Geoffray [Tue, 20 Oct 2015 12:36:24 +0000 (12:36 +0000)]
Merge "New attempt at fixing mac build."
Nicolas Geoffray [Tue, 20 Oct 2015 12:35:38 +0000 (13:35 +0100)]
New attempt at fixing mac build.
Change-Id: I00e3df55e65eb5edb4e8dd244bb7f8918dd942d4
Nicolas Geoffray [Tue, 20 Oct 2015 11:56:02 +0000 (11:56 +0000)]
Merge "Fix mac build."
Nicolas Geoffray [Tue, 20 Oct 2015 11:55:20 +0000 (12:55 +0100)]
Fix mac build.
Change-Id: I7229a628a619164eea22735bcaed507428ab054a
Nicolas Geoffray [Tue, 20 Oct 2015 11:41:49 +0000 (11:41 +0000)]
Merge "Remove ArtCode."
Nicolas Geoffray [Fri, 16 Oct 2015 16:13:34 +0000 (17:13 +0100)]
Remove ArtCode.
- Instead use OatQuickMethodHeader.
- Various cleanups now that we don't have all those
ArtMethod -> ArtCode -> OatQuickMethodHeader indirections.
As a consequence of this cleanup, exception handling got a bit
faster.
ParserCombinators benchmark (exception intensive) on x64: (lower is better)
Before:
ParserCombinators(RunTime):
1062500.0 us.
After:
ParserCombinators(RunTime): 833000.0 us.
Change-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3
Calin Juravle [Tue, 20 Oct 2015 10:32:22 +0000 (10:32 +0000)]
Merge "Fix induction_var_range_test."