33bff25bcd7a02d35c54f63740eadb1a4833fc92 |
|
01-Nov-2017 |
Vladimir Marko <vmarko@google.com> |
ART: Make InstructionSet an enum class and add kLast. Adding InstructionSet::kLast shall make it easier to encode the InstructionSet in fewer bits using BitField<>. However, introducing `kLast` into the `art` namespace is not a good idea, so we change the InstructionSet to an enum class. This also uncovered a case of InstructionSet::kNone being erroneously used instead of vixl32::Condition::None(), so it's good to remove `kNone` from the `art` namespace. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6
|
69d310e0317e2fce97bf8c9c133c5c2c0332e61d |
|
09-Oct-2017 |
Vladimir Marko <vmarko@google.com> |
Use ScopedArenaAllocator for building HGraph. Memory needed to compile the two most expensive methods for aosp_angler-userdebug boot image: BatteryStats.dumpCheckinLocked() : 21.1MiB -> 20.2MiB BatteryStats.dumpLocked(): 42.0MiB -> 40.3MiB This is because all the memory previously used by the graph builder is reused by later passes. And finish the "arena"->"allocator" renaming; make renamed allocator pointers that are members of classes const when appropriate (and make a few more members around them const). Test: m test-art-host-gtest Test: testrunner.py --host Bug: 64312607 Change-Id: Ia50aafc80c05941ae5b96984ba4f31ed4c78255e
|
0d127e10de0b06ec22d8e855d1d62773c4ede101 |
|
05-Jul-2017 |
Roland Levillain <rpl@google.com> |
Do not refresh the Marking Register in CriticalNative methods. CriticalNative methods shall not be suspended and hence do not require MR to be refreshed in compiled JNI code. This change is for ARM and ARM64 only. Impact on Critical Native benchmarks times (median of 10 runs, lower is better): * angler-userdebug - ARMv7 ** All cores NativeDowncallStaticCritical -2.78% NativeDowncallStaticCritical6 -1.79% ** Little cores only NativeDowncallStaticCritical -1.66% NativeDowncallStaticCritical6 -1.27% ** Big cores only NativeDowncallStaticCritical -2.66% NativeDowncallStaticCritical6 -1.70% * angler-userdebug - ARMv8 ** All cores NativeDowncallStaticCritical -3.52% NativeDowncallStaticCritical6 -1.79% ** Little cores only NativeDowncallStaticCritical -1.63% NativeDowncallStaticCritical6 -1.27% ** Big cores only NativeDowncallStaticCritical -3.87% NativeDowncallStaticCritical6 -1.75% Test: m test-art-target Test: m test-art-target with tree built with ART_USE_READ_BARRIER=false Test: m test-art-host-gtest Test: ARM64 device boot test Test: ARM device boot test Bug: b/37707231 Change-Id: I95d61b9ecde0afffdd5fd44763b19caa06025ec8
|
217488a9ddf351033c1688198c492b9c40c36d8a |
|
18-Sep-2017 |
Andreas Gampe <agampe@google.com> |
ART: Move read barrier config out of globals Reduce the global dependencies by refactoring where the read barrier constants are defined. Rename read_barier_c.h to read_barier_config.h and ifdef the C++ parts to have a common header for both C/asm and C++. Put heap poisoning configuration into its own minimal header. Fix up transitive includes. Test: m Change-Id: I159669ec61e3d1c4c7ddcd79e63b023a0519717a
|
6d729a789d3d7771e13d9445ee0be1d9d48a81b5 |
|
30-Jun-2017 |
Roland Levillain <rpl@google.com> |
Introduce a Marking Register in ARM code generation. When generating code for ARM, maintain the status of Thread::Current()->GetIsGcMarking() in register R8, dubbed MR (Marking Register), and check the value of that register (instead of loading and checking a read barrier marking entrypoint) in read barriers. Test: m test-art-target Test: m test-art-target with tree built with ART_USE_READ_BARRIER=false Test: m test-art-host-gtest Test: ARM device boot test Bug: 37707231 Change-Id: I30b44254460d0bbb9f1b2adc65eca52ca3de3f53
|
af24def8967027f10ce8d44cb209c23032a2a1b4 |
|
12-Jul-2017 |
Roland Levillain <rpl@google.com> |
Fix ART ARM64 CFI gtests with GCs other than CC with Baker read barriers. Since the introduction of a Marking Register in the ARM64 back end, gtests jni_cfi_test and optimizing_cfi_test produce different outputs for the Concurrent Copying (CC) collector with Baker read barriers on the one hand, and for other GCs on the other hand. Test: m test-art-host-gtest with tree built with ART_USE_READ_BARRIER=false Bug: 37707231 Change-Id: I63de8873f52df593eb664970f2be20f1089804a9
|
367f3dd32454858b8b25d87feb8f6599d3b4c9dd |
|
02-Sep-2016 |
Igor Murashkin <iam@google.com> |
jni: Add @CriticalNative optimization to speed up JNI transitions Change-Id: I963059ac3a72dd8e6a867596c356d7062deb6da7
|
a75b01a549f0c86669dd24e53c9e3e74f0bf5b40 |
|
18-Aug-2016 |
Colin Cross <ccross@android.com> |
Fix building tests with partial arch codegen support Add conditionals around more code that is only used for codegen for specific architectures, and move a few more files into the architecture-specific codegen lists. Tests: ART_HOST_CODEGEN_ARCHS="x86_64 mips" m -j ART_TARGET_CODEGEN_ARCHS=svelte test-art-host Bug: 30928847 Change-Id: I0444d15e1cafe4c9b13ff78718c3b13b544270e7
|
3b165bc53c2f063e3a9c644d0edc7bc30c634884 |
|
02-Aug-2016 |
Andreas Gampe <agampe@google.com> |
ART: Extract macro assembler Extract macro assembler functionality used by the JNI compiler from the assembler interface. Templatize the new interface so that type safety ensures correct usage. Change-Id: Idb9f56e5b87e43ee6a7378853d8a9f01abe156b2 Test: m test-art-host
|
3224838dfe9c95330ad963286f2c47e9546d3b5c |
|
19-May-2016 |
Vladimir Marko <vmarko@google.com> |
Clean up JNI calling convention callee saves. Precalculate callee saves at compile time and return them as ArrayRef<> instead of keeping then in a std::vector<>. Change-Id: I4fd7d2bbf6138dc31b0fe8554eac35b0777ec9ef
|
bb661c0f0cb72d4bbfc2e251f6ded6949a713292 |
|
04-Apr-2016 |
Bilyan Borisov <bilyan.borisov@linaro.org> |
Refactor use of __ANDROID__ macro We use the __ANDROID__ macro, which is provided by the toolchain, in numerous places. This patch refactors the usage of this by defining a new macro, ART_TARGET_ANDROID, that is being passed during build to ART_TARGET_CFLAGS in Android.common_build.mk on the same line as ART_TARGET. The codebase currently assumes that the existence of the __ANDROID__ macro implies that we are compiling art for an android target device. This is because, currently, target builds are compiled with target toolchains that provide the macro, while host toolchains do not. With this change this assumption is still preserved. However, in a future patch we will add the ability to compile art for a linux target, and in that case the ART_TARGET_ANDROID macro won't be passed anymore. Change-Id: I1f3a811aa735c87087d812da27fc6b08f01bad51
|
d1ee80948144526b985afb44a0574248cf7da58a |
|
13-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Move Assemblers to the Arena. And clean up some APIs to return std::unique_ptr<> instead of raw pointers that don't communicate ownership. (cherry picked from commit 93205e395f777c1dd81d3f164cf9a4aec4bde45f) Bug: 27505766 Change-Id: I3017302307a0253d661240750298802fb0d9585e
|
93205e395f777c1dd81d3f164cf9a4aec4bde45f |
|
13-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Move Assemblers to the Arena. And clean up some APIs to return std::unique_ptr<> instead of raw pointers that don't communicate ownership. Change-Id: I3017302307a0253d661240750298802fb0d9585e
|
10ef6941648aad04d54527d4a7a6070bf7065e88 |
|
22-Oct-2015 |
Vladimir Marko <vmarko@google.com> |
Delay emitting CFI PC adjustments until after Thumb2/Mips fixup. On Mips also take into account out-of-order CFI data emitted from EmitBranches(). Change-Id: I03b0b0b4c2b1ea31a02699ef5fa1c55aa42c23c3
|
c60e1b755c5632dfeb04c333489ede52ee5c945f |
|
30-Jul-2015 |
Andreas Gampe <agampe@google.com> |
ART: Use __ANDROID__ instead of HAVE_ANDROID_OS Use the proper define. Change-Id: I71e291ac25f5d5f0187ac9b6ef2d6872f19e6085
|
cf93a5cd9c978f59113d42f9f642fab5e2cc8877 |
|
16-Jun-2015 |
Vladimir Marko <vmarko@google.com> |
Revert "Revert "ART: Implement literal pool for arm, fix branch fixup."" This reverts commit fbeb4aede0ddc5b1e6a5a3a40cc6266fe8518c98. Adjust block label positions. Bad catch block labels were the reason for the revert. Change-Id: Ia6950d639d46b9da6b07f3ade63ab46d03d63310
|
fbeb4aede0ddc5b1e6a5a3a40cc6266fe8518c98 |
|
16-Jun-2015 |
Vladimir Marko <vmarko@google.com> |
Revert "ART: Implement literal pool for arm, fix branch fixup." This reverts commit f38caa68cce551fb153dff37d01db518e58ed00f. Change-Id: Id88b82cc949d288cfcdb3c401b96f884b777fc40 Reason: broke the tests.
|
f38caa68cce551fb153dff37d01db518e58ed00f |
|
29-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Implement literal pool for arm, fix branch fixup. Change-Id: Iecc91418bb4ee1c957f42fefb737d0ee2ba960e7
|
dd97393aca1a3ff2abec4dc4f78d7724300971bc |
|
07-Apr-2015 |
David Srbecky <dsrbecky@google.com> |
Implement CFI for JNI. CFI is necessary for stack unwinding in gdb, lldb, and libunwind. Change-Id: I37eb7973f99a6975034cf0e699e138c3a9aba10f
|