summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Move stack map stream implementation to its own cc file."Calin Juravle2015-04-233-364/+410
|\
| * Move stack map stream implementation to its own cc file.Calin Juravle2015-04-233-364/+410
| | | | | | | | | | | | | | | | It's big enough now to separate the implementation from the header. It also enables faster compilation time for experiments. Change-Id: Ica0c72994d5e461c62c32628010f46f9e5c46b57
* | Merge "Revert "Revert "Quick: Rewrite type inference pass."""Vladimir Marko2015-04-2322-550/+4102
|\ \
| * | Revert "Revert "Quick: Rewrite type inference pass.""Vladimir Marko2015-04-2322-550/+4102
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the type of the ArtMethod* SSA register. Bug: 19419671 This reverts commit 1b717f63847de8762e7f7bdd6708fdfae9d24a67. Change-Id: Ie4da3c03a0e0334a39a24718f6dc31f9255cfb53
* | | Merge "Skip known broken tests for ARM back ends on ARM as second arch."Roland Levillain2015-04-231-0/+10
|\ \ \
| * | | Skip known broken tests for ARM back ends on ARM as second arch.Roland Levillain2015-04-231-0/+10
|/ / / | | | | | | | | | Change-Id: Idbe4c26d8ffcd91882fe61f62c959cc27d1f28b1
* | | Merge "Remove ActAsNullConstant"Calin Juravle2015-04-232-12/+3
|\ \ \ | | |/ | |/|
| * | Remove ActAsNullConstantCalin Juravle2015-04-232-12/+3
| | | | | | | | | | | | | | | | | | | | | | | | We now properly type null constants during ssa builder so this is not needed anymore. Bug: 20322006 Change-Id: Ic060a52d4fa2d4f00755dd6427f822d368392d7b
* | | Merge "Mul simplification should expect zero operand"Nicolas Geoffray2015-04-234-3/+41
|\ \ \ | |_|/ |/| |
| * | Mul simplification should expect zero operandSerguei Katkov2015-04-234-3/+41
|/ / | | | | | | | | | | | | | | | | It is possible that zero constant can appear due to simplification of other instructions, so we cannot expect zero handling from constant optimizations. Change-Id: I084126fd0c106ac2683c4f10a451960d9807f4f6 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
* | Merge "Revert "Quick: Rewrite type inference pass.""Andreas Gampe2015-04-2322-4095/+544
|\ \
| * | Revert "Quick: Rewrite type inference pass."Andreas Gampe2015-04-2222-4095/+544
| | | | | | | | | | | | | | | | | | | | | | | | Breaks arm64, as the method register is not correctly flagged as ref and thus 32bit. Bug: 19419671 This reverts commit e490b01c12d33f3bd5c247b55b47e507cc9c8fab.
* | | Merge "ART: Fix re-throwing failures of non-convention errors"Andreas Gampe2015-04-234-8/+84
|\ \ \ | |/ / |/| |
| * | ART: Fix re-throwing failures of non-convention errorsAndreas Gampe2015-04-224-8/+84
|/ / | | | | | | | | | | | | | | | | | | | | | | While it is convention that Throwable subclasses should have a constructor with a String argument, that is not rigorously enforced. So if a static initializer throws an error that omits that constructor, we must not provide a message when trying to throw again. Bug: 20495321 Bug: 20497840 Change-Id: Ia4334fa24223750f90a8f2732f1eb1e738575e8d
* | Merge "Do not mention x86 floating point numbers in CFI."Andreas Gampe2015-04-222-2/+7
|\ \
| * | Do not mention x86 floating point numbers in CFI.David Srbecky2015-04-222-2/+7
| |/ | | | | | | | | | | | | | | | | | | We have explicitly declared them as undefined, but libunwind does not seem to support them at all. Omit the initialization to make libunwind happy. Reasonable debugger should still default to undefined since they are not callee save registers. Bug: 20491296 Change-Id: Ibaa9595b977508e518bfe3f88b240e8959b1198f
* | Merge "Replace NULL with nullptr"Mathieu Chartier2015-04-22268-1658/+1848
|\ \
| * | Replace NULL with nullptrMathieu Chartier2015-04-22268-1658/+1848
|/ / | | | | | | | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* | Merge "Quick: Rewrite type inference pass."Vladimir Marko2015-04-2222-544/+4095
|\ \
| * | Quick: Rewrite type inference pass.Vladimir Marko2015-04-2222-544/+4095
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use method signatures, field types and types embedded in dex insns for type inference. Perform the type inference in two phases, first a simple pass that records all types implied by individual insns, and then an iterative pass to propagate those types further via phi, move, if-cc and aget/aput insns. Bug: 19419671 Change-Id: Id38579d48a44fc5eadd13780afb6d370093056f9
* | | Merge "Quick: Remove broken Mir2Lir::LocToRegClass()."Vladimir Marko2015-04-229-48/+31
|\ \ \ | |/ / | | / | |/ |/|
| * Quick: Remove broken Mir2Lir::LocToRegClass().Vladimir Marko2015-04-229-48/+31
| | | | | | | | | | | | | | | | | | | | | | | | Its use in intrinsics has been bogus. In all other instances it's been used under the assumption that the inferred type matches the return type of associated calls. However, if the type inference identifies a type mismatch, the assumption doesn't hold and there isn't necessarily a valid value that the function could reasonably return. Bug: 19918641 Change-Id: I050934e6f9eb00427d0b888ee29ae9eeb509bb3f
* | Merge "Simplify template parameters of Elf classes."David Srbecky2015-04-229-563/+330
|\ \
| * | Simplify template parameters of Elf classes.David Srbecky2015-04-229-563/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ELF specification defines several types which differ between 32-bit ELF and 64-bit ELF. We used to template all ELF-related methods on all of those types which was very verbose. This CL wraps all the types as typedefs in ElfTypes32 and ElfTypes64. One of those wrappers is then used as the template parameter. Change-Id: I65247c2c79d92a7c4799e988cf3e4a1b10eb4788
* | | Merge "Fix X86_64 assembler REX instructions"Nicolas Geoffray2015-04-222-4/+32
|\ \ \
| * | | Fix X86_64 assembler REX instructionsMark Mendell2015-04-222-4/+32
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of instructions don't pass the 'Address' to EmitRex64. This will cause the incorrect register number to be assembled if the register is >= 8. This may cause bad code to be generated in some cases. Change-Id: I2907ae8b7629ee95d542e3fab429318994a78938 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | Merge "Remove warning when we do too many simplifications"Calin Juravle2015-04-221-4/+0
|\ \ \
| * | | Remove warning when we do too many simplificationsCalin Juravle2015-04-221-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | This happens pretty often and pollutes the logs. Change-Id: I074783d3cf3519a5186d2dd81c821d97071302e7
* | | | Merge "ART: Update last_instruction when adding Phis"David Brazdil2015-04-223-37/+67
|\ \ \ \
| * | | | ART: Update last_instruction when adding PhisDavid Brazdil2015-04-223-37/+67
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HBasicBlock::InsertPhiAfter would not update the last_instruction pointer when adding at the end of the list. This could cause problems when iterating over phis backwards. Fortunately, we don't do that anywhere in the existing code. Change-Id: I4487265bf2cf3d3819623fafd7ce7c359bac190e
* | | | Merge "[optimizing] Use more X86_64 addressing modes"Nicolas Geoffray2015-04-226-88/+482
|\ \ \ \
| * | | | [optimizing] Use more X86_64 addressing modesMark Mendell2015-04-216-88/+482
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow constant and memory addresses to more X86_64 instructions. Add memory formats to X86_64 instructions to match. Fix a bug in cmpq(CpuRegister, const Address&). Allow mov <addr>,immediate (instruction 0xC7) to be a valid faulting instruction. Change-Id: I5b8a409444426633920cd08e09f687a7afc88a39 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
* | | | | Merge "[optimizing] Name the last DCE pass."Calin Juravle2015-04-224-5/+7
|\ \ \ \ \ | |_|/ / / |/| | / / | | |/ / | |/| |
| * | | [optimizing] Name the last DCE pass.Calin Juravle2015-04-224-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | This will allow Checker to differentiate between them. Change-Id: I972d452a64f1c19d370567b9ef3d620f9b835a9a
* | | | Merge "Run DCE again after all the other optimizations have run."Calin Juravle2015-04-227-10/+16
|\ \ \ \ | |/ / /
| * | | Run DCE again after all the other optimizations have run.Calin Juravle2015-04-227-10/+16
| | | | | | | | | | | | | | | | On docs this doubles the amount of instructions removed.
* | | | Merge "[optimizing] Fix a bug in moving the null check to the user."Calin Juravle2015-04-229-19/+81
|\ \ \ \ | |/ / /
| * | | [optimizing] Fix a bug in moving the null check to the user.Calin Juravle2015-04-229-19/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When taking the decision to move a null check to the user we did not verify if the next instruction checks the same object. Change-Id: I2f4533a4bb18aa4b0b6d5e419f37dcccd60354d2
* | | | Merge "Propertly quote arguments after latest adb/vogar changes."Nicolas Geoffray2015-04-221-1/+1
|\ \ \ \ | |_|_|/ |/| | |
| * | | Propertly quote arguments after latest adb/vogar changes.Nicolas Geoffray2015-04-221-1/+1
|/ / / | | | | | | | | | Change-Id: If3452b616df48ecec0d85ac34d8af9253c3ea925
* | | Merge "Fix tlsPtr_.long_jump_context == nullptr check failure."Mingyao Yang2015-04-221-1/+13
|\ \ \
| * | | Fix tlsPtr_.long_jump_context == nullptr check failure.Mingyao Yang2015-04-221-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a bogus assertion. We need to handle the case though to free the existing tlsPtr_.long_jump_context. Bug: 20449310 Change-Id: Ie1e49dd1fec9defab69f081d1f129aa8dc1dc6bf
* | | | Merge "Class.forName(..., ..., null) fixes - Add test for Class.forName(..., ↵Brian Carlstrom2015-04-223-15/+21
|\ \ \ \ | | | | | | | | | | | | | | | ..., null) - Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null)"
| * | | | Class.forName(..., ..., null) fixesBrian Carlstrom2015-04-213-15/+21
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | - Add test for Class.forName(..., ..., null) - Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null) Change-Id: I6bc470e20fa177e8a3debe55c90a84eef7ef518e
* | | | Merge "ART: Add compiled-methods"Andreas Gampe2015-04-2211-48/+222
|\ \ \ \ | |/ / / |/| | |
| * | | ART: Add compiled-methodsAndreas Gampe2015-04-2111-48/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge "Add AbstractMethod, Constructor, Method"Mathieu Chartier2015-04-2127-300/+912
|\ \ \ \
| * | | | Add AbstractMethod, Constructor, MethodMathieu Chartier2015-04-2127-300/+912
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves functionality to ART from libcore. Precursor to moving ArtMethods to native. Mostly performance improvements. N5 perf before (irrelevant results removed): Class_getConstructor 962.87 =========== Class_getDeclaredMethod 2394.37 ============================ Class_getMethod 2509.20 ============================== Class_newInstance 1999.81 ======================= Method_invokeI 1439.02 ================= Method_invokePreBoxedI 1415.82 ================ Method_invokeStaticI 1456.24 ================= Method_invokeStaticPreBoxedI 1427.32 ================= Method_invokeStaticV 814.47 ========= Method_invokeV 816.56 ========= After: benchmark ns linear runtime Class_getConstructor 1302.04 ================ Class_getDeclaredMethod 1459.01 ================== Class_getMethod 1560.40 =================== Class_newInstance 2029.94 ========================= Method_invokeI 1312.89 ================ Method_invokePreBoxedI 1255.01 =============== Method_invokeStaticI 1289.13 =============== Method_invokeStaticPreBoxedI 1196.52 ============== Method_invokeStaticV 790.82 ========= Method_invokeV 791.73 ========= Performance improvements are more than just fixing regressions introduced in: http://android-review.googlesource.com/#/c/146069/ Bug: 19264997 Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
* | | | Merge "ART: Extend run-test 068-classloader"Andreas Gampe2015-04-213-0/+104
|\ \ \ \
| * | | | ART: Extend run-test 068-classloaderAndreas Gampe2015-04-213-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add code that tries to provoke dex-cache collisions. Change-Id: I58c7905597a501f3731efe4c6e1e2f7772e3b312