1 runtime雏形

ART inital code

https://android.googlesource.com/platform/art/+/3ee755da5c1c17b6a29052d171a8a63c0eb0b052 https://android.googlesource.com/platform/art/+/3ee755da5c1c17b6a29052d171a8a63c0eb0b052/src/runtime.cc

commit 3ee755da5c1c17b6a29052d171a8a63c0eb0b052
Author: Carl Shapiro <cshapiro@google.com>
Date:   Tue Jun 28 12:11:04 2011 -0700

    Complete support for loading classes from a DEX file.

    Change-Id: I1b9aa105fc78df170e83b259d8d04317c296a1b5

 Android.common.mk    |   1 +
 src/dex_file.cc      | 105 ++++++++++++++++++++++++-------
 src/dex_file.h       |  12 +---
 src/dex_file_test.cc |   6 ++
 src/object.cc        |  23 +++++++
 src/object.h         | 175 ++++++++++++++++++++++++++++++++++++++++++++++-----
 src/raw_dex_file.h   |  79 +++++++++++++++++++----
 7 files changed, 339 insertions(+), 62 deletions(-)

2 class_linker init

https://android.googlesource.com/platform/art/+/0e5d75d5ca2b8a44fab0c862276a466cbab39859

commit 0e5d75d5ca2b8a44fab0c862276a466cbab39859
Author: Carl Shapiro <cshapiro@google.com>
Date:   Wed Jul 6 18:28:37 2011 -0700

    Add support for linking classes.

    Change-Id: I0026be6e4c919f7391fd83c654f58c3bc67f44e1

3 thread feature

https://android.googlesource.com/platform/art/+/b557353b22c728eecbd1c68593b482622c7782a8

commit b557353b22c728eecbd1c68593b482622c7782a8
Author: Carl Shapiro <cshapiro@google.com>
Date:   Tue Jul 12 18:22:59 2011 -0700

    Add more functionality to the thread and mutex implementation.

    Change-Id: I33b2e53acb4c4c6653f13f1bbdd77cc7ce27e581

 build/Android.common.mk |   3 +-
 src/class_linker.cc     |  16 +++---
 src/runtime.h           |  11 +++-
 src/thread.cc           | 104 +++++++++++++++++++++++++++++++++++
 src/thread.h            | 142 +++++++++++++++++++++++++++++++++++++++++++++---
 5 files changed, 257 insertions(+), 19 deletions(-)

4 runtime construction

https://android.googlesource.com/platform/art/+/61e019d291583029c01b61b93bea750f2b663c37

commit 61e019d291583029c01b61b93bea750f2b663c37
Author: Carl Shapiro <cshapiro@google.com>
Date:   Thu Jul 14 16:53:09 2011 -0700

    Initialize runtime constituents on runtime construction.

    Change-Id: I63fff272b64bd29a7f828dac48aed91833af1eee

 src/class_linker.cc      |  7 ++++++
 src/class_linker.h       | 11 +++++----
 src/class_linker_test.cc | 25 +++++++++----------
 src/heap.h               | 13 ++++++++++
 src/object_test.cc       | 21 +++++++---------
 src/runtime.cc           | 38 +++++++++++++++++++++++++++--
 src/runtime.h            | 36 ++++++++++++++++++++++------
 src/thread.cc            | 62 +++++++++++++++++++++++++++++++++++++++++++-----
 src/thread.h             | 39 +++++++++++++++---------------
 src/utils.h              | 11 +++++++++
 10 files changed, 198 insertions(+), 65 deletions(-)

5 x86 JNI compiler

https://android.googlesource.com/platform/art/+/b033c75ebda80ac75f936366fe78d1edf5cec937

commit b033c75ebda80ac75f936366fe78d1edf5cec937
Author: Ian Rogers <irogers@google.com>
Date:   Wed Jul 20 12:22:35 2011 -0700

    x86 JNI compiler and unit tests.

    Change-Id: I4c2e10328961a2e8e27c90777fe2a93737b21143

 build/Android.common.mk          |  19 +-
 src/assembler.cc                 |   8 +-
 src/assembler.h                  |  36 +-
 src/assembler_arm.cc             | 428 ++++++++++++++++++++++-
 src/assembler_arm.h              |  69 +++-
 src/assembler_x86.cc             | 243 ++++++++++++-
 src/assembler_x86.h              | 105 +++++-
 src/assembler_x86_test.cc        |  15 +-
 src/calling_convention.cc        | 120 +++++++
 src/calling_convention.h         | 145 ++++++++
 src/calling_convention_arm.cc    |  83 +++++
 src/calling_convention_x86.cc    |  73 ++++
 src/common_test.h                |  29 ++
 src/constants.h                  |  12 +
 src/constants_arm.h              |  24 +-
 src/constants_x86.h              |  20 +-
 src/jni_compiler.cc              | 290 +++++++++++++++
 src/jni_compiler.h               |  40 +++
 src/jni_compiler_test.cc         | 390 +++++++++++++++++++++
 src/managed_register.h           |  14 +
 src/managed_register_arm.cc      |  93 +++++
 src/managed_register_arm.h       | 266 ++++++++++++++
 src/managed_register_arm_test.cc | 739 +++++++++++++++++++++++++++++++++++++++
 src/managed_register_x86.cc      | 112 ++++++
 src/managed_register_x86.h       | 214 ++++++++++++
 src/managed_register_x86_test.cc | 343 ++++++++++++++++++
 src/object.cc                    | 114 +++++-
 src/object.h                     |  95 ++++-
 src/object_test.cc               |   6 +-
 src/runtime.cc                   |  11 +-
 src/thread.cc                    |  28 +-
 src/thread.h                     |  96 ++++-
 src/thread_arm.cc                |  11 +
 src/thread_x86.cc                |  60 ++++
 src/utils.h                      |  12 +-
 35 files changed, 4277 insertions(+), 86 deletions(-)

6 garbage collection infrastructure.

https://android.googlesource.com/platform/art/+/69759eaa6fd4386f1e6d8748052ad221087b3476

commit 69759eaa6fd4386f1e6d8748052ad221087b3476
Author: Carl Shapiro <cshapiro@google.com>
Date:   Thu Jul 21 18:13:35 2011 -0700

    Add allocation and garbage collection infrastructure.

    Change-Id: I4b04cdfdf18afb75a7b0df87b509e8156b4a932b

 build/Android.common.mk      |   10 +-
 build/Android.libart.host.mk |    1 -
 src/assembler.cc             |    4 -
 src/assembler.h              |   35 -
 src/assembler_arm.cc         |    1 +
 src/assembler_arm.h          |    1 +
 src/assembler_x86.cc         |    2 +-
 src/assembler_x86.h          |    6 +-
 src/class_linker.cc          |   37 +-
 src/common_test.h            |    6 +
 src/dlmalloc.c               | 5454 ++++++++++++++++++++++++++++++++++++++++++
 src/dlmalloc.h               |  655 +++++
 src/globals.h                |    6 +-
 src/heap.cc                  |  163 ++
 src/heap.h                   |   97 +-
 src/mark_stack.cc            |   48 +
 src/mark_stack.h             |   59 +
 src/mark_sweep.cc            |  409 ++++
 src/mark_sweep.h             |  133 +
 src/mspace.c                 |  291 +++
 src/mspace.h                 |  128 +
 src/object.h                 |  135 +-
 src/object_bitmap.cc         |  197 ++
 src/object_bitmap.h          |  138 ++
 src/offsets.cc               |   14 +
 src/offsets.h                |   49 +
 src/runtime.cc               |   11 +-
 src/runtime.h                |    4 +-
 src/space.cc                 |  130 +
 src/space.h                  |   71 +
 src/space_test.cc            |   68 +
 src/thread.h                 |   40 +-
 src/thread_x86.cc            |    5 +-
 33 files changed, 8281 insertions(+), 127 deletions(-)

7 Initial ARM JNI

https://android.googlesource.com/platform/art/+/e2d373e6e09c1df9a47e73a26254048adb31ce82

commit e2d373e6e09c1df9a47e73a26254048adb31ce82
Author: Carl Shapiro <cshapiro@google.com>
Date:   Mon Jul 25 15:20:06 2011 -0700

    Initial ARM JNI compiler support.

    Change-Id: I85183eec9a2645e6cb074b4b18bc6af800a77e06

 build/Android.common.mk       |   2 +-
 src/assembler.cc              |   3 +-
 src/assembler_arm.cc          | 188 +++++++++++++++++++++++++++++++++++++-----
 src/assembler_arm.h           |   1 +
 src/assembler_x86.cc          |   5 ++
 src/assembler_x86.h           |   1 +
 src/calling_convention.cc     |   5 ++
 src/calling_convention.h      |   7 ++
 src/calling_convention_arm.cc |  46 ++++++++---
 src/calling_convention_x86.cc |   4 +
 src/jni_compiler.cc           |  44 ++++++----
 src/jni_compiler_test.cc      |  49 ++++++++---
 src/object.cc                 |   2 +
 13 files changed, 294 insertions(+), 63 deletions(-)

8 ClassLinker can now FindClass all libcore classes

https://android.googlesource.com/platform/art/+/4a96b60e45fba4a9d4a2e9c8fc849660eacef684

commit 4a96b60e45fba4a9d4a2e9c8fc849660eacef684
Author: Brian Carlstrom <bdc@google.com>
Date:   Tue Jul 26 16:40:23 2011 -0700

    ClassLinker can now FindClass all libcore classes

    Summary:
    - added ClassLinkerTest/LibCore test of finding all libcore classes
    - fixed bug in LinkInterfaceMethods appending mirant methods to vtable_
    - fixed bug in LinkVirtualMethods allocating subclass vtable_
    - fixed mmap bug in MarkStack::Init
    - bumped default (and max) heap sizes to handle ClassLinkerTest/LibCore
    - made ObjectArray a templated class
    - heap allocate Class::vtable_
    - "mm test-art" and "mm test-art-target" added
    - new is_host_ for use by tests

 Android.mk               | 16 ++++++++
 src/class_linker.cc      | 95 ++++++++++++++++++++++--------------------------
 src/class_linker.h       | 14 ++++---
 src/class_linker_test.cc | 31 ++++++++++++++++
 src/common_test.h        |  3 ++
 src/dex_cache.cc         |  8 ++--
 src/dex_cache.h          | 34 ++++++++---------
 src/dex_cache_test.cc    | 10 ++---
 src/dex_file.h           | 18 ++++-----
 src/heap.h               | 14 +++----
 src/mark_stack.cc        |  2 +-
 src/mark_sweep.cc        |  2 +-
 src/object.h             | 40 ++++++++++----------
 src/object_test.cc       |  2 +-
 14 files changed, 168 insertions(+), 121 deletions(-)

9 ClassLinker::VisitRoots

https://android.googlesource.com/platform/art/+/75cb3b477be3757a0351fb6ab1cb70751a71e2bf

commit 75cb3b477be3757a0351fb6ab1cb70751a71e2bf
Author: Brian Carlstrom <bdc@google.com>
Date:   Thu Jul 28 02:13:36 2011 -0700

    Add ClassLinker::VisitRoots

    As part of implementing VisitRoots, created ClassLinker::class_roots_
    with enum of offsets. This required revising ClassLinker::Init yet
    again, so took the opportunity to simplify and document ordering
    restrictions. Also simplified special cases in FindClass, as well as
    making a fast path for FindClass and CreateArrayClass for post
    ::Init. Made ClassLinker::Alloc* conveniences private after realizing
    they are only used externally by tests. Sprinkled some
    Class::IsSynthetic validation in ClassLinkerTest along with adding a
    test for VisitRoots. Updated kJavaLangDex to have a java.lang.String
    to work with the simplified ::Init code.

    Change-Id: I76b92c0bde5da32d9ebc8d3702d8e7ac7972dda7

 src/class_linker.cc      | 317 ++++++++++++++++++++++++++---------------------
 src/class_linker.h       |  85 +++++++------
 src/class_linker_test.cc |   9 ++
 src/common_test.h        |  47 ++++---
 src/object.h             |  10 ++
 5 files changed, 270 insertions(+), 198 deletions(-)

10 open dex from zip,jar, apk

https://android.googlesource.com/platform/art/+/b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995

commit b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995
Author: Brian Carlstrom <bdc@google.com>
Date:   Fri Jul 29 10:08:05 2011 -0700

    Add support for opening classes.dex file from zip, jar, apk

    Change-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6

 Android.mk               |   4 +-
 build/Android.common.mk  |   8 +-
 build/Android.libart.mk  |   2 +-
 build/Android.test.mk    |   5 +-
 src/class_linker.h       |   2 +-
 src/common_test.h        |  64 ++++++-
 src/dex_file.cc          | 205 +++++++++++++++++++-
 src/dex_file.h           |   5 +-
 src/globals.h            |   2 +
 src/jni_compiler.cc      |   2 +-
 src/jni_compiler_test.cc |   2 +-
 src/runtime.cc           |   1 +
 src/runtime.h            |   6 +-
 src/space.cc             |   6 +-
 src/thread.cc            |   2 +-
 src/thread_x86.cc        |   2 +-
 src/zip_archive.cc       | 472 +++++++++++++++++++++++++++++++++++++++++++++++
 src/zip_archive.h        | 194 +++++++++++++++++++
 src/zip_archive_test.cc  |  71 +++++++
 19 files changed, 1024 insertions(+), 31 deletions(-)

11 Handle double and long on the Managed side

https://android.googlesource.com/platform/art/+/5381cf941d26030199fcdbe61a614ff01e55a27c

commit 5381cf941d26030199fcdbe61a614ff01e55a27c
Author: Shih-wei Liao <sliao@google.com>
Date:   Wed Jul 27 00:28:04 2011 -0700

    Handle double and long on the Managed side, and follow AAPCS on the Native side.

    Change-Id: I43a8fa36cb79fb438f075986a46c66ab8258e725

 src/assembler_arm.cc          | 13 ++++++--
 src/calling_convention.cc     | 58 ++++++++++++++++++++++--------------
 src/calling_convention.h      | 16 ++++++----
 src/calling_convention_arm.cc | 69 ++++++++++++++++++++++++++++---------------
 src/calling_convention_x86.cc |  6 ++--
 src/jni_compiler.cc           | 12 ++++----
 src/object.cc                 |  2 +-
 src/object.h                  | 15 +++++++++-
 8 files changed, 126 insertions(+), 65 deletions(-)

12 Start implementing JNI

https://android.googlesource.com/platform/art/+/40ef99eb9dd91c2fa549f40973964529c927bb3c

commit 40ef99eb9dd91c2fa549f40973964529c927bb3c
Author: Elliott Hughes <enh@google.com>
Date:   Thu Aug 11 17:44:34 2011 -0700

    Start implementing JNI.

    This patch replaces our JniEnvironment class with the regular JNIEnv.

    This patch also adds support for .jar, .zip, and .apk files in the
    boot classpath.

    There's also an attempt at implementing JNIEnv::FindClass.

    I've also fixed a few scoped_ptr/scoped_array bugs (this kind of thing
    being the reason we use UniquePtr in libcore), and removed some
    unnecessary .

    The 'tools/art' script makes it easier to play with aexec on the command-line.

    Change-Id: Ic4f704c12e0071f17e95b6e182fdab9370ead9b0

 src/class_linker.cc |    2 +-
 src/common_test.h   |    2 +-
 src/dex_file.cc     |   14 +-
 src/intern_table.cc |    2 +-
 src/jni_compiler.cc |   12 +-
 src/jni_internal.cc | 1208 ++++++++++++++++-----------------------------------
 src/jni_internal.h  |  858 +-----------------------------------
 src/runtime.cc      |   20 +-
 src/runtime.h       |    6 +-
 src/thread.h        |   10 +-
 src/zip_archive.cc  |    2 +-
 tools/art           |   26 ++
 12 files changed, 469 insertions(+), 1693 deletions(-)

13 JNI: Use the UNIMPLEMENTED macro everywhere

https://android.googlesource.com/platform/art/+/53b61314370c49354ed6f8d616d6a9a182410fc1

commit 53b61314370c49354ed6f8d616d6a9a182410fc1
Author: Elliott Hughes <enh@google.com>
Date:   Fri Aug 12 18:28:20 2011 -0700

    Use the UNIMPLEMENTED macro everywhere.

    As suggested in review.

    Change-Id: Ic14c91a622b545b4800ef021dfb501fb09cbda9d

 src/assembler.cc          | 18 ------------------
 src/assembler_arm.cc      |  2 +-
 src/assembler_arm.h       |  6 ------
 src/assembler_x86.cc      |  4 ++--
 src/assembler_x86.h       |  3 ---
 src/calling_convention.cc |  2 +-
 src/class_linker.cc       |  2 +-
 src/dex_file.cc           |  2 +-
 src/heap.cc               |  2 +-
 src/jni_internal.cc       |  2 --
 src/logging.h             |  2 ++
 src/mark_sweep.cc         |  8 ++++----
 src/object.h              | 16 ++++++++--------
 src/runtime.cc            |  2 +-
 src/space.cc              |  2 +-
 src/thread.cc             |  2 +-
 16 files changed, 24 insertions(+), 51 deletions(-)

14 Remove author attributions

https://android.googlesource.com/platform/art/+/ad107abee00fb523b9fda575a40395e9d6d9510d

commit ad107abee00fb523b9fda575a40395e9d6d9510d
Author: Carl Shapiro <cshapiro@google.com>
Date:   Sun Aug 14 15:54:24 2011 -0700

    Remove author attributions.

    Change-Id: I58d2983ce41f6b3f3a4e1bbd1d075e794b8257e3

 src/assembler_x86_test.cc     | 1 -
 src/calling_convention.cc     | 1 -
 src/calling_convention.h      | 1 -
 src/calling_convention_arm.cc | 1 -
 src/calling_convention_x86.cc | 1 -
 src/class_linker.cc           | 1 -
 src/heap.cc                   | 1 -
 src/heap.h                    | 1 -
 src/jni_compiler.h            | 2 +-
 src/jni_compiler_test.cc      | 1 -
 src/jni_internal_arm.cc       | 1 -
 src/jni_internal_x86.cc       | 1 -
 src/log_severity.h            | 1 -
 src/logging_android.cc        | 1 -
 src/logging_linux.cc          | 1 -
 src/mark_stack.cc             | 1 -
 src/mark_stack.h              | 1 -
 src/mark_sweep.cc             | 1 -
 src/mark_sweep.h              | 1 -
 src/monitor.h                 | 1 -
 src/object_test.cc            | 1 -
 src/offsets.cc                | 1 -
 src/offsets.h                 | 1 -
 src/runtime_android.cc        | 1 -
 src/runtime_linux.cc          | 1 -
 src/space.cc                  | 1 -
 src/space.h                   | 1 -
 src/space_test.cc             | 1 -
 src/stringprintf.cc           | 1 -
 src/stringprintf.h            | 1 -
 src/thread.h                  | 1 -
 31 files changed, 1 insertion(+), 31 deletions(-)

15 First ImageWriter

https://android.googlesource.com/platform/art/+/db4d54081f09abcbe97ffdf615874f2809a9e777

commit db4d54081f09abcbe97ffdf615874f2809a9e777
Author: Brian Carlstrom <bdc@google.com>
Date:   Tue Aug 9 12:18:28 2011 -0700

    First pass of ImageWriter

    Change-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb

 build/Android.common.mk  |   6 +++
 src/class_linker.cc      |   9 +++-
 src/common_test.h        |  32 ++++++++++++
 src/dex_file.cc          |  27 ++++++----
 src/file.cc              |  36 +++++++++++++
 src/file.h               |  49 ++++++++++++++++++
 src/file_linux.cc        |  64 +++++++++++++++++++++++
 src/file_linux.h         |  34 ++++++++++++
 src/file_test.cc         |  47 +++++++++++++++++
 src/heap.h               |   6 +--
 src/image_test.cc        |  28 ++++++++++
 src/image_writer.cc      | 132 +++++++++++++++++++++++++++++++++++++++++++++++
 src/image_writer.h       |  68 ++++++++++++++++++++++++
 src/jni_compiler.cc      |  19 +++----
 src/jni_compiler.h       |   9 ++--
 src/jni_compiler_test.cc |  16 +++---
 src/jni_internal.cc      |   1 +
 src/mark_stack.cc        |  14 ++---
 src/mark_stack.h         |   5 ++
 src/mark_sweep.cc        |   4 +-
 src/mem_map.h            | 112 ++++++++++++++++++++++++++++++++++++++++
 src/memory_region.h      |   2 -
 src/object.h             | 100 ++++++++++++++++++++++++++++-------
 src/object_bitmap.cc     |  22 +++-----
 src/object_bitmap.h      |   6 ++-
 src/os.h                 |  28 ++++++++++
 src/os_linux.cc          |  43 +++++++++++++++
 src/runtime_test.cc      |   2 +-
 src/scoped_ptr.h         |  20 +++----
 src/space.cc             |  20 +++----
 src/space.h              |  12 +++--
 src/utils.h              |   3 ++
 src/zip_archive.cc       |  43 +++++----------
 src/zip_archive.h        |  77 +++------------------------
 src/zip_archive_test.cc  |  39 ++------------
 35 files changed, 880 insertions(+), 255 deletions(-)

16 Initial Compiler

https://android.googlesource.com/platform/art/+/67bf885d62b1473c833bece1c9e0bb624e6ba391

commit 67bf885d62b1473c833bece1c9e0bb624e6ba391
Author: buzbee <buzbee@google.com>
Date:   Wed Aug 17 17:51:35 2011 -0700

   Oat compiler integration snapshot.

   Cleanly compiles, but not integrated.  Old-world dependencies captured
   in hacked-up temporary files "Dalvik.h" and "HackStubs.cc".

   Dalvik.h is a placeholder that captures all of the constants, struct
   definitions and inline functions the compiler needs.  It largely consists
   of declaration fragments of libdex, Object.h, DvmDex.h and Thread.h.

   HackStubs.cc contains empty shells for some required libdex routines.

   Change-Id: Ia479dda41da4e3162ff6df383252fdc7dbf38d71

build/Android.common.mk                            |   13 +
src/compiler/Compiler.h                            |  100 +
src/compiler/CompilerIR.h                          |  306 +++
src/compiler/CompilerInternals.h                   |   25 +
src/compiler/CompilerUtility.h                     |  114 +
src/compiler/Dalvik.h                              |  706 ++++++
src/compiler/Dataflow.cc                           | 2338 ++++++++++++++++++++
src/compiler/Dataflow.h                            |  128 ++
src/compiler/Frontend.cc                           |  909 ++++++++
src/compiler/HackStubs.cc                          |   42 +
src/compiler/IntermediateRep.cc                    |  124 ++
src/compiler/Ralloc.cc                             |  138 ++
src/compiler/RuntimeUtilities.cc                   |   52 +
src/compiler/SSATransformation.cc                  |  585 +++++
src/compiler/Utility.cc                            |  511 +++++
src/compiler/codegen/CodegenFactory.cc             |  234 ++
src/compiler/codegen/CompilerCodegen.h             |   52 +
src/compiler/codegen/Optimizer.h                   |   41 +
src/compiler/codegen/Ralloc.h                      |  239 ++
src/compiler/codegen/RallocUtil.cc                 | 1028 +++++++++
src/compiler/codegen/arm/ArchFactory.cc            |   85 +
src/compiler/codegen/arm/ArchUtility.cc            |  495 +++++
src/compiler/codegen/arm/ArmLIR.h                  |  867 ++++++++
src/compiler/codegen/arm/ArmRallocUtil.cc          |  344 +++
src/compiler/codegen/arm/Assemble.cc               | 1581 +++++++++++++
src/compiler/codegen/arm/CalloutHelper.h           |   89 +
src/compiler/codegen/arm/Codegen.h                 |   52 +
src/compiler/codegen/arm/CodegenCommon.cc          |  418 ++++
src/compiler/codegen/arm/FP/Thumb2VFP.cc           |  242 ++
src/compiler/codegen/arm/LocalOptimizations.cc     |  448 ++++
src/compiler/codegen/arm/MethodCodegenDriver.cc    | 1765 +++++++++++++++
src/compiler/codegen/arm/Thumb2/Factory.cc         | 1137 ++++++++++
src/compiler/codegen/arm/Thumb2/Gen.cc             | 1885 ++++++++++++++++
src/compiler/codegen/arm/Thumb2/Ralloc.cc          |   51 +
.../codegen/arm/armv7-a-neon/ArchVariant.cc        |   51 +
src/compiler/codegen/arm/armv7-a-neon/Codegen.cc   |   51 +
src/compiler/codegen/arm/armv7-a/ArchVariant.cc    |   52 +
src/compiler/codegen/arm/armv7-a/Codegen.cc        |   51 +
38 files changed, 17349 insertions(+)

17 New compiler pass first test

https://android.googlesource.com/platform/art/+/c143c55718342519db5398e41dda31422cf16c79

commit c143c55718342519db5398e41dda31422cf16c79
Author: buzbee <buzbee@google.com>
Date:   Sat Aug 20 17:38:58 2011 -0700

   Updating the compiler to use the new-world model

   New compiler is integrated and passes first test (Fibonacci).

   Change-Id: Ic5448ab89ebd22baa30fafc3d1300324687d1fc2

build/Android.common.mk                         |   8 +-
build/Android.libart.mk                         |   1 +
src/assembler_arm.h                             |   4 +
src/assembler_x86.cc                            |   1 -
src/assembler_x86.h                             |   4 +
src/class_linker.h                              |   4 +-
src/common_test.h                               |  57 +-
src/compiler/CompilerIR.h                       |   4 +-
src/compiler/Dalvik.h                           | 684 +-----------------------
src/compiler/Dataflow.cc                        |   6 +-
src/compiler/Frontend.cc                        |  52 +-
src/compiler/HackStubs.cc                       |  42 --
src/compiler/Ralloc.cc                          |   6 +-
src/compiler/SSATransformation.cc               |   4 +-
src/compiler/Utility.cc                         |   3 +-
src/compiler/codegen/arm/ArchUtility.cc         |  40 +-
src/compiler/codegen/arm/ArmRallocUtil.cc       |  15 +-
src/compiler/codegen/arm/Assemble.cc            |  55 +-
src/compiler/codegen/arm/MethodCodegenDriver.cc | 136 ++---
src/compiler/codegen/arm/Thumb2/Gen.cc          | 114 ++--
src/compiler_test.cc                            |  42 ++
src/constants.h                                 |  11 +
src/image_test.cc                               |  19 +-
src/jni_compiler.cc                             |   4 +-
src/jni_compiler_test.cc                        |  21 +-
src/jni_internal.cc                             |  16 +-
src/jni_internal_test.cc                        |  45 +-
src/monitor.h                                   |   8 +
src/object.h                                    |  58 +-
src/thread.h                                    |  71 ++-
src/utils.cc                                    |  19 +
src/utils.h                                     |   2 +
32 files changed, 535 insertions(+), 1021 deletions(-)

18 implementations for runtime-provided native methods

https://android.googlesource.com/platform/art/+/bf86d0438e9ef9c145ebcf16a2e74c4efaa2686a

commit bf86d0438e9ef9c145ebcf16a2e74c4efaa2686a
Author: Elliott Hughes <enh@google.com>
Date:   Wed Aug 31 17:53:14 2011 -0700

    Start adding implementations for runtime-provided native methods.

    The library can't do everything...

    Change-Id: Ib808c00570c7214aeb2ca058b1a66cacbeb372f1

 build/Android.common.mk                       |   5 +
 src/check_jni.cc                              |   4 +-
 src/heap.cc                                   |  15 ++
 src/heap.h                                    |   7 +
 src/java_lang_Object.cc                       |  66 +++++++
 src/java_lang_Runtime.cc                      |  95 ++++++++++
 src/java_lang_String.cc                       | 169 +++++++++++++++++
 src/java_lang_System.cc                       | 259 ++++++++++++++++++++++++++
 src/java_util_concurrent_atomic_AtomicLong.cc |  40 ++++
 src/jni_internal.cc                           |  78 ++++----
 src/jni_internal.h                            |   3 +
 src/object.cc                                 |   5 +
 src/object.h                                  |  16 ++
 src/runtime.cc                                |  18 +-
 src/runtime.h                                 |   2 +
 src/thread.cc                                 |  24 +--
 src/thread.h                                  |  21 +--
 17 files changed, 762 insertions(+), 65 deletions(-)

19 first dex2oat

https://android.googlesource.com/platform/art/+/69b15fb098162f19a4c20e6dccdcead04d9c77f0

commit 69b15fb098162f19a4c20e6dccdcead04d9c77f0
Author: Brian Carlstrom <bdc@google.com>
Date:   Sat Sep 3 12:25:21 2011 -0700

    Working dex2oat and oatexec

    adb shell dex2oatd --dex-file=/system/framework/core.jar     --image=/system/framework/boot.oat --base=0x50000000 "'--method=Ljava/lang/System;logI(Ljava/lang/String;)V'" "'--method=Ljava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V'"
    adb shell dex2oatd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat
    adb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld

    09-05 17:58:18.912  2385  2385 I System  : Hello, world!

    Change-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc

 Android.mk                      |   6 +-
 build/Android.aexec.mk          |  58 -----------
 build/Android.common.mk         |   8 +-
 build/Android.executable.mk     |  76 ++++++++++++++
 build/Android.libart.mk         |   2 +-
 src/check_jni.cc                |   2 +-
 src/class_linker.cc             |  63 +++++++----
 src/class_linker.h              |  10 +-
 src/class_loader.cc             |   1 +
 src/common_test.h               |  17 +--
 src/dex2oat.cc                  | 224 ++++++++++++++++++++++++++++++++++++++++
 src/dex_cache.h                 |  40 ++++---
 src/dex_file.cc                 |  30 ++++--
 src/dex_file.h                  |   3 +
 src/exception_test.cc           |   2 +-
 src/heap.cc                     |  23 ++++-
 src/heap.h                      |   8 +-
 src/image.cc                    |   2 +-
 src/image.h                     |   1 +
 src/image_test.cc               |  16 +--
 src/image_writer.cc             |  91 ++++++++++++++--
 src/image_writer.h              |  41 +++++++-
 src/jni_internal.cc             |   9 +-
 src/{main.cc => oatexec.cc}     |   2 +
 src/object.cc                   |   3 +-
 src/object.h                    |   7 +-
 src/runtime.cc                  | 104 ++++++++++++-------
 src/runtime.h                   |   9 +-
 src/runtime_test.cc             |  23 ++++-
 src/space.cc                    |  20 +++-
 test/HelloWorld/HelloWorld.java |  21 ++++
 tools/art                       |   6 +-
 32 files changed, 731 insertions(+), 197 deletions(-)

20 Support for cross compilation

https://android.googlesource.com/platform/art/+/2c8f653c98d658419f464b6147c10e11a664d2e6

commit 2c8f653c98d658419f464b6147c10e11a664d2e6
Author: Ian Rogers <irogers@google.com>
Date:   Fri Sep 2 17:16:34 2011 -0700

    Support for cross compilation.

    Refactor architecture specific files into arm and x86 name spaces. Make
    assemblers and calling conventions use the factory pattern and an
    instruction set specifier.

    Change-Id: I20cd7aecacc1ae3d418221d98bbe1d69be9162a7

 build/Android.common.mk          |  24 +-
 src/assembler.cc                 |  16 +-
 src/assembler.h                  | 172 +++++--
 src/assembler_arm.cc             | 682 ++++++++++++++-------------
 src/assembler_arm.h              | 198 +++++---
 src/assembler_x86.cc             | 559 ++++++++++++-----------
 src/assembler_x86.h              | 255 ++++++-----
 src/calling_convention.cc        |  31 +-
 src/calling_convention.h         |  80 ++--
 src/calling_convention_arm.cc    | 117 ++---
 src/calling_convention_arm.h     |  58 +++
 src/calling_convention_x86.cc    |  69 +--
 src/calling_convention_x86.h     |  59 +++
 src/common_test.h                |  15 +-
 src/compiler.cc                  |  39 +-
 src/compiler.h                   |  10 +
 src/compiler_test.cc             |   3 +-
 src/constants.h                  |   3 -
 src/constants_arm.h              |   2 +
 src/constants_x86.h              |   2 +
 src/dex2oat.cc                   |   2 +-
 src/jni_compiler.cc              | 419 +++++++++--------
 src/jni_compiler.h               |  19 +-
 src/jni_compiler_test.cc         |   2 -
 src/jni_internal_arm.cc          |  16 +-
 src/jni_internal_x86.cc          |  17 +-
 src/managed_register.h           |  54 ++-
 src/managed_register_arm.cc      |  21 +-
 src/managed_register_arm.h       |  67 ++-
 src/managed_register_arm_test.cc | 960 ++++++++++++++++++++-------------------
 src/managed_register_x86.cc      |  21 +-
 src/managed_register_x86.h       |  62 +--

21 More thread work

https://android.googlesource.com/platform/art/+/8daa0929f08a3080ea64dbd4e997e72f411e6fc9


commit 8daa0929f08a3080ea64dbd4e997e72f411e6fc9
Author: Elliott Hughes <enh@google.com>
Date:   Sun Sep 11 13:46:25 2011 -0700

   More threads work.

   Adds stubs (and sometimes implementations) for dalvik.system.VMStack and
   java.lang.Thread native methods. There was a bug in the dalvik
   thread priority setting code, where the current thread and the passed-in
   thread were confused.

   I've also pulled Mutex and ThreadList out into their own files, and
   moved some functionality around (with the aim of having more stuff
   private, especially locks).

   Change-Id: Ieb0f22669cac3df44ca34f7868f8e7d4dfa09ab6

build/Android.common.mk      |   6 ++
src/class_linker.cc          |   3 +-
src/class_linker.h           |   4 +-
src/dalvik_system_VMStack.cc |  65 +++++++++++++++
src/heap.cc                  |  18 ++--
src/intern_table.cc          |  13 +--
src/intern_table.h           |   4 +-
src/java_lang_Thread.cc      | 128 +++++++++++++++++++++++++++++
src/jni_internal.cc          |  22 ++---
src/jni_internal.h           |  10 +--
src/logging.cc               |   4 +-
src/logging.h                |  12 ---
src/mutex.cc                 | 105 ++++++++++++++++++++++++
src/mutex.h                  |  87 ++++++++++++++++++++
src/runtime.cc               |  12 +--
src/runtime.h                |   2 +-
src/signal_catcher.cc        |   7 +-
src/signal_catcher.h         |   5 +-
src/thread.cc                | 190 ++++---------------------------------------
src/thread.h                 | 169 +++++++++++++-------------------------
src/thread_android.cc        |  91 +++++++++++++++++++++
src/thread_linux.cc          |  29 +++++++
src/thread_list.cc           | 107 ++++++++++++++++++++++++
src/thread_list.h            |  88 ++++++++++++++++++++
src/utils.cc                 |   9 --
src/utils.h                  |   3 -
26 files changed, 825 insertions(+), 368 deletions(-)

22 initial oatdump

https://android.googlesource.com/platform/art/+/78128a63b2615744760b7f8ab83df9764a5d4a95

commit 78128a63b2615744760b7f8ab83df9764a5d4a95
Author: Brian Carlstrom <bdc@google.com>
Date:   Thu Sep 15 17:21:19 2011 -0700

    oatdump

    FROM MAKE:
    mm dump-boot-oat

    ON HOST:
    oatdump --dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --image=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --strip-prefix=$ANDROID_PRODUCT_OUT
    oatdump --boot-dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --boot=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --dex-file=$ANDROID_PRODUCT_OUT/system/framework/art-test-dex-HelloWorld.jar --image=$ANDROID_PRODUCT_OUT//system/framework/art-test-dex-HelloWorld.oat --strip-prefix=$ANDROID_PRODUCT_OUT

    ON TARGET:
    adb shell oatdump --dex-file=/system/framework/core.jar --image=/system/framework/boot.oat
    adb shell oatdumpd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat

    Change-Id: Iad2ae40a9cf2dc28799ff5dc5222d50f1bc6b39f

 Android.mk                  |   4 +
 build/Android.common.mk     |   3 +
 build/Android.executable.mk |   4 +
 build/Android.oat.mk        |   5 +
 src/class_linker.cc         |   2 +-
 src/class_linker.h          |   2 +-
 src/dex2oat.cc              |  29 ++----
 src/dex_file.cc             |  14 +++
 src/dex_file.h              |  15 ++-
 src/heap.cc                 |   2 +-
 src/heap.h                  |   2 +-
 src/image.h                 |   7 +-
 src/image_writer.cc         |   4 +-
 src/image_writer.h          |   4 +-
 src/mark_sweep.cc           |   2 +-
 src/oatdump.cc              | 230 ++++++++++++++++++++++++++++++++++++++++++++
 src/oatexec.cc              |   6 +-
 src/object.h                |   4 +

23 oat_process

https://android.googlesource.com/platform/art/+/27ec961a1da540ba7f16c07a682585ab167317ad

commit 27ec961a1da540ba7f16c07a682585ab167317ad
Author: Brian Carlstrom <bdc@google.com>
Date:   Mon Sep 19 20:20:38 2011 -0700

    Adding oat_process

    - Added oat_process, a version of app_process use to launch frameworks apps
    - Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm
      This is just a special makefile, frameworks/base/core/jni code is used for source
    - Added support for build a boot.oat with the full BOOTCLASSPATH
      The older smaller boat.oat is now core.oat
    - Added mem_map code for making sure a requested memory region is available
      Moved mem_map code to cc file to make easier to debug with smaller rebuild
    - Moved oat base address to 0x6000000 as a work around to host addres conflict
    - Added -Xms and -Xmx options to dex2oat to allow build specific memory options
    - Fixed miranda method initialization problem found compiling full bootclasspath
    - Made compiler.cc tolerant of verification errors found compiling full bootclasspath
    - Bumped arena block alloc warning to avoid noise when compiling full bootclasspath
    - Marked implicit GC unimplemented to fail fast
    - Added --output argument to oatdump
    - Made many object asserts tolerate access in IsErroneous state
      now that verifier is failing validation of some classes during compilation
    - Made runtime tolerate unknown access as short term solution for oat_process
    - Workaround SSA issue to restore full bootclasspath compilation
    - Added test-art-target-processs to excercise oat_process with "am"
      "am" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass

    Change-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97

 Android.mk                                |  26 ++-
 build/Android.common.mk                   |   1 +
 build/Android.oat.mk                      |  37 +++--
 build/Android.oattest.mk                  |  21 ++-
 oat_process/Android.mk                    |  23 +++
 oat_process/MODULE_LICENSE_APACHE2        |   0
 oat_process/NOTICE                        | 190 ++++++++++++++++++++++
 oat_process/app_main.cpp                  | 204 ++++++++++++++++++++++++
 oat_runtime/Android.mk                    | 256 ++++++++++++++++++++++++++++++
 src/class_linker.cc                       |  20 ++-
 src/common_test.h                         |   3 +
 src/compiler.cc                           |  27 +++-
 src/compiler/Utility.cc                   |   8 +-
 src/compiler/codegen/arm/CodegenCommon.cc |   7 +-
 src/dex2oat.cc                            |  28 +++-
 src/heap.cc                               |   1 +
 src/heap.h                                |   4 +-
 src/mem_map.cc                            | 163 +++++++++++++++++++
 src/mem_map.h                             |  70 +-------
 src/oatdump.cc                            |  73 ++++++---
 src/object.cc                             |   2 +-
 src/object.h                              |  79 ++++-----
 src/object_bitmap.cc                      |   1 +
 src/runtime.cc                            |   9 +-
 24 files changed, 1078 insertions(+), 175 deletions(-)

24 Java Unit TestCase

https://android.googlesource.com/platform/art/+/5d1ac920fdaef5d4ec8f66bb734488cd9660b024

commit 5d1ac920fdaef5d4ec8f66bb734488cd9660b024
Author: jeffhao <jeffhao@google.com>
Date:   Thu Sep 29 17:41:15 2011 -0700

   Adding old unit tests to test suite.

   These tests are copied straight over. They'll still run, but they're
   using the old system.

   Change-Id: If494519e52ddf858a9febfc55bdae830468cb3c8

test/001-nop/build                                 |    3 +
test/001-nop/expected.txt                          |    1 +
test/001-nop/info.txt                              |    2 +
test/001-nop/run                                   |    3 +
test/002-sleep/expected.txt                        |    2 +
test/002-sleep/info.txt                            |    3 +
test/002-sleep/src/Main.java                       |   22 +
test/003-omnibus-opcodes/build                     |   26 +
test/003-omnibus-opcodes/expected.txt              |   74 +

25 Separate oat from image

https://android.googlesource.com/platform/art/+/e24fa61603a60ade3797e4a0c8b3fccb346cb048

commit e24fa61603a60ade3797e4a0c8b3fccb346cb048
Author: Brian Carlstrom <bdc@google.com>
Date:   Thu Sep 29 00:53:55 2011 -0700

    Separate oat from image

    Change-Id: If2abdb99826ead14e3465d90ba2acffd89709389

 Android.mk                           |  25 +-
 build/Android.common.mk              |   4 +
 build/Android.oat.mk                 |  16 +-
 build/Android.oattest.mk             |   4 +-
 src/common_test.h                    |   6 +-
 src/compiler.cc                      |  26 ++-
 src/compiler.h                       |   5 +-
 src/compiler/Frontend.cc             |   4 +-
 src/dex2oat.cc                       |  67 ++++--
 src/dex_file.cc                      |  18 +-
 src/dex_file.h                       |   7 +-
 src/dex_file_test.cc                 |   2 -
 src/exception_test.cc                |   8 +-
 src/globals.h                        |   3 +
 src/heap.cc                          |   8 +-
 src/image.cc                         |   2 +-
 src/image.h                          |  48 +++-
 src/image_test.cc                    |  25 +-
 src/image_writer.cc                  |  68 +++++-
 src/image_writer.h                   |  13 +-
 src/jni_compiler.cc                  |   2 +-
 src/mem_map.cc                       |   6 +-
 src/oat.cc                           |  68 ++++++
 src/oat.h                            |  41 ++++
 src/oat_file.cc                      | 167 +++++++++++++
 src/oat_file.h                       | 101 ++++++++
 src/oat_test.cc                      |  79 +++++++
 src/oat_writer.cc                    | 438 +++++++++++++++++++++++++++++++++++
 src/oat_writer.h                     | 155 +++++++++++++
 src/oatdump.cc                       |  71 ++++--
 src/object.cc                        |  45 ++--
 src/object.h                         |  97 ++++----
 src/runtime.cc                       | 145 ++++++++++--
 src/runtime.h                        |  44 ++--
 src/space.cc                         |   7 +-
 src/stub_arm.cc                      |   1 +
 src/utils.cc                         |   3 +

26 Working ClassLoader

https://android.googlesource.com/platform/art/+/aded5f7ab991f3c1132851599d3bc60ff6707eed

commit aded5f7ab991f3c1132851599d3bc60ff6707eed
Author: Brian Carlstrom <bdc@google.com>
Date:   Fri Oct 7 17:15:04 2011 -0700

    Working ClassLoader

    Change-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b

 Android.mk                           |   2 +-
 build/Android.common.mk              |   5 +-
 build/Android.oattest.mk             |   4 +-
 oat_process/app_main.cpp             |  54 +-----
 src/class_linker.cc                  | 359 ++++++++++++++++++++++-------------
 src/class_linker.h                   |  41 +++-
 src/class_linker_test.cc             |  24 +--
 src/class_loader.cc                  |  25 ++-
 src/class_loader.h                   |  22 +--
 src/common_test.h                    |  18 +-
 src/compiler.cc                      |  32 ++--
 src/compiler.h                       |  18 +-
 src/compiler_test.cc                 |   3 +-
 src/dalvik_system_DexFile.cc         |  55 +++++-
 src/dex2oat.cc                       |  13 +-
 src/dex_cache.cc                     |   9 +
 src/dex_file.h                       |   9 +-
 src/dex_verifier.cc                  |   4 +-
 src/dex_verifier_test.cc             |   2 +-
 src/image.h                          |   7 +-
 src/image_writer.cc                  |   2 +
 src/jni_internal.cc                  |   2 +-
 src/oat_file.cc                      |  21 +-
 src/oat_file.h                       |  14 +-
 src/oat_test.cc                      |  10 +-
 src/oat_writer.cc                    |   2 +-
 src/oatdump.cc                       | 246 +++++++++++++++++++++---
 src/object.cc                        |   4 +-
 src/object_test.cc                   |   2 +-
 src/runtime.cc                       |  38 +++-
 src/runtime.h                        |   4 +
 src/runtime_support.cc               |  11 ++
 src/runtime_support.h                |   1 +
 src/runtime_support_asm.S            |  20 +-
 src/thread.cc                        |   8 +-
 src/thread.h                         |   4 +-
 src/utils.cc                         |   8 +
 src/utils.h                          |   3 +
 test/003-omnibus-opcodes/build       |   1 -
 test/023-many-interfaces/build       |   1 -
 test/056-const-string-jumbo/build    |   1 -
 test/085-old-style-inner-class/build |   1 -
 test/etc/default-build               |   2 -
 test/etc/push-and-run-test-jar       |   2 +-
 44 files changed, 794 insertions(+), 320 deletions(-)

27 GC

https://android.googlesource.com/platform/art/+/5d76c435082332ef79a22962386fa92a0870e378

commit 5d76c435082332ef79a22962386fa92a0870e378
Author: Ian Rogers <irogers@google.com>
Date:   Mon Oct 31 21:42:49 2011 -0700

    Mark non-image spaces and use write barrier for image spaces.

    Don't mark string and class roots that are in the image, alloc space
    references will be caught by the write barrier.

    Change-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46

 build/Android.common.mk                |   1 +
 src/card_table.cc                      | 129 ++++++++++++++++++++++++
 src/card_table.h                       | 103 +++++++++++++++++++
 src/class_linker.cc                    |  33 ++++--
 src/class_linker.h                     |   3 +-
 src/compiler/Dalvik.h                  |   4 +-
 src/compiler/codegen/arm/Thumb2/Gen.cc |   3 -
 src/heap.cc                            |  29 ++++--
 src/heap.h                             |  36 ++++++-
 src/heap_bitmap.cc                     |  74 ++++++++++----
 src/heap_bitmap.h                      |   4 +-
 src/image_writer.cc                    |   1 +
 src/intern_table.cc                    |  10 +-
 src/intern_table.h                     |   1 +
 src/java_lang_System.cc                |   4 +-
 src/mark_sweep.cc                      | 178 +++++++++++++++++++++++++++++----
 src/mark_sweep.h                       |  27 +++++
 src/object.cc                          |  17 ++--
 src/object.h                           |  31 ++++--
 src/space.cc                           |  17 ++++
 src/space.h                            |  11 ++
 src/sun_misc_Unsafe.cc                 | 103 ++++++++-----------
 src/thread.cc                          |   5 +
 src/thread.h                           |   5 +-
 24 files changed, 682 insertions(+), 147 deletions(-)

28 LLVM backend for ART

https://android.googlesource.com/platform/art/+/d1fec81868a3567560a3868350e0a945248e925b

commit d1fec81868a3567560a3868350e0a945248e925b
Author: Shih-wei Liao <sliao@google.com>
Date:   Mon Feb 13 09:51:10 2012 -0800

    Beginning of LLVM backend for ART.

    Change-Id: I03466aed94670ac72d489ebc6e34d7ee1c9c857e

 .gitignore                           |   1 +
 build/Android.common.mk              |  51 +++++++--
 build/Android.libart.mk              |  14 +++
 src/compiled_method.cc               |  10 ++
 src/compiled_method.h                |  13 +++
 src/compiler.cc                      |  22 +++-
 src/compiler.h                       |  15 +++
 src/compiler_llvm/backend_types.h    | 132 +++++++++++++++++++++
 src/compiler_llvm/compiler_llvm.cc   |  96 ++++++++++++++++
 src/compiler_llvm/compiler_llvm.h    | 107 ++++++++++++++++++
 src/compiler_llvm/frontend.cc        |  40 +++++++
 src/compiler_llvm/ir_builder.cc      | 130 +++++++++++++++++++++
 src/compiler_llvm/ir_builder.h       | 214 +++++++++++++++++++++++++++++++++++
 src/compiler_llvm/libdex.h           |  46 ++++++++
 src/compiler_llvm/method_compiler.cc |  77 +++++++++++++
 src/compiler_llvm/method_compiler.h  | 111 ++++++++++++++++++
 16 files changed, 1066 insertions(+), 13 deletions(-)

29 Significant restructuring of the Quick compiler

https://android.googlesource.com/platform/art/+/311ca169f4727d46a55bdc8dfa0059719fa72b65

commit 311ca169f4727d46a55bdc8dfa0059719fa72b65
Author: buzbee <buzbee@google.com>
Date:   Thu Feb 28 15:56:43 2013 -0800

    Compiler: Spring cleaning

    Significant restructuring of the Quick compiler to break out the
    common frontend more cleanly.  Additional C++'ification.

    The goal is to move from the monolithic structure of the old
    JIT towards a more modular model in which components - in
    particular the compiler backend - can be replaced.  This CL
    focuses on moving MIR-related data from the CompilationUnit
    struct into a new MIRGraph class.  The next CL will isolate all
    LIR-related data and code down into the Quick backend.

    This change will happen in multiple steps, and may look uglier
    before it starts looking better.

    Among the changes:

       o Moved all mir-related fields from CompilationUnit to new
         MirGraph class.

       o Moved the register promotion stuff into the Quick backend.

       o Deleted the GBC to LIR conversion code.

       o Replaced with old C-style function pointer dataflow analysis
         dispatcher with a basic block iterator class.

       o Renamed some files to make the name more consistent with what
         the code actually does.

       o Added the foundation for future inlining support.

       o Stripped out the remains of the old fingerprinting mechanism.

    Change-Id: I6c30facc642f8084b1c7b2075cf7014de387aa56

 build/Android.libart-compiler.mk                   |    9 +-
 src/compiler/dex/compiler_internals.h              |    2 +-
 src/compiler/dex/compiler_ir.h                     |  372 +--
 src/compiler/dex/compiler_utility.cc               |  187 +-
 src/compiler/dex/compiler_utility.h                |    5 +
 src/compiler/dex/dataflow.cc                       | 2571 --------------------
 src/compiler/dex/dataflow.h                        |  182 --
 src/compiler/dex/dataflow_iterator.cc              |  117 +
 src/compiler/dex/dataflow_iterator.h               |   51 +
 src/compiler/dex/frontend.cc                       | 1047 +-------
 src/compiler/dex/frontend.h                        |   31 +-
 .../dex/{bb_opt.cc => local_value_numbering.cc}    |    5 +-
 .../dex/{bb_opt.h => local_value_numbering.h}      |    4 +-
 src/compiler/dex/mir_dataflow.cc                   | 1380 +++++++++++
 src/compiler/dex/mir_graph.cc                      |  840 +++++++
 src/compiler/dex/mir_graph.h                       |  431 ++++
 src/compiler/dex/mir_optimization.cc               |  874 +++++++
 src/compiler/dex/portable/mir_to_gbc.cc            | 1540 +-----------
 src/compiler/dex/portable/mir_to_gbc.h             |    1 -
 src/compiler/dex/quick/arm/call_arm.cc             |   12 +-
 src/compiler/dex/quick/arm/codegen_arm.h           |    4 +-
 src/compiler/dex/quick/arm/int_arm.cc              |   24 +-
 src/compiler/dex/quick/arm/target_arm.cc           |   10 +-
 src/compiler/dex/quick/codegen.h                   |   22 +-
 src/compiler/dex/quick/codegen_util.cc             |   54 +-
 src/compiler/dex/quick/gen_common.cc               |   31 +-
 src/compiler/dex/quick/gen_invoke.cc               |   12 +-
 src/compiler/dex/quick/gen_loadstore.cc            |   35 +-
 src/compiler/dex/quick/mips/call_mips.cc           |    8 +-
 src/compiler/dex/quick/mips/codegen_mips.h         |    4 +-
 src/compiler/dex/quick/mips/int_mips.cc            |    2 +-
 src/compiler/dex/quick/mips/target_mips.cc         |    8 +-
 src/compiler/dex/quick/mir_to_lir.cc               |   52 +-
 src/compiler/dex/quick/ralloc_util.cc              |   57 +-
 src/compiler/dex/quick/ralloc_util.h               |    2 -
 src/compiler/dex/quick/x86/assemble_x86.cc         |    4 +-
 src/compiler/dex/quick/x86/call_x86.cc             |   11 +-
 src/compiler/dex/quick/x86/codegen_x86.h           |    4 +-
 src/compiler/dex/quick/x86/int_x86.cc              |    2 +-
 src/compiler/dex/quick/x86/target_x86.cc           |    6 +-
 src/compiler/dex/ralloc.h                          |   28 -
 src/compiler/dex/ssa_transformation.cc             |  582 ++---
 src/compiler/dex/ssa_transformation.h              |   28 -
 src/compiler/dex/{ralloc.cc => vreg_analysis.cc}   |  349 ++-
 src/compiler/driver/compiler_driver.h              |    1 -
 src/compiler/driver/dex_compilation_unit.cc        |    1 +
 src/compiler/llvm/gbc_expander.cc                  |    1 +
 src/dex2oat.cc                                     |    2 -
 48 files changed, 4646 insertions(+), 6359 deletions(-)

30 Initial CompilerDriver

https://android.googlesource.com/platform/art/+/1212a022fa5f8ef9585d765b1809521812af882c

commit 1212a022fa5f8ef9585d765b1809521812af882c
Author: Ian Rogers <irogers@google.com>
Date:   Mon Mar 4 10:48:41 2013 -0800

    Move the Compiler to CompilerDriver.

    Change-Id: I0bb4d3c2b79b45fd8ef180688c767712b0c55978

 build/Android.common.mk                            |   4 +-
 src/common_test.h                                  |  24 +--
 src/compiler/dex/compiler_internals.h              |   2 +-
 src/compiler/dex/compiler_ir.h                     |   6 +-
 src/compiler/dex/dataflow.cc                       |   6 +-
 src/compiler/dex/frontend.cc                       |  16 +-
 src/compiler/dex/frontend.h                        |   2 +-
 src/compiler/dex/portable/mir_to_gbc.cc            |   8 +-
 src/compiler/dex/quick/codegen_util.cc             |  28 +--
 src/compiler/dex/quick/gen_common.cc               |  44 ++---
 src/compiler/dex/quick/gen_invoke.cc               |   6 +-
 src/compiler/dex/quick/mir_to_lir.cc               |   4 +-
 src/compiler/dex/write_elf.cc                      |   9 +-
 .../driver/compiler_driver.cc}                     | 196 +++++++++++----------
 .../driver/compiler_driver.h}                      |  35 ++--
 .../driver/compiler_driver_test.cc}                |  10 +-
 src/compiler_llvm/compiler_llvm.cc                 |  68 +++----
 src/compiler_llvm/compiler_llvm.h                  |  12 +-
 src/compiler_llvm/gbc_expander.cc                  |  32 ++--
 src/compiler_llvm/jni_compiler.cc                  |   9 +-
 src/compiler_llvm/jni_compiler.h                   |   6 +-
 src/compiler_llvm/llvm_compilation_unit.cc         |  10 +-
 src/compiler_llvm/llvm_compilation_unit.h          |   8 +-
 src/compiler_llvm/stub_compiler.cc                 |   6 +-
 src/compiler_llvm/stub_compiler.h                  |   6 +-
 src/dex2oat.cc                                     |  56 +++---
 src/elf_writer.cc                                  |  11 +-
 src/elf_writer.h                                   |  11 +-
 src/image_test.cc                                  |  10 +-
 src/image_writer.cc                                |  20 +--
 src/image_writer.h                                 |   8 +-
 src/oat/jni/arm/jni_internal_arm.cc                |   4 +-
 src/oat/jni/jni_compiler.cc                        |   6 +-
 src/oat/jni/mips/jni_internal_mips.cc              |   4 +-
 src/oat/jni/x86/jni_internal_x86.cc                |   4 +-
 src/oat_test.cc                                    |  12 +-
 src/oat_writer.cc                                  |  40 ++---
 src/oat_writer.h                                   |   8 +-
 src/stack.cc                                       |   1 -
 src/verifier/method_verifier.cc                    |  14 +-
 src/verifier/method_verifier.h                     |  14 +-
 41 files changed, 397 insertions(+), 383 deletions(-)

31 Initial ParallelCompilationManager

https://android.googlesource.com/platform/art/+/219b5a847ef74be5d3de4c16a29ec6413cc42af1

commit 219b5a847ef74be5d3de4c16a29ec6413cc42af1
Author: Ian Rogers <irogers@google.com>
Date:   Mon Mar 4 13:48:24 2013 -0800

    Rename CompilationContext to ParallelCompilationManager.

    We have a large number of things named context as well as context generally
    being for things that are local.

    Change-Id: I667322790e49a3432fd0f697803ebedcb9b5b56f

 src/compiler/driver/compiler_driver.cc | 110 ++++++++++++++++-----------------
 src/compiler/driver/compiler_driver.h  |   4 +-
 2 files changed, 57 insertions(+), 57 deletions(-)

32 Compiler: LIR restructuring

https://android.googlesource.com/platform/art/+/1fd3346740dfb7f47be9922312b68a4227fada96

commit 1fd3346740dfb7f47be9922312b68a4227fada96
Author: buzbee <buzbee@google.com>
Date:   Mon Mar 25 13:40:45 2013 -0700

    Compiler: LIR restructuring

    Continuing restructuring of the compiler.  In this installment,
    all LIR reverences are moved from compiler_ir down to quick.  Further,
    all Portable data is moved to from compiler_ir down to portable.

    In short, the great dumping ground of CompilationUnit has been
    split into three smaller dumping grounds of MIRGraph, Codegen
    and MIRConverter.  From here, subsequent CLs will repartition
    those smaller dumping grounds into (hopefully) more coherent classes.
    As a result, most function signatures have been altered to remove
    the passing around of a CompilationUnit* pointer.

    Change-Id: I7195f7baecd81e87786a952e18bbce0b6ceeaac4

 .../dex/{quick/local_optimizations.h => backend.h} |   23 +-
 src/compiler/dex/compiler_internals.h              |    2 +-
 src/compiler/dex/compiler_ir.h                     |  409 +------
 src/compiler/dex/compiler_utility.cc               |  349 +-----
 src/compiler/dex/compiler_utility.h                |   30 +-
 src/compiler/dex/frontend.cc                       |  146 +--
 src/compiler/dex/frontend.h                        |    9 +-
 src/compiler/dex/mir_dataflow.cc                   |   44 +-
 src/compiler/dex/mir_graph.cc                      |  344 +++++-
 src/compiler/dex/mir_graph.h                       |  279 ++++-
 src/compiler/dex/mir_optimization.cc               |   31 +-
 src/compiler/dex/portable/mir_to_gbc.cc            | 1229 ++++++++++----------
 src/compiler/dex/portable/mir_to_gbc.h             |  169 ++-
 src/compiler/dex/quick/arm/assemble_arm.cc         |   45 +-
 src/compiler/dex/quick/arm/call_arm.cc             |  471 ++++----
 src/compiler/dex/quick/arm/codegen_arm.h           |  280 ++---
 src/compiler/dex/quick/arm/fp_arm.cc               |  197 ++--
 src/compiler/dex/quick/arm/int_arm.cc              |  786 +++++++------
 src/compiler/dex/quick/arm/int_arm.cc              |  786 +++++++------
 src/compiler/dex/quick/arm/target_arm.cc           |  262 +++--
 src/compiler/dex/quick/arm/utility_arm.cc          |  281 +++--
 src/compiler/dex/quick/codegen.h                   |  434 -------
 src/compiler/dex/quick/codegen_util.cc             |  660 ++++++-----
 src/compiler/dex/quick/codegen_util.h              |   68 --
 src/compiler/dex/quick/gen_common.cc               | 1162 +++++++++---------
 src/compiler/dex/quick/gen_invoke.cc               |  939 +++++++--------
 src/compiler/dex/quick/gen_loadstore.cc            |  237 ++--
 src/compiler/dex/quick/local_optimizations.cc      |   77 +-
 src/compiler/dex/quick/mips/assemble_mips.cc       |   55 +-
 src/compiler/dex/quick/mips/call_mips.cc           |  280 +++--
 src/compiler/dex/quick/mips/codegen_mips.h         |  259 ++---
 src/compiler/dex/quick/mips/fp_mips.cc             |  124 +-
 src/compiler/dex/quick/mips/int_mips.cc            |  422 ++++---
 src/compiler/dex/quick/mips/target_mips.cc         |  288 +++--
 src/compiler/dex/quick/mips/utility_mips.cc        |  226 ++--
 src/compiler/dex/quick/mir_to_lir.cc               |  415 ++++---
 src/compiler/dex/quick/mir_to_lir.h                |  736 +++++++++++-
 src/compiler/dex/quick/ralloc_util.cc              |  789 ++++++-------
 src/compiler/dex/quick/ralloc_util.h               |  162 ---
 src/compiler/dex/quick/x86/assemble_x86.cc         |  509 ++++----
 src/compiler/dex/quick/x86/call_x86.cc             |  215 ++--
 src/compiler/dex/quick/x86/codegen_x86.h           |  276 ++---
 src/compiler/dex/quick/x86/fp_x86.cc               |  255 ++--
 src/compiler/dex/quick/x86/int_x86.cc              |  419 ++++---
 src/compiler/dex/quick/x86/target_x86.cc           |  227 ++--
 src/compiler/dex/quick/x86/utility_x86.cc          |  210 ++--
 src/compiler/dex/ssa_transformation.cc             |   51 +-
 src/compiler/dex/vreg_analysis.cc                  |  237 ++--
 src/compiler/driver/compiler_driver.h              |    3 +-
 src/compiler/llvm/gbc_expander.cc                  |    2 +-
 49 files changed, 7485 insertions(+), 7638 deletions(-)

33 Improve interpreter to interpreter invokes.

https://android.googlesource.com/platform/art/+/167436311a08a65dea28dda079a137893821c9c7

commit 167436311a08a65dea28dda079a137893821c9c7
Author: Jeff Hao <jeffhao@google.com>
Date:   Wed May 8 10:59:04 2013 -0700

    Improve interpreter to interpreter invokes.

    The interpreter constructs a shadow frame instead of arg array to make
    interpreter to interpreter transitions faster. This adds a pointer to
    an entry for the interpreter to each method.

    Change-Id: If48911d3aa3470847b8548a9e92090b829f4f254

 src/class_linker.cc                    |  16 ++++
 src/class_linker_test.cc               |  25 +++---
 src/compiler/driver/compiler_driver.cc |   3 +-
 src/interpreter/interpreter.cc         | 138 ++++++++++++++++++++++++++-------
 src/interpreter/interpreter.h          |   3 +
 src/invoke_arg_array_builder.h         |  58 +-------------
 src/mirror/abstract_method.cc          |   2 +-
 src/mirror/abstract_method.h           |  24 ++++--
 src/oat/runtime/support_interpreter.cc |  16 ++++
 src/stack.h                            |   5 ++
 10 files changed, 188 insertions(+), 102 deletions(-)

34 Initial entry_point_from_compiled_code_

https://android.googlesource.com/platform/art/+/I9b02d2df95bbeafa6e6387b461f574c57337a61e

commit aa4a793d7175ceeb1efa215c2af5e52e42b22f0a
Author: Jeff Hao <jeffhao@google.com>
Date:   Mon May 13 11:28:27 2013 -0700

    Rename abstract method code_ to entry_point_from_compiled_code_.

    Change-Id: I9b02d2df95bbeafa6e6387b461f574c57337a61e

 src/asm_support.h                           |  4 ++--
 src/class_linker.cc                         | 26 ++++++++++++++------------
 src/class_linker_test.cc                    | 26 +++++++++++++-------------
 src/compiler/dex/quick/gen_invoke.cc        |  6 +++---
 src/compiler/driver/compiler_driver.cc      |  2 +-
 src/compiler/driver/compiler_driver_test.cc |  2 +-
 src/compiler/jni/jni_compiler_test.cc       |  4 ++--
 src/compiler/llvm/gbc_expander.cc           |  4 ++--
 src/compiler/llvm/runtime_support_llvm.cc   |  2 +-
 src/exception_test.cc                       |  4 ++--
 src/image_writer.cc                         |  6 +++---
 src/instrumentation.cc                      |  8 ++++----
 src/mirror/abstract_method-inl.h            | 12 ++++++------
 src/mirror/abstract_method.cc               |  8 ++++----
 src/mirror/abstract_method.h                | 28 ++++++++++++++--------------
 src/mirror/object_test.cc                   |  2 +-
 src/oat/runtime/support_invoke.cc           |  4 ++--
 src/oat/runtime/support_stubs.cc            |  8 ++++----
 src/oat_file.cc                             |  2 +-
 src/oat_writer.cc                           |  2 +-
 src/oatdump.cc                              |  6 +++---
 src/runtime.cc                              |  4 ++--
 22 files changed, 86 insertions(+), 84 deletions(-)

35 GC reconsturction

https://android.googlesource.com/platform/art/+/1d54e73444e017d3a65234e0f193846f3e27472b

commit 1d54e73444e017d3a65234e0f193846f3e27472b
Author: Ian Rogers <irogers@google.com>
Date:   Thu May 2 21:10:01 2013 -0700

    GC clean up.

    Greater use of directories and namespaces.
    Fix bugs that cause verify options


    .....
    rather than the max memory footprint.

    Change-Id: Ie87067140fa4499b15edab691fe6565d79599812

 build/Android.common.mk                      |  39 +-
 src/atomic_integer.h                         |   2 +-
 src/barrier_test.cc                          |   2 +-
 src/base/mutex.cc                            |   6 +
 src/base/mutex.h                             |   4 +
 src/base/timing_logger.cc                    | 116 +++-
 src/base/timing_logger.h                     |  58 ++
 src/check_jni.cc                             |   4 +-
 src/class_linker.cc                          |  37 +-
 src/class_linker.h                           |  11 +-
 src/class_linker_test.cc                     |   4 +-
 src/common_test.h                            |  57 +-
 src/compiler/dex/quick/arm/call_arm.cc       |   2 +-
 src/compiler/dex/quick/mips/call_mips.cc     |   2 +-
 src/compiler/dex/quick/x86/call_x86.cc       |   2 +-
 src/compiler/driver/compiler_driver.cc       |  20 +-
 src/compiler/driver/compiler_driver_test.cc  |   2 +-
 src/compiler/llvm/runtime_support_builder.cc |   8 +-
 src/debugger.cc                              |  24 +-
 src/dex2oat.cc                               |  17 +-
 src/gc/{ => accounting}/atomic_stack.h       |  46 +-
 src/gc/{ => accounting}/card_table-inl.h     |   4 +
 src/gc/{ => accounting}/card_table.cc        |  13 +-
 src/gc/{ => accounting}/card_table.h         |  19 +-
 src/gc/{ => accounting}/heap_bitmap-inl.h    |  24 +-
 src/gc/accounting/heap_bitmap.cc             |  92 +++
 src/gc/accounting/heap_bitmap.h              | 129 +++++

36 oatexec —> dalvikvm

https://android.googlesource.com/platform/art/+/fa42b4410d49134a8e63dc2196be4013d286f2d6

commit fa42b4410d49134a8e63dc2196be4013d286f2d6
Author: Brian Carlstrom <bdc@google.com>
Date:   Mon Jun 17 12:53:45 2013 -0700

    Move to new art dalvikvm

    Change-Id: Ib04bc9853b7084965fa0c9899c3e5f5ac42d4ce7

 build/Android.common.mk                |  3 --
 build/Android.executable.mk            |  6 ++--
 build/Android.oattest.mk               |  6 ++--
 dalvikvm/Android.mk                    | 39 +++++++++++++++++++++++
 src/oatexec.cc => dalvikvm/dalvikvm.cc | 57 ++++++++++++++++++++++++++--------
 src/base/logging.cc                    | 29 ++++++++++-------
 src/runtime.cc                         |  2 +-
 test/etc/host-run-test-jar             | 21 +++++++------
 test/etc/push-and-run-test-jar         | 19 +++++++-----
 test/run-test                          |  2 +-
 tools/art                              |  6 ++--
 11 files changed, 134 insertions(+), 56 deletions(-)

37 Added support for SEA IR

https://android.googlesource.com/platform/art/+/7467ee05012e1fd9834df74663c1ebda46f5636b


commit 7467ee05012e1fd9834df74663c1ebda46f5636b
Author: Dragos Sbirlea <dragoss@google.com>
Date:   Fri Jun 21 09:20:34 2013 -0700

    Added support for SEA IR.

    - Modified makefile to take the existance of SEA_IR_ART
      file to mean "switch to sea ir mode".
    - Switching SEA IR mode on leads to the new compiler being
      fed the fibonacci methods only, if they are used as input.
    - Added partial support for the control flow subgraph of
      the SEA IR (instruction nodes and region nodes for
      conditional and unconditional branches).

    Change-Id: I29020b8e2df5a00fde75715c3683cc25038589f4

    Conflicts:
            src/compiler/driver/compiler_driver.cc

 .gitignore                             |   3 +
 build/Android.common.mk                |  18 ++++
 build/Android.libart-compiler.mk       |   5 +
 src/compiler/dex/frontend.cc           |   5 +
 src/compiler/dex/frontend.h            |   7 ++
 src/compiler/driver/compiler_driver.cc |  21 +++-
 src/compiler/driver/compiler_driver.h  |   1 +
 src/compiler/sea_ir/frontend.cc        |  81 ++++++++++++++++
 src/compiler/sea_ir/sea.cc             | 172 +++++++++++++++++++++++++++++++++
 src/compiler/sea_ir/sea.h              | 102 +++++++++++++++++++
 src/dex2oat.cc                         |   6 ++
 src/runtime.cc                         |   4 +
 src/runtime.h                          |  13 +++
 13 files changed, 436 insertions(+), 2 deletions(-)

38 Initial Compilation Filter

https://android.googlesource.com/platform/art/+/a024a0686c3b0fea13f362bff70d65981e5febc5

commit a024a0686c3b0fea13f362bff70d65981e5febc5
Author: buzbee <buzbee@google.com>
Date:   Wed Jul 31 10:47:37 2013 -0700

    Compilation filter

    This CL introduces a static compilation filter mechanism intended
    to allow us to reduce compilation time and space requirements until
    we have a profiling mechanism in place.

    It supports 5 modes of filtering:

       o interpret-only (compile nothing)
       o deferred-compilation (compile only those methods believe to be
         compute-intensive)
       o space (optimized for space)
       o balanced (best return on space investment)
       o speed (compile everything)

    A future CL will allow the default filtering mode to be set
    via system property.  For now, you can pass it in via command
    line as follows:

       dalvikvm -compiler-filter:[interpret-only|defer-compilation|
                                  space|balanced|speed]

    or dex2oat --runtime-arg -compiler-filter:[one of the above modes]

    Creating a file named art/SMALL_ART will force the filter
    default to interpret-only.  Later on we'll move this capability
    to a persistent system property.

    or modify kDefaultCompilerFilter in runtime.h

    It also changes the compiler driver to allow the compilers to
    decline to compile a method by return NULL.

    Change-Id: Ic73411818f8bb845a4a19a05b0395c50902c534f


 compiler/Android.mk                 |    1 +
 compiler/dex/frontend.cc            |    5 +
 compiler/dex/frontend.h             |    1 +
 compiler/dex/mir_analysis.cc        | 1056 +++++++++++++++++++++++++++++++++++
 compiler/dex/mir_graph.h            |   45 ++
 compiler/driver/compiler_driver.cc  |   10 +-
 dex2oat/dex2oat.cc                  |   18 +-
 runtime/class_linker.cc             |   24 +
 runtime/runtime.cc                  |   44 +-
 runtime/runtime.h                   |   73 ++-
 runtime/verifier/method_verifier.cc |   11 +-
 11 files changed, 1228 insertions(+), 60 deletions(-)

39 Big Goto Table

https://android.googlesource.com/platform/art/+/8ece050d85fc244c72610244e440b0e00aa618fa

commit 8ece050d85fc244c72610244e440b0e00aa618fa
Author: Sebastien Hertz <shertz@google.com>
Date:   Wed Aug 7 11:26:41 2013 +0200

    Add an interpreter using computed goto table.

    This CL adds a new implementation of the interpreter using computed goto table.
    In order to keep the switch-based implementation, it reorders things as the
    following:
    - Keep interpreter entrypoints into interpreter.h/.cc files.
    - Move common interpreter parts to interpreter_common.h/.cc files.
    - Separate both implementations to their own modules.

    The interpreter implementation can be selected by changing the value of the
    kInterpreterImplKind global variable (see interpreter.cc file). The default one
    remains the switch-based implementation.

    Also updates the exception handling (FindNextInstructionFollowingException) and
    SPARSE_SWITCH switch handling (DoSparseSwitch) routines to share code between both
    implementations.

    Finally, adds a PACKED_SWITCH handling routine (DoPackedSwitch) so we are
    consistent with SPARSE_SWITCH handling.

    The computed goto implementation use two handlers table: one for normal
    instruction handling and one for instrumentation handling. The current handlers
    table to be used is updated on backward branch depending on whether there is
    listener to DEX pc change.

    Bug: 10602809
    Change-Id: Ibb53bcc68be75c473fe5440835e78fc9a74381b3

 runtime/Android.mk                                 |    3 +
 runtime/interpreter/interpreter.cc                 | 2812 +-------------------
 runtime/interpreter/interpreter_common.cc          |  389 +++
 runtime/interpreter/interpreter_common.h           |  516 ++++
 runtime/interpreter/interpreter_goto_table_impl.cc | 2343 ++++++++++++++++
 runtime/interpreter/interpreter_switch_impl.cc     | 2030 ++++++++++++++
 6 files changed, 5307 insertions(+), 2786 deletions(-)

40 Rewrite CompilerDriver

https://android.googlesource.com/platform/art/+/f5df8974173124faddb8e2b6a331959afdb94fdf

commit f5df8974173124faddb8e2b6a331959afdb94fdf
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Fri Feb 14 18:37:08 2014 +0000

    Rewrite the compiler interface for CompilerDriver.

    Change-Id: I15fa9afe7ffb7283ebda8d788a1e02793e3f75a6

 compiler/Android.mk                 |   1 +
 compiler/compiler_backend.cc        | 293 ++++++++++++++++++++++++++++++++++++
 compiler/compiler_backend.h         |  96 ++++++++++++
 compiler/dex/compiler_ir.h          |   2 +-
 compiler/dex/frontend.cc            | 100 ++----------
 compiler/dex/mir_optimization.cc    |   2 +-
 compiler/dex/portable/mir_to_gbc.cc |  16 ++
 compiler/driver/compiler_driver.cc  | 137 ++---------------
 compiler/driver/compiler_driver.h   |  34 +----
 compiler/llvm/compiler_llvm.cc      |   6 +-
 compiler/oat_test.cc                |   7 +-
 compiler/sea_ir/frontend.cc         |  21 +--
 dex2oat/dex2oat.cc                  |  21 +--
 runtime/common_test.h               |   7 +-
 14 files changed, 473 insertions(+), 270 deletions(-)

41 Initial Optimizing Compiler

https://android.googlesource.com/platform/art/+/68a5fefa90f03fdf5a238ac85c9439c6b03eae96

commit 68a5fefa90f03fdf5a238ac85c9439c6b03eae96
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Tue Feb 18 16:43:35 2014 +0000

    Initial check-in of an optimizing compiler.

    The classes and the names are very much inspired by V8/Dart.
    It currently only supports the RETURN_VOID dex instruction,
    and there is a pretty printer to check if the building of the
    graph is correct.

    Change-Id: Id5ef1b317ab997010d4e3888e456c26bef1ab9c0

 build/Android.gtest.mk                          |   3 +-
 compiler/Android.mk                             |   4 +-
 compiler/dex/arena_bit_vector.h                 |   2 +-
 compiler/dex/backend.h                          |   6 +-
 compiler/dex/compiler_ir.h                      |   2 +-
 compiler/dex/mir_graph.h                        |   2 +-
 compiler/dex/quick/mir_to_lir.h                 |   4 +-
 compiler/driver/compiler_driver.h               |   2 +-
 compiler/optimizing/builder.cc                  |  64 ++++++
 compiler/optimizing/builder.h                   |  57 +++++
 compiler/optimizing/nodes.cc                    |  60 ++++++
 compiler/optimizing/nodes.h                     | 274 ++++++++++++++++++++++++
 compiler/optimizing/pretty_printer.h            |  51 +++++
 compiler/optimizing/pretty_printer_test.cc      |  87 ++++++++
 compiler/utils/allocation.h                     |  50 +++++
 compiler/{dex => utils}/arena_allocator.cc      |   2 -
 compiler/{dex => utils}/arena_allocator.h       |   7 +-
 compiler/{dex => utils}/arena_allocator_test.cc |   4 +-
 compiler/{dex => utils}/growable_array.h        |  24 ++-
 19 files changed, 679 insertions(+), 26 deletions(-)

42 Re-apply: Initial check-in of an optimizing compiler.

https://android.googlesource.com/platform/art/+/818f2107e6d2d9e80faac8ae8c92faffa83cbd11

commit 818f2107e6d2d9e80faac8ae8c92faffa83cbd11
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Tue Feb 18 16:43:35 2014 +0000

    Re-apply: Initial check-in of an optimizing compiler.

    The classes and the names are very much inspired by V8/Dart.
    It currently only supports the RETURN_VOID dex instruction,
    and there is a pretty printer to check if the building of the
    graph is correct.

    Change-Id: I28e125dfee86ae6ec9b3fec6aa1859523b92a893

 build/Android.gtest.mk                          |   3 +-
 compiler/Android.mk                             |   4 +-
 compiler/dex/arena_bit_vector.h                 |   2 +-
 compiler/dex/backend.h                          |   6 +-
 compiler/dex/compiler_ir.h                      |   2 +-
 compiler/dex/mir_graph.h                        |   2 +-
 compiler/dex/quick/mir_to_lir.h                 |   4 +-
 compiler/driver/compiler_driver.h               |   2 +-
 compiler/optimizing/builder.cc                  |  64 ++++++
 compiler/optimizing/builder.h                   |  57 +++++
 compiler/optimizing/nodes.cc                    |  60 ++++++
 compiler/optimizing/nodes.h                     | 276 ++++++++++++++++++++++++
 compiler/optimizing/pretty_printer.h            |  51 +++++
 compiler/optimizing/pretty_printer_test.cc      |  87 ++++++++
 compiler/utils/allocation.h                     |  50 +++++
 compiler/{dex => utils}/arena_allocator.cc      |   2 -
 compiler/{dex => utils}/arena_allocator.h       |   7 +-
 compiler/{dex => utils}/arena_allocator_test.cc |   4 +-
 compiler/{dex => utils}/growable_array.h        |  24 ++-
 19 files changed, 681 insertions(+), 26 deletions(-)

43 Support optimizing Compiler

https://android.googlesource.com/platform/art/+/b34f69ab43aaf7a6e6045c95f398baf566ef5023


commit b34f69ab43aaf7a6e6045c95f398baf566ef5023
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Fri Mar 7 15:28:39 2014 +0000

    Add command line support for enabling the optimizing compiler.

    Also run tests with the optimizing compiler enabled when
    the file art/USE_OPTIMIZING_COMPILER is present.

    Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8

 build/Android.common.mk                       |  17 +++
 compiler/Android.mk                           |   6 +-
 compiler/common_compiler_test.h               |   8 +-
 compiler/{compiler_backend.cc => compiler.cc} | 169 ++++----------------------
 compiler/{compiler_backend.h => compiler.h}   |  26 ++--
 compiler/compilers.cc                         | 152 +++++++++++++++++++++++
 compiler/compilers.h                          | 103 ++++++++++++++++
 compiler/dex/compiler_ir.h                    |   2 +-
 compiler/dex/frontend.cc                      |  25 ++--
 compiler/dex/mir_optimization.cc              |   2 +-
 compiler/driver/compiler_driver.cc            |  26 ++--
 compiler/driver/compiler_driver.h             |  10 +-
 compiler/llvm/compiler_llvm.cc                |   4 +-
 compiler/oat_test.cc                          |  10 +-
 compiler/optimizing/optimizing_compiler.cc    |  32 +++++
 dex2oat/dex2oat.cc                            |  32 ++---
 test/Android.mk                               |   9 +-
 17 files changed, 412 insertions(+), 221 deletions(-)

44 AArch64: Add memory allocation in low 4GB

https://android.googlesource.com/platform/art/+/8dba5aaaffc0bc2b2580bf02f0d9095c00d26a17

commit 8dba5aaaffc0bc2b2580bf02f0d9095c00d26a17
Author: Stuart Monteith <stuart.monteith@arm.com>
Date:   Wed Mar 12 12:44:01 2014 +0000

    AArch64: Add memory allocation in low 4GB

    MAP_32BIT is implemented for only x86_64. Other 64bit platforms
    don't have an equivalent.

    This is a unsophisticated implemention of a scheme using msync and
    MAP_FIXED to reproduce the functionality of MAP_32BIT.

    Adds MAP_FIXED to RemapAtEnd, as the address used for the new mmap
    doesn't get located correctly without it on aarch64.

    Add MemMap::next_mem_pos_ to store last position. Add a safety assert.

    Change-Id: I61871ff7fc327554c43e1d7f448c3d376490f1ea

 runtime/mem_map.cc | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 runtime/mem_map.h  |  4 ++++
 2 files changed, 61 insertions(+), 2 deletions(-)

45 Plug new optimizing compiler in compilation pipeline

https://android.googlesource.com/platform/art/+/787c3076635cf117eb646c5a89a9014b2072fb44

commit 787c3076635cf117eb646c5a89a9014b2072fb44
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Mon Mar 17 10:20:19 2014 +0000

    Plug new optimizing compiler in compilation pipeline.

    Also rename accessors to ART's conventions.

    Change-Id: I344807055b98aa4b27215704ec362191464acecc

 compiler/optimizing/builder.cc             |  8 +--
 compiler/optimizing/code_generator.cc      | 53 ++++++++---------
 compiler/optimizing/code_generator.h       | 55 +++++++++--------
 compiler/optimizing/code_generator_arm.cc  | 92 ++++++++++++++--------------
 compiler/optimizing/code_generator_arm.h   | 38 ++++++++++--
 compiler/optimizing/code_generator_x86.cc  | 96 +++++++++++++++---------------
 compiler/optimizing/code_generator_x86.h   | 36 ++++++++++-
 compiler/optimizing/codegen_test.cc        | 26 ++++----
 compiler/optimizing/dominator_test.cc      |  8 +--
 compiler/optimizing/nodes.cc               | 51 ++++++++--------
 compiler/optimizing/nodes.h                | 92 ++++++++++++++--------------
 compiler/optimizing/optimizing_compiler.cc | 66 +++++++++++++++++++-
 compiler/optimizing/pretty_printer.h       | 20 +++----
 compiler/optimizing/pretty_printer_test.cc |  4 +-
 14 files changed, 387 insertions(+), 258 deletions(-)

46 Remove portable LLVM

https://android.googlesource.com/platform/art/+/956af0f0cb05422e38c1d22cbef309d16b8a1a12

commit 956af0f0cb05422e38c1d22cbef309d16b8a1a12
Author: Elliott Hughes <enh@google.com>
Date:   Thu Dec 11 14:34:28 2014 -0800

    Remove portable.

    Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc

 build/Android.common_build.mk                      |   36 -
 build/Android.executable.mk                        |    3 -
 build/Android.gtest.mk                             |   11 -
 compiler/Android.mk                                |   68 -
 compiler/common_compiler_test.cc                   |   75 +-
 compiler/compiled_method.cc                        |   74 +-
 compiler/compiled_method.h                         |   27 +-
 compiler/compiler.cc                               |   52 -
 compiler/compiler.h                                |   31 +-
 compiler/dex/frontend.cc                           |    2 -
 compiler/dex/frontend.h                            |    2 -
 compiler/dex/mir_optimization.cc                   |    3 +-
 compiler/dex/portable/mir_to_gbc.cc                | 2003 -----------
 compiler/dex/portable/mir_to_gbc.h                 |  241 --
 compiler/dex/quick/quick_compiler.cc               |   12 +-
 compiler/dex/verification_results.cc               |   12 +-
 compiler/driver/compiler_driver.cc                 |   40 +-
 compiler/driver/compiler_driver.h                  |   12 -
 compiler/driver/compiler_driver_test.cc            |    5 -
 compiler/driver/compiler_options.h                 |   19 -
 compiler/elf_writer_mclinker.cc                    |  411 ---
 compiler/elf_writer_mclinker.h                     |   98 -
 compiler/elf_writer_test.cc                        |   22 -
 compiler/image_test.cc                             |    5 -
 compiler/image_writer.cc                           |   40 +-
 compiler/image_writer.h                            |   11 +-
 compiler/jni/jni_compiler_test.cc                  |   41 -
 compiler/jni/portable/jni_compiler.cc              |  322 --
 compiler/jni/portable/jni_compiler.h               |   87 -
 compiler/llvm/art_module.ll                        |  153 -
 compiler/llvm/backend_options.h                    |   50 -
 compiler/llvm/backend_types.h                      |  104 -
 compiler/llvm/compiler_llvm.cc                     |  233 --
 compiler/llvm/compiler_llvm.h                      |  115 -
 compiler/llvm/gbc_expander.cc                      | 3796 --------------------

47 Enable optimizing Compiler

https://android.googlesource.com/platform/art/+/b34f69ab43aaf7a6e6045c95f398baf566ef5023

commit b34f69ab43aaf7a6e6045c95f398baf566ef5023
Author: Nicolas Geoffray <ngeoffray@google.com>
Date:   Fri Mar 7 15:28:39 2014 +0000

    Add command line support for enabling the optimizing compiler.

    Also run tests with the optimizing compiler enabled when
    the file art/USE_OPTIMIZING_COMPILER is present.

    Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8

 build/Android.common.mk                       |  17 +++
 compiler/Android.mk                           |   6 +-
 compiler/common_compiler_test.h               |   8 +-
 compiler/{compiler_backend.cc => compiler.cc} | 169 ++++----------------------
 compiler/{compiler_backend.h => compiler.h}   |  26 ++--
 compiler/compilers.cc                         | 152 +++++++++++++++++++++++
 compiler/compilers.h                          | 103 ++++++++++++++++
 compiler/dex/compiler_ir.h                    |   2 +-
 compiler/dex/frontend.cc                      |  25 ++--
 compiler/dex/mir_optimization.cc              |   2 +-
 compiler/driver/compiler_driver.cc            |  26 ++--
 compiler/driver/compiler_driver.h             |  10 +-
 compiler/llvm/compiler_llvm.cc                |   4 +-
 compiler/oat_test.cc                          |  10 +-
 compiler/optimizing/optimizing_compiler.cc    |  32 +++++
 dex2oat/dex2oat.cc                            |  32 ++---
 test/Android.mk                               |   9 +-
 17 files changed, 412 insertions(+), 221 deletions(-)