- 22 Apr, 2015 27 commits
-
-
Mathieu Chartier authored
Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
-
Vladimir Marko authored
-
Vladimir Marko authored
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
-
Vladimir Marko authored
-
David Srbecky authored
-
Nicolas Geoffray authored
-
David Srbecky authored
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
-
Mark Mendell authored
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>
-
Calin Juravle authored
-
Calin Juravle authored
This happens pretty often and pollutes the logs. Change-Id: I074783d3cf3519a5186d2dd81c821d97071302e7
-
David Brazdil authored
-
David Brazdil authored
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
-
Nicolas Geoffray authored
-
Calin Juravle authored
-
Calin Juravle authored
This will allow Checker to differentiate between them. Change-Id: I972d452a64f1c19d370567b9ef3d620f9b835a9a
-
Vladimir Marko authored
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
-
Calin Juravle authored
-
Calin Juravle authored
On docs this doubles the amount of instructions removed.
-
Calin Juravle authored
-
Calin Juravle authored
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
-
Nicolas Geoffray authored
-
Nicolas Geoffray authored
Change-Id: If3452b616df48ecec0d85ac34d8af9253c3ea925
-
Mingyao Yang authored
-
Mingyao Yang authored
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
-
Brian Carlstrom authored
Merge "Class.forName(..., ..., null) fixes - Add test for Class.forName(..., ..., null) - Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null)"
-
Brian Carlstrom authored
- Add test for Class.forName(..., ..., null) - Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null) Change-Id: I6bc470e20fa177e8a3debe55c90a84eef7ef518e
-
Andreas Gampe authored
-
- 21 Apr, 2015 13 commits
-
-
Mathieu Chartier authored
-
Mathieu Chartier authored
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
-
Andreas Gampe authored
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
-
Andreas Gampe authored
-
Andreas Gampe authored
Add code that tries to provoke dex-cache collisions. Change-Id: I58c7905597a501f3731efe4c6e1e2f7772e3b312
-
Mathieu Chartier authored
-
David Srbecky authored
-
Mark Mendell authored
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>
-
David Srbecky authored
Fixes issue 20125400 - ART: Need .eh_frame_hdr and PT_GNU_EH_FRAME for libunwind. .eh_frame_hdr serves two purposes. Firstly, it can optionally contain binary search table for fast eh_frame lookup. This is important for C++ exception handling, but we do not need it so we omit it. Secondly, it contains a relative .eh_frame pointer which makes it easier for run-time code to locate the .eh_frame section. libunwind seems to rely on this relative pointer. Bug: 20125400 Change-Id: I7c1e3f68d914f70781404c508395831a3296a7da
-
David Srbecky authored
-
David Srbecky authored
The repo manifest on the build server includes prebuilts only for Arm and host. Change-Id: Ic9fc762f3e9a4421cc2293b6e95caf196551cbad
-
Nicolas Geoffray authored
-
Nicolas Geoffray authored
This reverts commit 69dcf642. Change-Id: I1e01c17a3aa8b001ad5659260802e5f5073bf14e
-