summaryrefslogtreecommitdiffstats
path: root/compiler/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Remove intialized static storage from dex cache.Ian Rogers2014-01-082-46/+22
| | | | | | | | | The initialized static storage array is used by compiled code to determine if for a sget/sput class initialization is necessary. The compiled code typically doesn't require this test as the class is pre-initialized or the class being accessed is the same as the current method. Change-Id: Icbc45e692b3d0ac61e559e69edb6c9b29439e571
* Move compiler code out of method verifier.Vladimir Marko2013-12-171-1/+3
| | | | | | | | | | | | We want to detect small methods for inlining at the end of the method verification. Instead of adding more compiler code to the runtime, we create a callback from the runtime into the compiler, so that we can keep the code there. Additionally, we move the compiler-related code that was already in the method verifier to the compiler since it doesn't really belong to the runtime in the first place. Change-Id: I708ca13227c809e07917ff3879a89722017e83a9
* Update ART for LLVM merge up to r187914.Stephen Hines2013-11-251-3/+1
| | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: Ic7b311b635483a44265c89d47f37f4202a5b18f7
* Revert "Update ART for LLVM merge up to r187914."Brian Carlstrom2013-11-071-1/+3
| | | | This reverts commit f7ee11632e3dfda29d553d8962be9747d5ce6dfd.
* Update ART for LLVM merge up to r187914.Stephen Hines2013-11-061-3/+1
| | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: Idc2e3fb73d798a62b6ebf6f55aff5c715b2c62f7
* Inflate contended lock word by suspending owner.Ian Rogers2013-10-027-232/+3
| | | | | | | | | | | | | | | | | | | | Bug 6961405. Don't inflate monitors for Notify and NotifyAll. Tidy lock word, handle recursive lock case alongside unlocked case and move assembly out of line (except for ARM quick). Also handle null in out-of-line assembly as the test is quick and the enter/exit code is already a safepoint. To gain ownership of a monitor on behalf of another thread, monitor contenders must not hold the monitor_lock_, so they wait on a condition variable. Reduce size of per mutex contention log. Be consistent in calling thin lock thread ids just thread ids. Fix potential thread death races caused by the use of FindThreadByThreadId, make it invariant that returned threads are either self or suspended now. Code size reduction on ARM boot.oat 0.2%. Old nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%, nexus 4 speedup 2.09% on DeltaBlue. Change-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a
* Use class def index from java.lang.Class.Ian Rogers2013-09-191-2/+2
| | | | | | | | | | | | Bug: 10244719 Depends on: https://googleplex-android-review.git.corp.google.com/362363 This removes the computation of the dex file index, when necessary this is computed by searching the dex file. Its only necessary in dalvik.system.DexFile.defineClassNative and DexFile::FindInClassPath, the latter not showing up significantly in profiling with this change. Change-Id: I20c73a3b17d86286428ab0fd21bc13f51f36c85c
* Move disassembler out of runtime.Ian Rogers2013-09-091-0/+1
| | | | | Bug: 9877500. Change-Id: Ica6d9f5ecfd20c86e5230a2213827bd78cd29a29
* Refactor CompilerDriver::Compute..FieldInfoIan Rogers2013-09-061-6/+6
| | | | | | | Don't use non-const reference arguments. Move ins before outs. Change-Id: I7b251156388d8f07513b3da62ebfd29e5fd9ff76
* Refactor CompilerDriver::ComputeInvokeInfoIan Rogers2013-09-061-4/+4
| | | | | | | Don't use non-const reference arguments. Move ins before outs. Change-Id: I4a7b8099abe91ea60f93a56077f4989303fa4876
* Merge "Disable devirtualization detection in DEX-to-DEX compiler." into ↵Sebastien Hertz2013-09-061-1/+1
|\ | | | | | | dalvik-dev
| * Disable devirtualization detection in DEX-to-DEX compiler.Sebastien Hertz2013-09-061-1/+1
| | | | | | | | | | | | | | | | | | This CL allows the DEX-to-DEX compiler to disable devirtualization detection. This allows to quicken invoke-virtual/range instructions that used to be eligible for devirtualization. Bug: 10632943 Change-Id: I6c9f4d3249cf42b47f004be5825b3186fa83501e
* | Shard dedupe set locks.Ian Rogers2013-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | We're seeing contention during compilation on the dedupe locks, sharding 4 ways on an occam brings down contention by > 5x. Improve dedupe hash function to have a FNV hash function at its heart. Improve naming of dedupe locks. Tidy portable JNI compiler paramters to be pointers, given that's their primary use. Change-Id: I95d905f2ca5fee4e83a0034926a5f6501b4aeb79
* | am 22955837: Merge "Multi threaded hashed deduplication during compilation." ↵Mathieu Chartier2013-09-031-3/+2
|\ \ | | | | | | | | | | | | | | | | | | into klp-dev * commit '22955837e20f126845ff0e516dfa6f74ec81d240': Multi threaded hashed deduplication during compilation.
| * | Multi threaded hashed deduplication during compilation.Mathieu Chartier2013-09-031-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved deduplication to be in the compiler driver instead of oat writer. This enables deduplication to be performed on multiple threads. Also added a hash function to avoid excessive comparison of byte arrays. Improvements: Before (alloats host): real 1m6.967s user 4m22.940s sys 1m22.610s Thinkfree.apk (target mako): 0m23.74s real 0m50.95s user 0m9.50s system 0m24.62s real 0m50.61s user 0m10.07s system 0m24.22s real 0m51.44s user 0m10.09s system 0m23.70s real 0m51.05s user 0m9.97s system 0m23.50s real 0m50.74s user 0m10.63s system After (alloats host): real 1m5.705s user 4m44.030s sys 1m29.990s Thinkfree.apk (target mako): 0m23.32s real 0m51.38s user 0m10.00s system 0m23.49s real 0m51.20s user 0m9.80s system 0m23.18s real 0m50.80s user 0m9.77s system 0m23.52s real 0m51.22s user 0m10.02s system 0m23.50s real 0m51.55s user 0m9.46s system Bug: 10552630 Change-Id: Ia6d06a747b86b0bfc4473b3cd68f8ce1a1c7eb22
* | | Revert "Update ART for LLVM merge up to r187914."Brian Carlstrom2013-08-291-1/+3
|/ / | | | | | | This reverts commit 70814f7746793934a29e010211ef6e652ad75cd2.
* | Update ART for LLVM merge up to r187914.Stephen Hines2013-08-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: I49e691b6771f7e3f77fe583841ea51b06ee7cfdf
* | Revert "Update ART for LLVM merge up to r187914."Ian Rogers2013-08-291-1/+3
| | | | | | | | | | | | This reverts commit eaeab46304a139da495de941e853ce9acdace175. Change-Id: I854e09c9c988702de08a9ff642619761d1d57639 (cherry picked from commit 03feadd72f6205f0b88fe69aaa30c69d1b2e8c2d)
* | Update ART for LLVM merge up to r187914.Stephen Hines2013-08-281-3/+1
|/ | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: I5ee58031e423838cdc8968675192f9b63a7d867d
* Revert "Update ART for LLVM merge up to r187914."Brian Carlstrom2013-08-221-1/+3
| | | | This reverts commit b8a874ca3b13007f4bf688963483ffb3c76e0d7d.
* Update ART for LLVM merge up to r187914.Stephen Hines2013-08-221-3/+1
| | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: I7403dca575104de2ceb5fc0619611366a8058e5d
* Revert "Update ART for LLVM merge up to r187914."Brian Carlstrom2013-08-191-1/+3
| | | | This reverts commit 6a94caa048121858ee8e71f84caf7b9ae1f940df.
* Update ART for LLVM merge up to r187914.Stephen Hines2013-08-191-3/+1
| | | | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) (cherry picked from commit 6e6819f7b8b4820ae2b1003a516fe9aa60fa478e) Change-Id: I4fb59f291bb58c7ed8575f71a44f7c59f653a5ec
* am 3e78664f: am f8dc6489: am 7571e8b7: Add flock(2)ing on dex-cache files to ↵Brian Carlstrom2013-08-151-2/+2
|\ | | | | | | | | | | | | prevent races * commit '3e78664ffa63f3a01b0769a57409933a82648b4a': Add flock(2)ing on dex-cache files to prevent races
| * Add flock(2)ing on dex-cache files to prevent racesBrian Carlstrom2013-08-151-2/+2
| | | | | | | | | | Bug: 9071417 Change-Id: I1ee9ff281867f90fba7a8ed8bbf06b33ac29d511
* | Revert "Update ART for LLVM merge up to r187914."Brian Carlstrom2013-08-141-1/+3
|/ | | | This reverts commit 6e6819f7b8b4820ae2b1003a516fe9aa60fa478e.
* Update ART for LLVM merge up to r187914.Stephen Hines2013-08-131-3/+1
| | | | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). (cherry picked from commit 1961a2716cf02f597f06c27a0850daa2dc917586) Change-Id: Idc2e3fb73d798a62b6ebf6f55aff5c715b2c62f7
* Refactor java.lang.reflect implementationBrian Carlstrom2013-08-132-11/+11
| | | | | | | | | | | Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1. Move to ArtMethod/Field instead of AbstractMethod/Field and have java.lang.reflect APIs delegate to ArtMethod/ArtField. Bug: 10014286. Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
* C++11 support for ART.Mathieu Chartier2013-08-131-2/+2
| | | | | | | | | | We can now use auto, ranged based loops, etc.. This compiles, the phone boots, and the tests pass. Depends on: https://googleplex-android-review.googlesource.com/#/c/342487/ Change-Id: I8ba8ed47d2118e4711668c9c8f973a67beb261b2
* Revert "Update ART for LLVM merge up to r187914."Stephen Hines2013-08-131-1/+3
| | | | This reverts commit 1961a2716cf02f597f06c27a0850daa2dc917586.
* Update ART for LLVM merge up to r187914.Stephen Hines2013-08-091-3/+1
| | | | | | | | | | | Removed NoFramePointerElimNonLeaf because this is now only specified via a function attribute (and thus covered by existing cases). Switch to llvm::sys::fs::F_* enums. Remove unused DisableSimplifyLibCalls(). Change-Id: I792e3a31f5dc289459aeacac995e7c828b6063d3
* Move assembler out of runtime into compiler/utils.Ian Rogers2013-07-293-6/+84
| | | | | | | Other directory layout bits of clean up. There is still work to separate quick and portable in some files (e.g. argument visitor, proxy..). Change-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351
* Fix cpplint whitespace/comments issuesBrian Carlstrom2013-07-2622-139/+139
| | | | Change-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496
* Fixing cpplint readability/check issuesBrian Carlstrom2013-07-181-3/+3
| | | | Change-Id: Ia81db7238b4a13ff2e585aaac9d5e3e91df1e3e0
* Fixing cpplint readability/casting issuesBrian Carlstrom2013-07-181-1/+1
| | | | Change-Id: I6821da0e23737995a9b884a04e9b63fac640cd05
* Fixing cpplint whitespace/blank_line, whitespace/end_of_line, ↵Brian Carlstrom2013-07-181-1/+1
| | | | | | whitespace/labels, whitespace/semicolon issues Change-Id: Ide4f8ea608338b3fed528de7582cfeb2011997b6
* Fix cpplint readability/fn_size issuesBrian Carlstrom2013-07-181-1/+1
| | | | Change-Id: I1efdb07a948a2af49db1a9d21ccab16dacc03a54
* Fix cpplint build/namespaces issuesBrian Carlstrom2013-07-185-115/+191
| | | | Change-Id: I19c68703270c1482d6c6aad8cdf97d3d2924360a
* Fix cpplint whitespace/parens issuesBrian Carlstrom2013-07-181-1/+1
| | | | Change-Id: Ifc678d59a8bed24ffddde5a0e543620b17b0aba9
* Fix cpplint whitespace/blank_line issuesBrian Carlstrom2013-07-183-8/+0
| | | | Change-Id: Ice937e95e23dd622c17054551d4ae4cebd0ef8a2
* Fix cpplint whitespace/newline issuesBrian Carlstrom2013-07-171-11/+27
| | | | Change-Id: Ie2049d9f667339e41f36c4f5d09f0d10d8d2c762
* Fix cpplint runtime/explicit issuesBrian Carlstrom2013-07-171-1/+1
| | | | Change-Id: I352ba0b427f1ff9b22887693952b180eae0839ba
* Fix cpplint whitespace/braces issuesBrian Carlstrom2013-07-171-2/+1
| | | | Change-Id: Ide80939faf8e8690d8842dde8133902ac725ed1a
* Fix multiple inclusion guards to match new pathnamesBrian Carlstrom2013-07-1713-39/+39
| | | | Change-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43
* Add verification of boot.oat generated on deviceBrian Carlstrom2013-07-171-1/+0
| | | | Change-Id: I069586205a9a92fc7375ccf5cdde136bbbcfc800
* Create separate Android.mk for main build targetsBrian Carlstrom2013-07-1227-0/+9830
The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81