summaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
...
| * Don't check the return type in the builder.Nicolas Geoffray2015-06-223-0/+32
| | | | | | | | | | | | | | | | | | | | | | The verifier will not complain about dead code. For the compiler, it is benign. bug:21863767 (cherry picked from commit 69505f86a1a653bf86c1f2b423b3e0605137d5d1) Change-Id: I2bc7888b39c91862c6dade130eccdf92f19b3f6f
* | Merge "Do not expect 0 or 1 only when comparing a boolean." into mnc-devNicolas Geoffray2015-06-223-0/+29
|\ \
| * | Do not expect 0 or 1 only when comparing a boolean.Nicolas Geoffray2015-06-223-0/+29
| |/ | | | | | | | | | | | | | | bug:21866529 (cherry picked from commit 3c4ab80c102ff1bfc0e74d4abddbf5454bf4008d) Change-Id: Ibdc0d4a9730bfc6e7307282276f084dae5ac55c1
* / Verifier: check an aput, even if we know it will fail.Nicolas Geoffray2015-06-225-0/+87
|/ | | | | | | | bug:21867457 (cherry picked from commit 66389fbeb41c981648bb2e1e7e2f43089f095591) Change-Id: Id01edeb871f6bc59518eb341e5b76f021cfdfe06
* Run a simplification pass before code generation.Nicolas Geoffray2015-06-223-0/+41
| | | | | | | | | | | | The code generators assume things that only the instruction simplier ensures. So it has to be run last in case previous optimiziations broke those assumptions. bug:21865464 (cherry picked from commit b2bdfce7f805b00668a2521b1c939a0aafb2be49) Change-Id: Ibf4384a911e400eb7586bbf6b4edd6351034cbd8
* Merge "Bailout from compilation if an invoke is malformed." into mnc-devNicolas Geoffray2015-06-224-0/+106
|\
| * Bailout from compilation if an invoke is malformed.Nicolas Geoffray2015-06-224-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | Because the verifier does not check trivially dead instructions, the compilers must prepare for bogus instructions. This change fixes the case the arguments for an invoke do not match the formal parameters. bug:21865459 (cherry picked from commit 2e33525bd4eb892246b4c244c6d4ebf6c6d07501) Change-Id: I392f86eafefde28263fe35a31f17b398ff8dfc24
* | Merge "Fix wrong DCHECK in bounds check elimination." into mnc-devNicolas Geoffray2015-06-223-0/+39
|\ \
| * | Fix wrong DCHECK in bounds check elimination.Nicolas Geoffray2015-06-223-0/+39
| |/ | | | | | | | | | | | | | | | | | | | | | | The lower range of an array length instruction can be changed by other instructions than HBoundsCheck, like HNewArray. bug:21862741 (cherry picked from commit 8d82a0c2b2b12f259ccb357d3b1e699c68ad0400) Change-Id: I1bb1a4f4c6673509dd3fb5184c32992bed876250
* / Fix a bug in optimizing when the null constant has been DCE.Nicolas Geoffray2015-06-224-0/+71
|/ | | | | | | | | | | | | | If it has been DCE, we should create a new one, instead of using the old one. Also move the first DCE to a place where it could actually be useful. bug:21870788 (cherry picked from commit 18e6873c469b48aaed22148451523479eece98e3) Change-Id: I3b3ab2dafe8ce5fb60868fd1a6ef0eeefe666e0c
* Remove bogus DCHECK in BCE.Nicolas Geoffray2015-06-193-0/+44
| | | | | | | | | | | | When creating a phi for the array length when we add HDeoptimization nodes, we might update accesses in inner loops to use that phi instead of the array length. The BCE phase was not expecting this case. Bug: 21034044 (cherry picked from commit 3cde6227678cf62e06bca264671d1e957456ac3d) Change-Id: I639f4ea6f5889726142041a42736183f162c7437
* Fix premature deoptimization if the loop body isn't entered.Mingyao Yang2015-06-191-24/+143
| | | | | | | | | | | | | | Add a test between initial_ and end_ to see if the loop body is entered. If the loop body isn't entered at all, we jump to the loop header. Loop header is still executed and is going to test the condition again and loop body won't be entered. This makes sure no deoptimization is triggered if the loop body isn't even entered. Bug: 21034044 (cherry picked from commit 3584bce5b1f45e5741d3a6ca24884a36320ecb6b) Change-Id: I2b6de1f22fbc4568ca419f76382ebd87806d9694
* Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-devDavid Srbecky2015-06-197-2/+487
|\
| * ART stack unwinding fixes for libunwind/gdb/lldb.David Srbecky2015-06-197-2/+487
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix case where block has no predecessor for StringChange.Jeff Hao2015-06-193-0/+19
| | | | | | | | | | | | | | | | Removes part that checks for throwing half of instruction. It's no longer necessary. Also adds regression test. Bug: 21902684 Change-Id: Ic600165e6b3719de3d83a73b8a1fa64473668fc8
* | Quick: Fix optimizations for empty if blocks.Vladimir Marko2015-06-193-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a block ending with if-eqz or if-nez has the same "taken" and "fallthrough", we cannot assume that the value has been checked against zero in one of the succesors. This affects the null check elimination pass as well as GVN. Refactor all those checks to a single function in BasicBlock and check that the "taken" and "falthrough" are different when needed. Bug: 21614284 (cherry picked from commit f11c420c448baffac6a70ac0884d481ab347e257) Change-Id: I062e0042de3470ce8680b586487b9c7acbd206bc
* | ART: Remove old DCHECK that trips BaselineDavid Brazdil2015-06-194-0/+65
| | | | | | | | | | | | | | | | | | | | Codegen verified that the entry block always falls through to the next block. While this is the case with Optimizing, it doesn't hold for Baseline but it doesn't need to since codegen handles it fine. Bug:21913514 Change-Id: I751ef227e6cf103af3e7fc35fca4b01c663385a1 (cherry picked from commit 015c7e63604c038e866d7af3850c557403cddc8b)
* | Fix moving GC bugs in proxy stub for X86/X86_64Mathieu Chartier2015-06-181-0/+2
| | | | | | | | | | | | | | | | | | Needed to restore the refs. (cherry picked from commit 9346ff0cfad6344d0bf4eaa69362dbe1987ac054) Bug: 21907554 Change-Id: I562906dff07dcaa78dfb39646ba9ab35a5f56c6c
* | Quick: Don't expect move-exception in every catch block.Vladimir Marko2015-06-183-0/+20
| | | | | | | | | | | | | | | | | | | | | | The dalvik bytecode doesn't require a move-exception in a catch handler that ignores the exception. Bug: 21873167 (cherry picked from commit 2d1a0a408fd148f7b2a2d670e6942ec3d920f875) Change-Id: Ia00e5791fabdd1b88e9a63b741600ed63d918703
* | ART: Allow PackedSwitch instructions with zero targetsDavid Brazdil2015-06-184-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | Optimizing and the interpreter wrongly assumed that a PackedSwitch always has at least one target. This patch removes the corresponding DCHECKs and adds a regression test case. This is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e Bug: 21863783 Change-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691 (cherry picked from commit 2ef645ba50544b879a82ea30e606f18c9af98917)
* | Merge "Add support for inlining already sharpened interface calls. DO NOT ↵Nicolas Geoffray2015-06-183-0/+30
|\ \ | | | | | | | | | MERGE ANYWHERE" into mnc-dev
| * | Add support for inlining already sharpened interface calls. DO NOT MERGE ↵Nicolas Geoffray2015-06-183-0/+30
| |/ | | | | | | | | | | | | | | | | | | | | | | | | ANYWHERE bug:21867144 Test had to change a bit because it was using some features from aosp not present in mnc-dev. (cherry picked from commit 3507105caea0d209c66a95d5ec5d739949105c5d) Change-Id: If12ea9a5c64e86b5bd3a5fd4a943bff60fe49762
* / Fix reference comparison after redundant phi elimination.Nicolas Geoffray2015-06-184-0/+62
|/ | | | | | | | | | Otherwise, the graph could remain mistyped. bug:21776173 (cherry picked from commit 51d400d4ebd41b9fb4d67ac3179f8fb66a090fdd) Change-Id: Iff36dfa4e79b14a9dd85c37e0fbb9e1080dd0364
* Merge "Revert "Revert "Turn off duplicate-classes checking""" into mnc-devAndreas Gampe2015-06-071-0/+5
|\
| * Revert "Revert "Turn off duplicate-classes checking""Andreas Gampe2015-06-031-0/+5
| | | | | | | | | | | | | | This reverts commit 18a1827a159f1b235f3fcc934f428059185f550e. Bug: 21333911 Change-Id: I8cb96efbf7151b238f3ee137a938b20ddfaf0ebc
* | Use runFinalizationWithTimeout for native allocationsMathieu Chartier2015-06-051-5/+25
|/ | | | | | | | Prevents deadlocks by not waiting longer than 250ms for finalizers to complete. Bug: 21544853 Change-Id: I57b2f7ae8b74185922eb3c15ba0ab71a4d2348aa
* Add more info for attempting to delete non-JNI local referenceMathieu Chartier2015-06-022-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we print the stack trace of the method which tried to remove the non-JNI local reference. Added test, example output: Attempt to remove non-JNI local reference, dumping thread "main" prio=5 tid=1 Runnable | group="main" sCount=0 dsCount=0 obj=0x12c2b400 self=0xf878af28 | sysTid=32662 nice=0 cgrp=default sched=0/0 handle=0xf73df700 | state=R schedstat=( 154297228 636505 121 ) utm=5 stm=10 core=11 HZ=100 | stack=0xff6f2000-0xff6f4000 stackSize=7MB | held mutexes= "mutator lock"(shared held) native: #00 pc 00455a7f /out/host/linux-x86/lib/libartd.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+191) native: #01 pc 00425d79 /out/host/linux-x86/lib/libartd.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+473) native: #02 pc 0028c555 /out/host/linux-x86/lib/libartd.so (art::IndirectReferenceTable::Remove(unsigned int, void*)+421) native: #03 pc 003319c8 /out/host/linux-x86/lib/libartd.so (art::JNI::DeleteLocalRef(_JNIEnv*, _jobject*)+56) native: #04 pc 0012db14 /out/host/linux-x86/lib/libartd.so (art::CheckJNI::DeleteRef(char const*, _JNIEnv*, _jobject*, art::IndirectRefKind)+292) native: #05 pc 00122176 /out/host/linux-x86/lib/libartd.so (art::CheckJNI::DeleteLocalRef(_JNIEnv*, _jobject*)+54) native: #06 pc 00005724 /out/host/linux-x86/lib/libarttest.so (Java_Main_removeLocalObject+36) native: #07 pc 00004d6e /tmp/test-32506/dalvik-cache/x86/tmp@mathieuc@test-32506@004-JniTest.jar@classes.dex (void Main.removeLocalObject(java.lang.Object)+130) at Main.removeLocalObject(Native method) at Main.testRemoveLocalObject(Main.java:118) at Main.main(Main.java:37) Bug: 20683465 Change-Id: I56b99c77ae7020cabf1aaeb1d5317b1d5ba940e5
* Move mirror::ArtMethod to nativeMathieu Chartier2015-06-028-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Merge "ART: Fix wrong hard-failure handling in verifier" into mnc-devAndreas Gampe2015-06-013-0/+19
|\
| * ART: Fix wrong hard-failure handling in verifierAndreas Gampe2015-05-273-0/+19
| | | | | | | | | | | | | | | | | | Correctly return null for the method when a hard failure is encountered. Also improve logging for order failures. Add a regression test. Bug: 20224106 Change-Id: I6e08202617147378b204af169308b67fc69f92c6
* | Fix test 115-native-bridge for Mips.Douglas Leung2015-05-311-0/+2
| | | | | | | | | | | | (cherry picked from commit d0af5479d61013362e43ae15cb69c9f8da915e08) Change-Id: I3eee8df39e774d233f11c43a5578f407bfdebca1
* | ART: Add support for special handlers in sigchainlibAndreas Gampe2015-05-313-4/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for a special managed handler in sigchainlib that will be called as the first user handler. Use this support for native bridge v2. Extend test 115-native-bridge to test the functionality. Bug: 20217701 (cherry picked from commit 03c2cc89428914adf52229d6a3867eef6127911a) Change-Id: I78cc01fbdabe169154ff6b94c9f3ddb95b5c7448
* | ART: Use v2 version of NativeBridge structAndreas Gampe2015-05-311-1/+3
| | | | | | | | | | | | | | | | | | | | Update the struct to the new version, but without implementation. Bug: 20217701 (cherry picked from commit 540cc3d49c858e670591d8c00fcd87576cdbede6) Change-Id: Ic23a60b949f119c7d8b0e7cb27a61e6c16532a23
* | Add JNI String.<init> test for global and weak global refs.Jeff Hao2015-05-281-0/+16
|/ | | | | | | Test for change: https://googleplex-android-review.git.corp.google.com/#/c/698642/ Change-Id: I3e1182d42f9e24448d8616000de58ebfe1e50fb8
* Merge "Revert "DO NOT MERGE ART: Turn off duplicate-classes checking"" into ↵Andreas Gampe2015-05-211-5/+0
|\ | | | | | | mnc-dev
| * Revert "DO NOT MERGE ART: Turn off duplicate-classes checking"Andreas Gampe2015-05-211-5/+0
| | | | | | | | | | | | | | This reverts commit aafcfca5fe545365ef377fff2897b8a908f03e71. Bug: 21333911 Change-Id: Ibbc6b1be8bebc1d0ab9c5955b34eb89f40577baa
* | Merge "DO NOT MERGE ART: Turn off duplicate-classes checking" into mnc-devAndreas Gampe2015-05-211-0/+5
|\|
| * DO NOT MERGE ART: Turn off duplicate-classes checkingAndreas Gampe2015-05-201-0/+5
| | | | | | | | | | Bug: 21333911 Change-Id: I9832526a6d2996aadb459e3ec0930cbaf151478a
* | Merge "Intercept JNI invocation of String.<init> methods." into mnc-devJeff Hao2015-05-212-13/+86
|\ \
| * | Intercept JNI invocation of String.<init> methods.Jeff Hao2015-05-202-13/+86
| |/ | | | | | | | | | | | | | | | | | | | | libmono uses JNI AllocObject and CallNonvirtualVoidMethod to create and initialize a string instead of using the recommended NewObject. This change adds an intercept to change the String.<init> call to a StringFactory call instead. Then, it uses the object id of the original string object referrer and maps it to the result of the StringFactory. Bug: 21288130 Change-Id: Ib4db402c178bc37188d5c5faf30b6e4fdc747b17
* / ART: Fix RegisterNative orderAndreas Gampe2015-05-209-1/+184
|/ | | | | | | | | | | | | | | | | First check for both direct and virtual methods in the current class, then move to the parent. Optimize registration by checking first whether the current method under test is native. This slows down registering implementations in parent classes. Add a CheckJNI warning for this. Add a run-test to check the behavior. Fix host comparison testing. Bug: 19569721 (cherry picked from commit 3f1dc56914177993b1b018bf21ce7d39d7feecda) Change-Id: I61e77117d96310632aad123d7f1279d0f834dc99
* Test and fix bug checking status of secondary multidex files.Richard Uhler2015-05-185-0/+55
| | | | | | | | | We were accidentally returning 'false' instead of 'true' to indicate a native multidex file with an up-to-date primary dex file checksum but out-of-date secondary dex file checksum is out of date. Bug: 21022815 Change-Id: I43d360ca9251d0df38ad7f8289f6ef339c0a3280
* Also print class for NoSuchFieldExceptionMathieu Chartier2015-05-131-1/+15
| | | | | | | | | | | Example message: Caused by: java.lang.NoSuchFieldException: No field value in class Ljava/lang/String; Added test. Bug: 20881251 Change-Id: I4043cbf26c3077952b6c151da0d0edd980da26b1
* ART: Rediscover loops after deleting blocks in DCEDavid Brazdil2015-05-134-0/+304
| | | | | | | | | The way DCE currently updates loop information does not cover all cases. This patch removes the logic, resets loop information of live blocks to pre-SSA state and reanalyzes the affected loops. Change-Id: I0b996a70235b95a8db0de9a23a03f71db57a21b8 (cherry picked from commit a4b8c21dae70ae34aee13628632c39a675c06022)
* ART: arm indexOf intrinsics for the optimizing compilerAndreas Gampe2015-05-121-0/+3
| | | | | | | | | | | Add intrinsics implementations for indexOf in the optimizing compiler. These are mostly ported from Quick. Bug: 20889065 (cherry picked from commit ba6fdbcb764d5a8972f5ff2d7147e4d78226b347) Change-Id: I18ee849d41187a381f99529669e6f97040aaacf6
* Add test for String init called from unresolvable class.Jeff Hao2015-05-123-0/+13
| | | | | Bug: 20971268 Change-Id: I0cb027f5e29667e9d522eb01a6b966cd69abb104
* Merge "ART: x86 indexOf intrinsics for the optimizing compiler"Andreas Gampe2015-05-111-0/+71
|\
| * ART: x86 indexOf intrinsics for the optimizing compilerAndreas Gampe2015-05-111-0/+71
| | | | | | | | | | | | | | | | Add intrinsics implementations for indexOf in the optimizing compiler. These are mostly ported from Quick. Add instruction support to assemblers where necessary. Change-Id: Ife90ed0245532a5c436a26fe84715dc357f353c8
* | Merge "Add a flag to StackVisitor for inlining."Nicolas Geoffray2015-05-115-5/+10
|\ \
| * | Add a flag to StackVisitor for inlining.Nicolas Geoffray2015-05-115-5/+10
| |/ | | | | | | | | | | | | | | | | The flag tells whether the stack walk needs to include inlined Java frames. This does not do anything just yet, as we're not inlining anyways. Change-Id: I716e25094fe56fa335ca1f9a398c1bcdba478e73