summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ART: Unlink target oat file before compilingAndreas Gampe2015-06-301-0/+4
| | | | | | | | | Dex2oat must create a new file (new inode) when writing to a target given by name, as the existing file may be in use. So unlink any existing file first. Bug: 22047255 Change-Id: Ief942c71564076e39c1e8340d5c4c55286f75896
* Merge "MIPS: Initial version of optimizing compiler for MIPS64R6." into mnc-devRoland Levillain2015-06-2916-256/+4589
|\
| * MIPS: Initial version of optimizing compiler for MIPS64R6.Roland Levillain2015-06-2616-256/+4589
| | | | | | | | | | | | | | | | | | | | (cherry picked from commit 4dda3376b71209fae07f5c3c8ac3eb4b54207aa8) (amended for mnc-dev) Bug: 21555893 Change-Id: I874dc356eee6ab061a32f8f3df5f8ac3a4ab7dcf Signed-off-by: Alexey Frunze <Alexey.Frunze@imgtec.com> Signed-off-by: Douglas Leung <douglas.leung@imgtec.com>
* | Quick: Disable GVN, DCE and LVN for type conflicts.Vladimir Marko2015-06-271-5/+11
| | | | | | | | | | | | | | (cherry picked from commit f7e7327d7a873d21aaae01471f46a4d64d65433b) Bug: 22136903 Change-Id: I657d4b5e623696e1264c2c6c9ad4e7fd466d759c
* | ART: Fix invalid access and DCHECK in verifierAndreas Gampe2015-06-265-8/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If we get a throwing failure when setting types from the signature, the work instruction index is still invalid. Do not try to copy the line then. As a throwing failure might happen in the above instance, but the flow analysis expects to have a cleared failure flag before processing each instruction, clear the flag. Bug: 21645819 Bug: 22080519 Change-Id: I224c4dad98fa5bb50e62210f0ee30c0dd020e3a6
* | Merge "Require mutator lock for DeleteLocalRef" into mnc-devMathieu Chartier2015-06-261-6/+7
|\ \
| * | Require mutator lock for DeleteLocalRefMathieu Chartier2015-06-261-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a race condition where suspended threads could call DeleteLocalRef while the GC was marking their roots. This could cause the GC to attempt to mark a null object. (cherry picked from commit dd06afecd67fc6a60856436ab150a4d1b9a8ad29) Bug: 22119403 Change-Id: I962c717bb87b2acb2a4710a2d7ab16793e031401
* | | ART: Fix streaming tracing issuesAndreas Gampe2015-06-266-23/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a lock ordering issue in streaming-mode tracing. Fix a moving-GC issue in streaming-mode tracing. DexCache objects are not good keys for a map. Expose streaming mode for testing in run-tests. Bug: 21760614 Change-Id: Idcd0575684ee3cc0cec3f81b4fdd0d5988c11e8c
* | | ART: Bail out immediately on try/catchDavid Brazdil2015-06-261-6/+11
| |/ |/| | | | | | | | | | | | | | | Optimizing builds the graph even if it knows it will delegate to Quick. This patch moves the decision at the beginning of the TryCompile function to save a little bit of compile time. Bug: 22115561 Change-Id: I18b5a686e10592080ea3c49d53a0dd81aa3b3010
* | Merge "ART: Fix kEverything compiler filter" into mnc-devAndreas Gampe2015-06-262-3/+4
|\ \
| * | ART: Fix kEverything compiler filterbuzbee2015-06-252-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the kEverything filter failed to compile class initializers. Now it will. Bug: 19576257 (cherry picked from commit c83329952b4a313e747c8835a73699e2cae5a6e2) Change-Id: I189d2b5b379aee112c4e95f8d3e6c32abab6ed41
* | | ART: Only print stripped dex2oat command lineAndreas Gampe2015-06-251-1/+68
| |/ |/| | | | | | | | | | | | | | | | | | | To curb logcat noise, strip many dex2oat parameters from the logcat printout. Bug: 20501758 (cherry picked from commit 046c706707ea0f16c804136e237ac7cbfdc897a1) Change-Id: Ifc367f91f593916e0773af1ca950c798f129889f
* | ART: Reset runtime_throw_failure flagAndreas Gampe2015-06-256-5/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The flag is instruction-specific. It transports the info from Fail to the main loop. It must be cleared after each iteration. Introduce a second flag to store whether we saw such a failure at all. Update test expectations. Bug: 22080519 (cherry picked from commit d12e782bcee03ecb6dec41aa9673ef53b638dcea) Change-Id: I32be914819946233babaa4cb7343844d97b61ba5
* | 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
* | Merge "Do not try to compile resource-only dex files." into mnc-devRichard Uhler2015-06-254-44/+109
|\ \
| * | Do not try to compile resource-only dex files.Richard Uhler2015-06-244-44/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes behavior in the case where we are asked to load a dex file that does not exist or has no classes.dex entry. Previously we would run dex2oat, which would log an error message and fail. Now we skip running dex2oat, we report the DexOptStatus as kNoDexOptNeeded, and we do not try to fall back to the missing original dex files. Bug: 21722039 Change-Id: I90b1f4165138daac57bb9d7a354319005652c593
* | | Hard-fail get-/put-object to a non-reference field.Vladimir Marko2015-06-254-8/+36
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 21886894 (cherry picked from commit 414000ec4d728b5c85f8c6dee4f867fecde59b01) Change-Id: Iafc32f0e45d26f3aaa2d521b98353e7cede16c6f
* | | Only do some checks when compiling against the core image.Nicolas Geoffray2015-06-253-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will avoid false negatives when running dex2oatd on apks. bug:21865473 (cherry picked from commit 335005e2b3a179f26b7a8ae64ca60a1406b669bd) Change-Id: Iac6dbe30c9d576077a0384b88696f79937d89471
* | | [MIPS64] JNI Compiler: Sign-extend int function argumentsLazar Trsic2015-06-243-4/+53
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | MIPS n64 ABI differs from arm64. Arguments smaller than the 8B stack slot need to be sign-extended. Use combination (lw,sd), instead of (lw,sw) for 4B values. Change fixes software keyboard crash on mips64. Bug: 21555893 (cherry picked from commit f652d605753f1387e7797461b47116c5dcdf928d) Change-Id: I7574d37f6039e9e8c9e0047254be71d28d4c829a
* | Merge "ART: Fix arm32 instrumentation exit stub" into mnc-devAndreas Gampe2015-06-251-2/+7
|\ \
| * | ART: Fix arm32 instrumentation exit stubAndreas Gampe2015-06-241-2/+7
| | | | | | | | | | | | | | | | | | | | | Properly store, pass and restore floating point result. Bug: 22047833 Change-Id: If5d9efbe63334c9b6353f76ce6e4fe519602482a
* | | Fix force copyMathieu Chartier2015-06-242-44/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | We now correctly pass the returned pointer back onto the release functions. Bug: 22056708 Change-Id: I1a7300d3a4522a3c81b432ec742ae1c0bd00b51e (cherry picked from commit b735bd9c04aa291d0a1bdc2c0a094a1a75ad0596)
* | | Merge "Fix imt conflict trampoline for mips64" into mnc-devMathieu Chartier2015-06-241-1/+1
|\ \ \
| * | | Fix imt conflict trampoline for mips64Mathieu Chartier2015-06-241-1/+1
| |/ / | | | | | | | | | | | | | | | | | | Changed lwu to ld Bug: 21815962 Change-Id: I137e871d9c00f83cd5efc9d3a87fa05e84dc5d23
* | | Increase alt signal stack to 32K on host.Christopher Ferris2015-06-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On host, when there is a crash, the code tries to do an unwind from the signal handler. Under some conditions this can require a stack larger than 16K, so increase this value to 32K. The symptom of this is that you get an empty backtrace running art tests when there is a crash. Bug: 21949571 (cherry picked from commit e34c71ce21dbc9fac3427df887e90e1311b6fa8e) Change-Id: Ib1105a3470064d98843bd46f32d4fadb1d20e416
* | | Merge "Adding optimizing compiler test case for String.<init>." into mnc-devJeff Hao2015-06-241-0/+9
|\ \ \
| * | | Adding optimizing compiler test case for String.<init>.Jeff Hao2015-06-231-0/+9
| | | | | | | | | | | | | | | | | | | | Bug: 21991156 Change-Id: Ibd0bd7d3b20680ac06ac08cb857595288c4e9b69
* | | | Use a flag from the verifier to know if we should compile.Nicolas Geoffray2015-06-2410-1/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only used for the lack of bottom type in the aget-object case for now. Could be used for more. bug:21865466 (cherry picked from commit 4824c27988c8eeb302791624bb3ce1d557b0db6c) Change-Id: I2bb7fe1d4737bd92c1076b5193607d74d8761ee7
* | | | BCE: don't assume a bounds check always gets a HArrayLength.Nicolas Geoffray2015-06-242-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deoptimizations may change it to a HPhi. bug:22056703 (cherry picked from commit 8df886b9214802ad689316a1dedb00a6d102555c) Change-Id: I8afcf88e3a12dbe4d87101e6a7cefb8b81e2bb96
* | | | Fix codegen_test after DCE fix.Nicolas Geoffray2015-06-241-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry picked from commit ea80942c39cb5e9bc3e38a388583d1646c1e2a3f) bug:22031382 Change-Id: If410045779adb9e7e611af22c988232b5bf9a902
* | | | Recompute dominator tree after DCE.Nicolas Geoffray2015-06-248-21/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:22031382 (cherry picked from commit 1f82ecc6a0c9f88d03d6d1a6d95eeb8707bd06c1) Change-Id: I9a74edb185cb806045903dfe9695d9cc1a02e86b
* | | | BCE: Narrow instead of unconditionnaly overwrite the range.Nicolas Geoffray2015-06-242-9/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:21862741 (cherry picked from commit a09ff9c11f07863ac57e6120a824f0d20dfaa284) Change-Id: Ia8e903e09a7f9c2b8ef7cf3522f73f154534b81f
* | | | Fix another case of un-verified dead code.Nicolas Geoffray2015-06-245-2/+64
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | bug:22042796 https://code.google.com/p/android/issues/detail?id=178008 (cherry picked from commit 1efcc22cd1895c48adccbe49270d8e8583c2b12d) Change-Id: I5c0d783e842da39cd3dcbb2f18ccf784e797a64f
* | | Merge "ART: Follow-up to 507cc6f83bf6379728f2dd20391f2ed5fbfe6371" into mnc-devAndreas Gampe2015-06-232-22/+41
|\ \ \ | |/ / |/| |
| * | ART: Follow-up to 507cc6f83bf6379728f2dd20391f2ed5fbfe6371Andreas Gampe2015-06-232-22/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not trigger DCHECK aborts for final and abstract classes when they are used from other classes. Instead issue a soft error that leads to a runtime failure. Bug: 21873151 (cherry picked from commit f23f33de8b3e9abd16720e0f48d43d63d41dee16) Change-Id: Ie5251a176722811b3c74585222874313a53f7e02
* | | Merge "Fix field ordering for String in hprof" into mnc-devMathieu Chartier2015-06-231-23/+25
|\ \ \
| * | | Fix field ordering for String in hprofMathieu Chartier2015-06-231-23/+25
| | |/ | |/| | | | | | | | | | | | | | | | | | | We were inserting value field after the Object field instead of the String fields. Bug: 22043800 Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
* / | Make dex file verifier check that indexes are increasing.Jeff Hao2015-06-231-5/+32
|/ / | | | | | | | | | | | | Note that this still allows duplicates. Bug: 21868011 Change-Id: Ib0e91c816eccfaf3b0dac340c05ffd5dc4df17cc
* | Do not overwrite an input register in shift operations.Nicolas Geoffray2015-06-235-20/+131
| | | | | | | | | | | | | | | | | | | | | | 'second_reg' is an input register that can survive the instruction. Instead use the output register as a temporary result. bug:21667432 (cherry picked from commit a4f3581da73b83484a30ab499c4f8ad43b378dab) Change-Id: Ic1f399964911b8a9fc57352130c92b2a0a1b8e0d
* | Merge "Fix another miranda method moving GC bug" into mnc-devMathieu Chartier2015-06-232-18/+24
|\ \
| * | Fix another miranda method moving GC bugMathieu Chartier2015-06-222-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | Need to copy miranda methods over before we allocate the new vtable or else we may have stale miranda gc roots. Bug: 21664466 Change-Id: Ib3e415bb9e7df7abfa18c98fe01f790fa39622dc
* | | New experimental GC stress modeMathieu Chartier2015-06-229-14/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tries to do a GC for every unique call stack (up to 16 frames). The goal is to catch moving GC bugs and lock violations without being rediculously slow. Some tests fail on 64 bits, 32 bit host doesn't work. N5 is booting. Added runtime -Xgc options: gcstress and nogcstress. Bug: 21664466 (cherry picked from commit 310008008c90fea246efd00cb99ee7ded97c5209) Change-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c
* | | Merge "Change GC to allow strings to use large object space." into mnc-devJeff Hao2015-06-221-1/+1
|\ \ \ | |_|/ |/| |
| * | Change GC to allow strings to use large object space.Jeff Hao2015-06-221-1/+1
| | | | | | | | | | | | | | | Bug: 21209641 Change-Id: Ib007a30e575e391e2b5bddb816a9d2e82502c7d5
* | | Merge "ART: Allow checking RETURN_VOID_NO_BARRIER on unresolved classes" ↵Andreas Gampe2015-06-221-0/+32
|\ \ \ | |/ / |/| | | | | into mnc-dev
| * | ART: Allow checking RETURN_VOID_NO_BARRIER on unresolved classesAndreas Gampe2015-06-221-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We must check that all fields are non-final, even for unresolved classes. Fall back to the dex file for this information. Bug: 22005084 Bug: https://code.google.com/p/android/issues/detail?id=177694 (cherry picked from commit 68df32091cc79468c81956633e279523b48ea8bf) Change-Id: If2126d1be5dccadbbedcdccabde7398688d6e5ca
* | | Make large string use large object space.Jeff Hao2015-06-221-2/+2
|/ / | | | | | | | | Bug: 21209641 Change-Id: I731a920c02f29f0321f2077093516aaa0f8d782f
* | 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
* | ART: Disallow classes that are abstract and finalAndreas Gampe2015-06-221-0/+9
| | | | | | | | | | | | | | | | | | | | Make the verifier fail such classes. Bug: 21873151 (cherry picked from commit 507cc6f83bf6379728f2dd20391f2ed5fbfe6371) Change-Id: I217f3d71f44bccdcee7ca830e092c807928bed39
* | Revert "Revert "Add support for inlining already sharpened interface calls.""Nicolas Geoffray2015-06-225-12/+38
| | | | | | | | | | | | | | | | bug:21867144 This reverts commit ee39360775066e6b9920348c86ea98bf01d0facf. Change-Id: I69bf85ce7c352b1a22f36f0f2a136f95b4e73bd6