summaryrefslogtreecommitdiffstats
path: root/vm/InlineNative.h
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2011-01-27 17:01:54 -0800
committerAndy McFadden <fadden@android.com>2011-01-28 15:40:49 -0800
commit65a54dc66d2c7b6e16fc24a6ce66e50483620745 (patch)
tree84c2680b39b7aeca505ba05189fd9e4a8b466883 /vm/InlineNative.h
parent24e56f731d91ada255f694366e936c88440b8f4b (diff)
downloadandroid_dalvik-65a54dc66d2c7b6e16fc24a6ce66e50483620745.tar.gz
android_dalvik-65a54dc66d2c7b6e16fc24a6ce66e50483620745.tar.bz2
android_dalvik-65a54dc66d2c7b6e16fc24a6ce66e50483620745.zip
Make more DEX optimizations "essential"
This shifts two dexopt optimizations from the "non-essential" category to "essential", which means they will be performed at class load time for classes that did not successfully verify in dexopt. (This has an impact on memory and start time, but measurements have indicated that it's negligible because dexopt usually succeeds.) First, invoke-direct --> invoke-direct-empty. This is part of the work needed for bug 3342343, which needs to do a little extra work when returning from Object.<init> in a finalizable class. Second, invoke-* --> execute-inline. We currently have three copies of methods like String.length(): one in libcore, one in InlineNatives.c, and one in the JIT's code generator. If we guarantee inlining, we can get rid of the copy in libcore. We also ensure that certain libcore tests (which are organized in a way that makes dexopt unhappy) are using the version that will most likely be used on production. Note there is currently no support for "jumbo" opcodes here. Also, made the inline method lookup abort-on-failure. Once upon a time these were "best effort" optimizations, but now they're mandatory. And seriously, if you don't have String.length() and Math.min() you shouldn't be trying to run anyway. dvmInlineNativeCheck() is now redundant and has been removed. Change-Id: I4244e011839f77311fea0570195b3b0df4d84dcf
Diffstat (limited to 'vm/InlineNative.h')
-rw-r--r--vm/InlineNative.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm/InlineNative.h b/vm/InlineNative.h
index cb31f5184..fc8602759 100644
--- a/vm/InlineNative.h
+++ b/vm/InlineNative.h
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
/*
* Inlined native functions.
*/
@@ -21,7 +22,6 @@
/* startup/shutdown */
bool dvmInlineNativeStartup(void);
-bool dvmInlineNativeCheck(void);
void dvmInlineNativeShutdown(void);
Method* dvmFindInlinableMethod(const char* classDescriptor,