summaryrefslogtreecommitdiff
path: root/compiler/optimizing/dex_cache_array_fixups_arm.cc
Commit message (Collapse)AuthorAgeFilesLines
* Use ArtMethod* .bss entries for HInvokeStaticOrDirect.Vladimir Marko2017-06-071-116/+0
| | | | | | | | | | Test: m test-art-host-gtest Test: testrunner.py --host Test: testrunner.py --target Test: Nexus 6P boots. Test: Build aosp_mips64-userdebug. Bug: 30627598 Change-Id: I0e54fdd2e91e983d475b7a04d40815ba89ae3d4f
* Revert "Revert "ARM: VIXL32: Use VIXL backend by default.""Nicolas Geoffray2017-03-161-8/+8
| | | | | | | | bug:35977033 This reverts commit 25275bef429dc6a48b79411e0d0b32207294523b. Change-Id: I440bf8415e2bf550607595499701fb3e7c33b37e
* Revert "ARM: VIXL32: Use VIXL backend by default."Nicolas Geoffray2017-03-141-8/+8
| | | | | | | | | | Revert while investigating. bug:35977033 This reverts commit e6316892821287b1d1906b9962eae129fbdc37be. Change-Id: I51e24a6e539072a6d0d470dfe41855a4847f3e96
* ARM: VIXL32: Use VIXL backend by default.Scott Wakeling2017-02-211-8/+8
| | | | | | | | export ART_USE_OLD_ARM_BACKEND=true to use the previous backend. Test: mma test-art-host && mma test-art-target Change-Id: I4024a4ea15fa8ce1269c0837f6ea001b6c809df5
* Allow multiple HArmDexCacheArrayBase.Nicolas Geoffray2017-01-231-20/+22
| | | | | | | | So that even graphs with irreducible loops can use it and avoid loading methods through KDexCacheViaMethod. Test: test-art-target Change-Id: I913eece1c134ebe9ea989064e477f694b8895d8f
* Merge "Put inlined ArtMethod pointer in stack maps."Nicolas Geoffray2017-01-171-2/+3
|\
| * Put inlined ArtMethod pointer in stack maps.Nicolas Geoffray2017-01-161-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Currently done for JIT. Can be extended for AOT and inlined boot image methods. Also refactor the lookup of a inlined method at runtime to not rely on the dex cache, but look at the class loader tables. bug: 30933338 test: test-art-host, test-art-target Change-Id: I58bd4d763b82ab8ca3023742835ac388671d1794
* | Remove HLoadClass::LoadKind::kDexCachePcRelative.Vladimir Marko2017-01-161-15/+0
|/ | | | | | | Test: m test-art-host Test: m test-art-target-run-test-552-checker-sharpening Bug: 30627598 Change-Id: Ic809b0f3a8ed0bd4dc7ab67aa64866f9cdff9bdb
* ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.Artem Serov2016-12-051-3/+15
| | | | | | | | | | | Implemented dispatch optimizations for InvokeStaticOrDirect, LoadClass, LoadString (excluding cases that use Literals). Performed a cleanup of VIXL backend. Test: export ART_USE_VIXL_ARM_BACKEND=true && \ mma test-art-host dist && mma test-art-target dist Change-Id: Ib37a6b7e7657196b13caec999d190be747857c1d
* Revert "Revert "Store resolved Strings for AOT code in .bss.""Vladimir Marko2016-10-041-15/+0
| | | | | | | | | | | | | | | | Fixed oat_test to keep dex files alive. Fixed mips build. Rewritten the .bss GC root visiting and added write barrier to the artResolveStringFromCode(). Test: build aosp_mips-eng Test: m ART_DEFAULT_GC_TYPE=SS test-art-target-host-gtest-oat_test Test: Run ART test suite on host and Nexus 9. Bug: 20323084 Bug: 30627598 This reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0. Change-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b
* Revert "Store resolved Strings for AOT code in .bss."Vladimir Marko2016-09-301-0/+15
| | | | | | | | | | | | | | There are some issues with oat_test64 on host and aosp_mips-eng. Also reverts "compiler_driver: Fix build." Bug: 20323084 Bug: 30627598 This reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41. This reverts commit 04a44135ace10123f059373691594ae0f270a8a4. Change-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4
* Store resolved Strings for AOT code in .bss.Vladimir Marko2016-09-291-15/+0
| | | | | | | | | | | And do some related refactorings. Bug: 20323084 Bug: 30627598 Test: Run ART test suite including gcstress on host and Nexus 9. Test: Run ART test suite including gcstress with baker CC on host and Nexus 9. Test: Build aosp_mips64-eng. Change-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e
* Clean-up sharpening and compiler driver.Nicolas Geoffray2016-09-231-5/+3
| | | | | | | | | | | | | Remove dependency on compiler driver for sharpening and dex2dex (the methods called on the compiler driver were doing unnecessary work), and remove the now unused methods in compiler driver. Also remove test that is now invalid, as sharpening always succeeds. test: m test-art-host m test-art-target Change-Id: I54e91c6839bd5b0b86182f2f43ba5d2c112ef908
* ARM/MIPS: Avoid dead dex cache arrays base for intrinsics.Vladimir Marko2016-08-261-3/+9
| | | | | Test: Run ART test suite on host and Nexus 6. Change-Id: Ie2ad70f1e3f125eae5dad53a6384d405e0311505
* Improve HLoadClass code generation.Vladimir Marko2016-06-211-1/+16
| | | | | | | | | | | | | | | | | | | | | | | For classes in the boot image, use either direct pointers or PC-relative addresses. For other classes, use PC-relative access to the dex cache arrays for AOT and direct address of the type's dex cache slot for JIT. For aosp_flounder-userdebug: - 32-bit boot.oat: -252KiB (-0.3%) - 64-bit boot.oat: -412KiB (-0.4%) - 32-bit dalvik cache total: -392KiB (-0.4%) - 64-bit dalvik-cache total: -2312KiB (-1.0%) (contains more files than the 32-bit dalvik cache) For aosp_flounder-userdebug forced to compile PIC: - 32-bit boot.oat: -124KiB (-0.2%) - 64-bit boot.oat: -420KiB (-0.5%) - 32-bit dalvik cache total: -136KiB (-0.1%) - 64-bit dalvik-cache total: -1136KiB (-0.5%) (contains more files than the 32-bit dalvik cache) Bug: 27950288 Change-Id: I4da991a4b7e53c63c92558b97923d18092acf139
* Optimizing: Improve const-string code generation.Vladimir Marko2016-03-291-0/+15
| | | | | | | | | | | | | | | | | | | | | | | For strings in the boot image, use either direct pointers or pc-relative addresses. For other strings, use PC-relative access to the dex cache arrays for AOT and direct address of the string's dex cache slot for JIT. For aosp_flounder-userdebug: - 32-bit boot.oat: -692KiB (-0.9%) - 64-bit boot.oat: -948KiB (-1.1%) - 32-bit dalvik cache total: -900KiB (-0.9%) - 64-bit dalvik cache total: -3672KiB (-1.5%) (contains more files than the 32-bit dalvik cache) For aosp_flounder-userdebug forced to compile PIC: - 32-bit boot.oat: -380KiB (-0.5%) - 64-bit boot.oat: -928KiB (-1.0%) - 32-bit dalvik cache total: -468KiB (-0.4%) - 64-bit dalvik cache total: -1928KiB (-0.8%) (contains more files than the 32-bit dalvik cache) Bug: 26884697 Change-Id: Iec7266ce67e6fedc107be78fab2e742a8dab2696
* Implement irreducible loop support in optimizing.Nicolas Geoffray2016-01-141-0/+5
| | | | | | | | | | | | | | So we don't fallback to the interpreter in the presence of irreducible loops. Implications: - A loop pre-header does not necessarily dominate a loop header. - Non-constant redundant phis will be kept in loop headers, to satisfy our linear scan register allocation algorithm. - while-graph optimizations, such as gvn, licm, lse, and dce need to know when they are dealing with irreducible loops. Change-Id: I2cea8934ce0b40162d215353497c7f77d6c9137e
* Move PC-relative addressing bases to a better position.Vladimir Marko2015-12-011-8/+18
| | | | | | | | | | | Move the platform-specific HX86ComputeBaseMethodAddress and HArmDexCacheArraysBase to the latest dominator of their uses outside any loop. This brings the base closer to the first use (previously, it was in the entry block) and relieves some pressure on the register allocator while avoiding recalculation of the base in a loop. Change-Id: I231aa81eb5b4de9af2d0167054d06b65eb18a636
* Optimizing/ARM: Implement kDexCachePcRelative dispatch.Vladimir Marko2015-12-011-0/+82
Change-Id: I0fe2da50a30a3f62bec8ea01688dd1fec84b1831