375fb116bcb817b37509ab579dbd55cdbb765cbf |
|
15-Jun-2011 |
Carl Shapiro <cshapiro@google.com> |
Normalize the include guard style. An leading underscore followed by a capital letter is a reserved name space in C and C++. This change also moves any #include directives within the include guard in some of the compiler/codegen/arm header files. Change-Id: I9715e2c5301699d31886e61d0fe6e29483555a2a
|
d862faa2ceae186da5518607505eb942d634ced9 |
|
28-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Get rid of uneeded extern, enum, typedef and struct qualifiers. Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4
|
db0c9549818d9f6e508d26e45ff9d886802aa1da |
|
13-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Convert the internal and in-line natives to C++. Change-Id: I2ece682bc3b4d3b55ab27c60fd84a0b3243d7ca6
|
ae188c676c681e47a93ade7fdf0144099b470e03 |
|
08-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Compile the garbage collector and heap profiler as C++. Change-Id: I25d8fa821987a3dd6d7109d07fd42dbf2fe0e589
|
9a3147c7412f4794434b4c2604aa2ba784867774 |
|
03-Mar-2011 |
buzbee <buzbee@google.com> |
Interpreter restructuring This is a restructuring of the Dalvik ARM and x86 interpreters: o Combine the old portstd and portdbg interpreters into a single portable interpreter. o Add debug/profiling support to the fast (mterp) interpreters. o Delete old mechansim of switching between interpreters. Now, once you choose an interpreter at startup, you stick with it. o Allow JIT to co-exist with profiling & debugging (necessary for first-class support of debugging with the JIT active). o Adds single-step capability to the fast assembly interpreters without slowing them down (and, in fact, measurably improves their performance). o Remove old "polling for safe point" mechanism. Breakouts now achieved via modifying base of interpreter handler table. o Simplify interpeter control mechanism. o Allow thread-granularity control for profiling & debugging The primary motivation behind this change was to improve the responsiveness of debugging and profiling and to make it easier to add new debugging and profiling capabilities in the future. Instead of always bailing out to the slow debug portable interpreter, we can now stay in the fast interpreter. A nice side effect of the change is that the fast interpreters got a healthy speed boost because we were able to replace the polling safepoint check that involved a dozen or so instructions with a single table-base reload. When combined with the two earlier CLs related to this restructuring, we show a 5.6% performance improvement using libdvm_interp.so on the Checkers benchmark relative to Honeycomb. Change-Id: I8d37e866b3618def4e582fc73f1cf69ffe428f3c
|
69ee8f605ad4139c8b9a39821fd7a4cadb9d9337 |
|
16-Feb-2011 |
Elliott Hughes <enh@google.com> |
Ensure we always call inline natives. Even though execute-inline is now a mandatory optimization, you can't be sure the inline natives will be invoked that way. There's reflection and JNI, for example, and there's the special case of String.equals that might be invoked as Object.equals. This patch adds a regular native method corresponding to each inline native, so that a corresponding libcore patch can drop its implementations. (For example, despite the fact that we all believed last week that the Java implementation of String.equals is never used, that turned out not to be true: every HashMap lookup will have used it. This pair of patches brings reality in line with our existing belief.) Change-Id: I19e64c23bea83e91696206ca40ce4e3faf853040
|
65a54dc66d2c7b6e16fc24a6ce66e50483620745 |
|
28-Jan-2011 |
Andy McFadden <fadden@android.com> |
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
|
fe700260881c8f59ee2f2dc2308aef3b0cc39734 |
|
15-Sep-2010 |
Elliott Hughes <enh@google.com> |
Check at startup that we can resolve all the inline natives. Also fix a bug where we'd dereference NULL if an inline native's class failed to resolve. Also merge this method lookup with Optimize.c's (superior) near-duplicate. Change-Id: Ic7a95e1f7445b6c9964ddd5e2e1d14d70792a622
|
a1227409084c4a675cc83ada128f364506528b9c |
|
21-Aug-2010 |
Elliott Hughes <enh@google.com> |
Intrinsics for float/int and double/long conversions. [cherry-picked e22bd84c8c8a57ddd86c21a1f65137d549b07935 from dalvik-dev to gingerbread] Bug: 2935622 Change-Id: Ib4de19033dc4a08f41bf0eb0f7a21dcde216aae3
|
e22bd84c8c8a57ddd86c21a1f65137d549b07935 |
|
21-Aug-2010 |
Elliott Hughes <enh@google.com> |
Intrinsics for float/int and double/long conversions. Bug: 2935622 Change-Id: I0f9e564f1f94ccf6596a37a6f1c10253481d5062
|
fbdcfb9ea9e2a78f295834424c3f24986ea45dac |
|
29-May-2010 |
Brian Carlstrom <bdc@google.com> |
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master Change-Id: I0c0edb3ebf0d5e040d6bbbf60269fab0deb70ef9
|
2bdbcb6db8c3ab984cf64d4a3a3f0d5529aa9e52 |
|
12-Apr-2010 |
Elliott Hughes <enh@google.com> |
Fix supplementary character support. Fixes all known bugs in our handling of supplementary characters. This change introduces a performance regression on the assumption that it won't be released without a corresponding JIT change to enable the code to be inlined back to pretty much what it used to be. Bug: 2587122 Change-Id: I3449c9718bbe32ebe53b6c10454ae1dc82105b59
|
ee34f594881ac2d859113db33baf5e141f5a58dd |
|
06-Apr-2010 |
Elliott Hughes <enh@google.com> |
An InlineNative for String.isEmpty, so it's not slower than length() == 0. Before: benchmark ns logarithmic runtime IsEmpty 115 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX LengthEqualsZero 21 XXXXX|||||||||||||| With C intrinsic: IsEmpty 30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX LengthEqualsZero 20 XXXXXXXXXXXXXXXXXXXX|||||| With assembler intrinsic: IsEmpty 15 XXXXXXXXXXXXXXXXXXXX|||||| LengthEqualsZero 21 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (All times on passion.) Change-Id: Ifcc37fe7b8efdd377675a448e0085e490d6767bc
|
72e93344b4d1ffc71e9c832ec23de0657e5b04a5 |
|
13-Nov-2009 |
Jean-Baptiste Queru <jbq@google.com> |
eclair snapshot
|
12ba015231ab6cfdd0a714c719aacc2b225bd173 |
|
03-Sep-2009 |
Bill Buzbee <buzbee@google.com> |
Update the JIT to use the new indexAt() inline native routines.
|
50a6bf2f01efba0acbff9bb03e7ee09688553e08 |
|
08-Jul-2009 |
Bill Buzbee <buzbee@google.com> |
Inline-execute for Java.Lang.Math routines, jit codegen restructure, various bug fixes.
|
f6c387128427e121477c1b32ad35cdcaa5101ba3 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
f72d5de56a522ac3be03873bdde26f23a5eeeb3c |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
2ad60cfc28e14ee8f0bb038720836a4696c478ad |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
|