summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_arm.cc
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2016-11-16 10:17:46 -0800
committer Aart Bik <ajcbik@google.com> 2016-11-30 13:21:21 -0800
commit71bf7b43380eb445973f32a7f789d9670f8cc97d (patch)
tree76425f8578b247a845fe61724d71efc63059760f /compiler/optimizing/intrinsics_arm.cc
parent52f52361c2ea37941fbda71e3c653bb8096bf516 (diff)
Optimizations around escape analysis. With tests.
Details: (1) added new intrinsics (2) implemented optimizations more !can be null information more null check removals replace return-this uses with incoming parameter remove dead StringBuffer/Builder calls (with escape analysis) (3) Fixed exposed bug in CanBeMoved() Performance gain: This improves CafeineString by about 360% (removes null check from first loop, eliminates second loop completely) Test: test-art-host Change-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1
Diffstat (limited to 'compiler/optimizing/intrinsics_arm.cc')
-rw-r--r--compiler/optimizing/intrinsics_arm.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_arm.cc b/compiler/optimizing/intrinsics_arm.cc
index 8234b2467d..8f64faeac0 100644
--- a/compiler/optimizing/intrinsics_arm.cc
+++ b/compiler/optimizing/intrinsics_arm.cc
@@ -2613,6 +2613,12 @@ UNIMPLEMENTED_INTRINSIC(ARM, LongLowestOneBit)
UNIMPLEMENTED_INTRINSIC(ARM, StringStringIndexOf);
UNIMPLEMENTED_INTRINSIC(ARM, StringStringIndexOfAfter);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBufferAppend);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBufferLength);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBufferToString);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBuilderAppend);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBuilderLength);
+UNIMPLEMENTED_INTRINSIC(ARM, StringBuilderToString);
// 1.8.
UNIMPLEMENTED_INTRINSIC(ARM, UnsafeGetAndAddInt)