summaryrefslogtreecommitdiffstats
path: root/compiler/driver/compiler_driver.cc
Commit message (Collapse)AuthorAgeFilesLines
* art: allow devices to disable CAF bailout patchesSimon Shields2015-12-061-0/+4
| | | | | | these patches seem to break dex2oat on some non-qcom boards Change-Id: Ib70ca7e12d45ea49cbfa3f6acd04fe4a7f015055
* art: Fix whitespace errors added by cafChristopher R. Palmer2015-11-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All of these errors break compilation with GCC 4.9 and based on a spot check appear to be all CAF introduced changes. Fix these to avoid future breakage. Conflicts: compiler/dex/mir_graph.h compiler/dex/quick/arm/assemble_arm.cc compiler/dex/quick/arm/codegen_arm.h compiler/dex/quick/arm/target_arm.cc compiler/dex/quick/arm64/codegen_arm64.h compiler/dex/quick/arm64/target_arm64.cc compiler/dex/quick/mir_to_lir.h compiler/utils/growable_array.h Changes: compiler/dex/mir_graph.h compiler/dex/mir_optimization.cc compiler/dex/quick/arm/codegen_arm.h compiler/dex/quick/arm/target_arm.cc compiler/dex/quick/mir_to_lir.h compiler/dex/quick/quick_compiler.cc compiler/driver/compiler_driver.cc compiler/optimizing/inliner.cc compiler/optimizing/nodes.cc compiler/optimizing/optimizing_compiler.cc Change-Id: I3e23e1449eea0565fbe6f91251190b1e153f16cf Signed-off-by: AdrianDC <radian.dc@gmail.com>
* art: Set check_bail_out to false by defaultSteve Kondik2015-11-041-0/+3
| | | | | | | * As it is supposed to be, thus unbreaking the compiler when used with the extension. Change-Id: I37499652ab0c3d33cdfccffef8664c9eb470a931
* ART: extensionWei Wang2015-10-061-0/+13
| | | | | | | 1. add hooks for further extension 2. minor code change Change-Id: I2615013b899f5f9b3495546e6001863fb054861a
* ART: Set methods to preverified in verify-noneAndreas Gampe2015-06-251-0/+6
| | | | | | | | | | | | Actually mark all methods to be verified, so that the interpreter doesn't do access checks. Speedup is about 2x on a Nexus 6 when booting in verify-none mode. Bug: 22040916 (cherry picked from commit 1c284f2abdfe1b0ed87d5216021e69146f10b116) Change-Id: I2d6c8df2a68eae6e358da2639d980cb8bfcc1560
* ART: Don't do pre-linked calls to the interpreter bridge.Vladimir Marko2015-06-221-1/+3
| | | | | | | | Bug: 21897404 (cherry picked from commit c08ab29796eeaa3b5863fbd987cd96fe7538d40c) Change-Id: I66531379fb4468a8ddee063e664bf6593abbe7d5
* Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-devDavid Srbecky2015-06-191-2/+2
|\
| * ART stack unwinding fixes for libunwind/gdb/lldb.David Srbecky2015-06-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dex2oat can already generate unwinding and symbol information which allows tools to create backtrace of mixed native and Java code. This is a cherry pick from aosp/master which fixes several issues. Most notably: * It enables generation of ELF-64 on 64-bit systems (in dex2oat, C compilers already produce ELF-64). Libunwind requires ELF-64 on 64-bit systems for backtraces to work. * It enables loading of ELF files with dlopen. This is required for libunwind to be able to generate backtrace of current process (i.e. the process requesting backtrace of itself). * It adds unit test to test the above (32 vs 64 bit, in-proces vs out-of-process, application code vs framework code). * Some other fixes or clean-ups which should not be of much significance but which are easier to include to make the important CLs cherry-pick cleanly. This is squash of the following commits from aosp/master: 7381010 ART: CFI Test e1bbed2 ART: Blacklist CFI test for non-compiled run-tests aab9f73 ART: Blacklist CFI test for JIT 4437219 ART: Blacklist CFI test for Heap Poisoning a3a49fe Switch to using ELF-64 for 64-bit architectures. 297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture. 24981a1 Set correct size of PT_PHDR ELF segment. 1a146bf Link .dynamic to .dynstr 67a0653 Make some parts of ELF more (pointer) aligned. f50fa82 Enable 64-bit CFI tests. 49e1fab Use dlopen to load oat files. 5dedb80 Add more logging output for dlopen. aa03870 Find the dlopened file using address rather than file path. 82e73dc Release dummy MemMaps corresponding to dlopen. 5c40961 Test that we can unwind framework code. 020c543 Add more log output to the CFI test. 88da3b0 ART: Fix CFI test wrt/ PIC a70e5b9 CFI test: kill the other process in native code. ad5fa8c Support generation of CFI in .debug_frame format. 90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write. 97dabb7 Fix build breakage in dwarf_test. 388d286 Generate just single ARM mapping symbol. f898087 Split .oat_patches to multiple sections. 491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again). 8363c77 Add --generate-debug-info flag and remove the other two flags. 461d72a Generate debug info for core.oat files. Bug: 21924613 Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
* | ART: Fix reporting initialized classes by CompilerDriver.Vladimir Marko2015-06-181-1/+20
|/ | | | | | | | | | | | | | | | | Fix a bug where the CompilerDriver was erroneously reporting classes as initialized during AOT compilation when they were not guaranteed to be initialized at runtime. This fix prevents the Quick compiler from inlining calls to static methods in classes that are not guaranteed to be initialized, so that the runtime performs the initialization required for correctness. Bug: 21847756 (cherry picked from commit 07785bb98dc8bbe192970e0f4c2cafd338a8dc68) Change-Id: I60c7361cb6e8f51be20a3cbfcae19f3240bdfbed
* Move mirror::ArtMethod to nativeMathieu Chartier2015-06-021-56/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* ART: Clean up arm64 kNumberOfXRegisters usage.Vladimir Marko2015-05-261-0/+1
| | | | | | | | | | | | | | | | | | | | | Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 (cherry picked from commit 80afd02024d20e60b197d3adfbb43cc303cf29e0) Change-Id: I905257a21de90b5860ebe1e39563758f721eab82
* Replace String CharArray with internal uint16_t array.Jeff Hao2015-04-271-0/+13
| | | | | | | | | | | | Summary of high level changes: - Adds compiler inliner support to identify string init methods - Adds compiler support (quick & optimizing) with new invoke code path that calls method off the thread pointer - Adds thread entrypoints for all string init methods - Adds map to verifier to log when receiver of string init has been copied to other registers. used by compiler and interpreter Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
* Replace NULL with nullptrMathieu Chartier2015-04-221-3/+5
| | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* ART: Add compiled-methodsAndreas Gampe2015-04-211-3/+20
| | | | | | | | | | | Add a dex2oat option for compiled-methods, a more granular filter than compiled-classes. Add compiler-driver support for it. Refactor dex2oat to reuse file reading. Add a test to oat_test. Change-Id: I78d0d040bce7738b4bb7aabe7768b5788d2587ac
* ART: Change image_classes and compiled_classes to unordered setAndreas Gampe2015-04-201-16/+23
| | | | | | | | These lists can be large, and the soon-to-follow compiled_methods will be potentially even larger. Use a hash set instead of a tree set. Change-Id: I7d25c075540f47771354c6f49928b4fd0c76eb2e
* [optimizing] Add memory barriers in constructors when neededCalin Juravle2015-04-201-1/+1
| | | | | | | | | If a class has final fields we must add a memory barrier before returning from constructor. This makes sure the fields are visible to other threads. Bug: 19851497 Change-Id: If8c485092fc512efb9636cd568cb0543fb27688e
* Fallback to quick in case of soft verification errorsCalin Juravle2015-04-161-0/+25
| | | | | | | | | | Add a regression test: using uninitialized values triggers a soft verification error and optimizing should not crash. Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the bug report. Bug: 19988704 Change-Id: I67174538eed853baff735694b3ae8eb34afe2a39
* ART: Clean up includes.Vladimir Marko2015-04-131-1/+1
| | | | | | | Reduce dependencies to improve incremental build times. Break up circular dependency involving class_linker-inl.h. Change-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db
* Move ArtField to nativeMathieu Chartier2015-04-101-23/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* ART: Remove WriteElf from CompilerAndreas Gampe2015-04-101-1/+9
| | | | | | | | As Portable is gone, we only have one elf_writer left. It also allows to put the decision for 32b vs 64b ELF into a central point. Change-Id: Iae67d06df85268b3f0ee5725abc65edd23eb2499
* ART: Remove LLVM cruftAndreas Gampe2015-04-071-38/+0
| | | | Change-Id: I133ebed6101bf12a0642ed71e13f332c0c4f14e7
* Merge "Prevent verified method from being deleted by compiler driver."Jeff Hao2015-04-061-2/+6
|\
| * Prevent verified method from being deleted by compiler driver.Jeff Hao2015-04-061-2/+6
| | | | | | | | | | | | The results of it will be needed by future optimizing compiler changes. Change-Id: Ifbdf47e7564906b74193f80a4ba0459eed87c0f7
* | Fix JNI compiler for mips64Goran Jakovljevic2015-04-061-4/+2
|/ | | | | | | | Fix assembly instructions in JNI stub to store the right size. Fix callee-saves in JNI calling convention to reflect return registers. Fix pointer size in mips64 assembler. Change-Id: I4eccd1f56f62fa9119918192ec424e9073398bc7
* Explicitly specify the C libraries that have mallinfo(3).Elliott Hughes2015-04-021-1/+1
| | | | Change-Id: Ib6d22134cb246e30452a7ed9acabbde42b3ef091
* Fixed layout for dex caches in boot image.Vladimir Marko2015-03-311-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Define a fixed layout for dex cache arrays (type, method, string and field arrays) for dex caches in the boot image. This gives those arrays fixed offsets from the boot image code and allows PC-relative addressing of their elements. Use the PC-relative load on arm64 for relevant instructions, i.e. invoke-static, invoke-direct, const-string, const-class, check-cast and instance-of. This reduces the arm64 boot.oat on Nexus 9 by 1.1MiB. This CL provides the infrastructure and shows on the arm64 the gains that we can achieve by having fixed dex cache arrays' layout. To fully use this for the boot images, we need to implement the PC-relative addressing for other architectures. To achieve similar gains for apps, we need to move the dex cache arrays to a .bss section of the oat file. These changes will be implemented in subsequent CLs. (Also remove some compiler_driver.h dependencies to reduce incremental build times.) Change-Id: Ib1859fa4452d01d983fd92ae22b611f45a85d69b
* Enable more direct code for JITMathieu Chartier2015-03-201-1/+4
| | | | | | | | Hard to measure the performance impact, but it should be faster. Bug: 17950037 Change-Id: Ib8d216bb3b305dc390b5df7ee92427fd6bd8aab3
* Add verify-at-runtime compiler filterMathieu Chartier2015-03-201-9/+21
| | | | | | | | | | | | | Verifies at runtime only, instead of at compilation time. AOSP HH boot time after clean-oat: ~30s instead of ~35s if enabled. Also helps install time if enabled there. TODO: See if there is any possible deadlocks that can result from this. Bug: 19762303 Change-Id: Ibfba77148da9039e8d7d7497c05486bc044eefe7
* Fix 003-omnibus-opcodes flaky failures with GSS GC.Hiroshi Yamauchi2015-03-191-1/+1
| | | | | | | | Fix a moving GC bug in Class::SetStatus(). Bug: 19828874 Change-Id: I6bef49a7ce964e8a7e316f282aaf1b8544efe76d
* Add more info to who called SuspendAllMathieu Chartier2015-03-131-1/+1
| | | | | | Helps diagnose related jank. Change-Id: I38191cdda723c6f0355d0197c494a3dff2b6653c
* Merge "ART: Check that boot image classes are verified"Andreas Gampe2015-03-121-0/+6
|\
| * ART: Check that boot image classes are verifiedAndreas Gampe2014-11-241-0/+6
| | | | | | | | | | | | | | | | | | In a debug build, check that all classes in the boot image are at least fully verified. This is to avoid issues when we need to bring up a runtime quickly and without verification, e.g., the decryption screen. Change-Id: I819683d8d35b6ffb50c6387a0f8091b9f130980d
* | Trim arenas for JITMathieu Chartier2015-03-091-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved arena pool into the runtime. Added arena trimming to arena pool. When called, this madvises the used memory. Changed the JIT compiler to trim arenas after compilation. Changed the arena mmap name to dalvik-LinearAlloc. Native PSS before: 80353 kB: Native 80775 kB: Native 78116 kB: Native After: 73357 kB: Native 70181 kB: Native 70306 kB: Native Bug: 17950037 Bug: 17643507 Bug: 19264997 Change-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930
* | Merge "Compute the right catch location for the debugger."Nicolas Geoffray2015-03-091-4/+4
|\ \
| * | Compute the right catch location for the debugger.Nicolas Geoffray2015-03-091-4/+4
| | | | | | | | | | | | | | | | | | Also remove tls ThrowLocation, it is not needed anymore. Change-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9
* | | Initial support for quick compiler on MIPS64r6.Maja Gagic2015-03-061-2/+4
| | | | | | | | | | | | Change-Id: I6f43027b84e4a98ea320cddb972d9cf39bf7c4f8
* | | ART: Add option to abort dex2oat on hard failureAndreas Gampe2015-03-051-0/+8
| | | | | | | | | | | | | | | | | | | | | Add an option that aborts dex2oat when a hard verifier failure occurs. Bug: 19606409 Change-Id: I53195284e22fe6207274101e85745af763c06271
* | | ART: Fix compile-time-init failAndreas Gampe2015-03-041-0/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible that a class that isn't itself marked as an image class and would be skipped for compile-time-initialization by the compiler driver is initialized when initializing a second class that is an image class. If the second class only depended on the first class during initialization, e.g., to read field values, the compiler driver may discard the class object (not reachable from image classes), but record the oat class status as initialized (as it has been). In that case we miss the initialization when we load the class at runtime. Ensure that all initialized classes with a class initializer are considered image classes and retained. Bug: 19323020 Change-Id: I4e537f328d9a4ea23ed5ff7166d532b8855f7acd
* | Merge "Follow-up 128393"Sebastien Hertz2015-03-031-2/+1
|\ \
| * | Follow-up 128393Sebastien Hertz2015-03-031-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids false warning when initializing the exception's class by marking the transaction aborted after throwing the InternalError exception. Also uses VLOG(compiler) to print the warning since it's only useful when investigating ahead-of-time class initialization. Bug: 19202032 Change-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861
* | | Fix JIT direct call to interpreter bridgeMathieu Chartier2015-02-261-0/+8
|/ / | | | | | | | | | | | | | | | | FormulaEvaluationActions.EvaluateAndApplyChanges on hammerhead eng: Before: 3550ms After: 2540 Bug: 17950037 Change-Id: If7acaea20d4adb5418d00ef13192e2d4c29032af
* | Revert "Revert "Add JIT""Mathieu Chartier2015-02-241-36/+87
| | | | | | | | | | | | | | | | Added missing EntryPointToCodePointer. This reverts commit a5ca888d715cd0c6c421313211caa1928be3e399. Change-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af
* | Revert "Add JIT"Nicolas Geoffray2015-02-241-87/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorry, run-test crashes on target: 0-05 12:15:51.633 I/DEBUG (27995): Abort message: 'art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast<uintptr_t>(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc=71e3366b code=0x71e3362d size=ad000000' 10-05 12:15:51.633 I/DEBUG (27995): r0 00000000 r1 0000542b r2 00000006 r3 00000000 10-05 12:15:51.633 I/DEBUG (27995): r4 00000006 r5 b6f9addc r6 00000002 r7 0000010c 10-05 12:15:51.633 I/DEBUG (27995): r8 b63fe1e8 r9 be8e1418 sl b6427400 fp b63fcce0 10-05 12:15:51.633 I/DEBUG (27995): ip 0000542b sp be8e1358 lr b6e9a27b pc b6e9c280 cpsr 40070010 10-05 12:15:51.633 I/DEBUG (27995): Bug: 17950037 This reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4. Change-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3
* | Add JITMathieu Chartier2015-02-231-36/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently disabled by default unless -Xjit is passed in. The proposed JIT is a method JIT which works by utilizing interpreter instrumentation to request compilation of hot methods async during runtime. JIT options: -Xjit / -Xnojit -Xjitcodecachesize:N -Xjitthreshold:integervalue The JIT has a shared copy of a compiler driver which is accessed by worker threads to compile individual methods. Added JIT code cache and data cache, currently sized at 2 MB capacity by default. Most apps will only fill a small fraction of this cache however. Added support to the compiler for compiling interpreter quickened byte codes. Added test target ART_TEST_JIT=TRUE and --jit for run-test. TODO: Clean up code cache. Delete compiled methods after they are added to code cache. Add more optimizations related to runtime checks e.g. direct pointers for invokes. Add method recompilation. Move instrumentation to DexFile to improve performance and reduce memory usage. Bug: 17950037 Change-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca
* | Revert "Revert "Allow preopted apps to have sharpened calls for non-x86 ↵Jeff Hao2015-02-051-1/+9
| | | | | | | | | | | | | | | | | | architectures."" Should really say it allows pre-linked calls instead of sharpened calls. Bug: 19100762 Change-Id: Ia2045a9eda92255e87a7f6187de18d6370b8f060
* | Fix transaction abortingSebastien Hertz2015-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During compilation, a java.lang.InternalError is used to indicate that class initialization failed and the enclosing transaction should be aborted and the changes rolled back. However there is nothing preventing the code executed from a class initializer from catching that exception (like catching Throwable and ignore it). Therefore we may return from the class initializer with no pending exception, even if the transaction was aborted, and not rollback the changes properly. To fix this, we now rely on the new Transaction::aborted_ field to know whether a transaction aborted. When returning from the class initializer without pending exception, we now check wether we aborted the enclosing transaction. If that's the case, we set the status of the class to kStatusError and throw a new java.lang.InternalError with the original abort message. This CL also contains some cleanup: - Renames Transaction::Abort to Transaction::Rollback which is less ambiguous and more reflect what is done. - Moves the code throwing the java.lang.InternalError exception into the Transaction::ThrowInternalError method so we do not duplicate code. Now we may abort transaction more than once (because we may have caught the java.lang.InternalError then execute code causing new transaction abort), we only keep the first abort message to throw the exception. - Updates transaction_test with more cases and more checks. - Bumps oat version to force recompilation with this fix. Bug: 19202032 Change-Id: Iedc6969528a68bbdf3123146e990df4dbc57834b
* | Revert "Allow preopted apps to have sharpened calls for non-x86 architectures."Brian Carlstrom2015-01-311-17/+9
| | | | | | | | This reverts commit 1e3dfff2b73e142c568625a0310c1764658218c4.
* | Allow preopted apps to have sharpened calls for non-x86 architectures.Jeff Hao2015-01-271-9/+17
| | | | | | | | | | Bug: 19100762 Change-Id: Idce391a06a85b881ce138756155b36e3ed7319c1
* | ART: Curb dex2oat verbosityAndreas Gampe2015-01-201-13/+15
| | | | | | | | | | | | Only print dedupe collisions in a debug build or on verbose logging. Change-Id: I08bd04a453d95b6dba6cf6955b5741cd97daf480
* | Merge "ART: Allow to compile interpret-only mips64 files"Andreas Gampe2015-01-151-1/+2
|\ \