)]}'
{
  "log": [
    {
      "commit": "808c7a57bb913b13c22884f57cdacd59bf1fdb3f",
      "tree": "d7f0d7cabaac5a7646c25bae584a82a9aa279cc0",
      "parents": [
        "64bae9fb677aa0e2406d13ea9f8ebaa92e16f978"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 15 11:19:33 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 22 09:41:17 2017 -0800"
      },
      "message": "Make CodeItem fields private\n\nMake code item fields private and use accessors. Added a hand full of\nfriend classes to reduce the size of the change.\n\nChanged default to be nullable and removed CreateNullable.\nCreateNullable was a bad API since it defaulted to the unsafe, may\nadd a CreateNonNullable if it\u0027s important for performance.\n\nMotivation:\nHave a different layout for code items in cdex.\n\nBug: 63756964\nTest: test-art-host-gtest\nTest: test/testrunner/testrunner.py --host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I42bc7435e20358682075cb6de52713b595f95bf9\n"
    },
    {
      "commit": "33bff25bcd7a02d35c54f63740eadb1a4833fc92",
      "tree": "553db4f60878acf2a0fa7036a739d406df9a29b7",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 01 14:35:42 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 10:11:02 2017 +0000"
      },
      "message": "ART: Make InstructionSet an enum class and add kLast.\n\nAdding InstructionSet::kLast shall make it easier to encode\nthe InstructionSet in fewer bits using BitField\u003c\u003e. However,\nintroducing `kLast` into the `art` namespace is not a good\nidea, so we change the InstructionSet to an enum class.\nThis also uncovered a case of InstructionSet::kNone being\nerroneously used instead of vixl32::Condition::None(), so\nit\u0027s good to remove `kNone` from the `art` namespace.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6\n"
    },
    {
      "commit": "174b2e27ebf933b80f4e8b64b4b024ab4306aaac",
      "tree": "968cdd8d7fd68571115db77cc288807c3b257911",
      "parents": [
        "6783118d2ad9d759f0617b1219a9e29a10a569f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 13:34:49 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 17 11:12:08 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for code generation.\n\nReuse the memory previously allocated on the ArenaStack by\noptimization passes.\n\nThis CL handles only the architecture-independent codegen\nand slow paths, architecture-dependent codegen allocations\nshall be moved to the ScopedArenaAllocator in a follow-up.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 19.6MiB -\u003e 18.5MiB (-1189KiB)\n  BatteryStats.dumpLocked(): 39.3MiB -\u003e 37.0MiB (-2379KiB)\n\nAlso move definitions of functions that use bit_vector-inl.h\nfrom bit_vector.h also to bit_vector-inl.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: I84688c3a5a95bf90f56bd3a150bc31fedc95f29c\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "ba118827465d12177f3996e50133960087b1c916",
      "tree": "f39728cdafc7810004d51c0bef2728b98993daa9",
      "parents": [
        "64a102dde8c5daad83b991710decb418ce43aac5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 15:41:56 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 13:35:06 2017 +0100"
      },
      "message": "ART: Change method lookup to be more consistent to JLS and the RI.\n\nThe method lookup for different invoke types was previously\nwidely different and didn\u0027t work well with the dex cache\nmethod array where we have only a single slot for each\nMethodId. The new behavior is to perform the same lookup for\nall cases, distinguishing only between interface and\nnon-interface referencing class, and to further align the\nbehavior with the JLS and the RI. Where the JLS conflicts\nwith the RI, we follow the JLS semantics.\n\nThe new lookup for class methods first searches the methods\ndeclared in the superclass chain (ignoring \"copied\" methods)\nand only then looks in the \"copied\" methods. If the search\nin the superclass chain finds a method that has not been\ninherited (i.e. either a private method or a package-access\nmethod where one of the classes in the chain does not belong\nto the same package, see JLS 8.4.8), we still search the\n\"copied\" methods as there may actually be a method inherited\nfrom an interface. This follows the JLS semantics where\ninherited methods are included in the search (JLS 15.12.2.1)\nbut conflicts with the RI where the private or\npackage-access method takes precedence over methods\ninherited from interfaces.\n\nNote that this search can find an accessible method that is\nnot inherited by the qualifying type, either for a package\naccess method when the referrer is in the same package but\nthe qualifying type is in another package, or for a private\nmethod where the referrer is in the same class but the\nqualifying type is actually a subclass. For the moment we\nallow such calls and we shall consider whether to throw\nan IncompatibleClassChangeError in this situation in future\nto comply with JLS 15.12.4.3.\n\nThe new lookup for interface methods searches the interface\nclass, then all the superinterfaces and then the\njava.lang.Object class, see implicitly declared methods in\ninterfaces, JLS 9.2. The search for the maximally-specific\nnon-abstract superinterface method is not yet implemented,\nbut the difference should be difficult to observe as the\nusual subsequent call to FindVirtualMethodForInterface()\nshould yield the same result for any matching method.\n\nThe new test 162-method-idx-clash exposes several cases\nwhere we previously completely messed up due to the effects\nof the DexCache, or where we were out of line with the RI.\nIt also tests a case where the JLS and the RI disagree and\nwe follow the JLS.\n\nTest: art/test/run-test --host --jvm 162-method-resolution\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --interp-ac\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nBug: 62855082\nBug: 30627598\nChange-Id: If450c8cff2751369011d649c25d28a482a2c61a3\n"
    },
    {
      "commit": "8228cdf4ad6322ec8133564aaa51f966d36c0f17",
      "tree": "6d2f5cf4e742ad644ad30eb96a9f943c9ebcb34b",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 15:03:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:15 2017 -0700"
      },
      "message": "ART: Move CalleeSaveType to callee_save_type.h\n\nMove the type out of runtime to decrease dependencies. Make it\na proper enum class. Fix up usage.\n\nTest: m test-art-host\nChange-Id: Id84c44bf3c59f37c8a43548e720c5fb65707b198\n"
    },
    {
      "commit": "c15a2f4f45661a7f5f542e406282c146ea1a968d",
      "tree": "50ad6104b0b8739f272782c35a7022cca64d2601",
      "parents": [
        "9ae527f615f61aec4aaca310c52f373e8c3d8d58"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 21 12:09:39 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 21 16:48:00 2017 -0700"
      },
      "message": "ART: Add object-readbarrier-inl.h\n\nMove some read-barrier code into a new header. This prunes the\ninclude tree for the concurrent-copying collector. Clean up other\nrelated includes.\n\nTest: mmma art\nChange-Id: I40ce4e74f2e5d4c692529ffb4df933230b6fd73e\n"
    },
    {
      "commit": "cbcedbf9382bc773713cd3552ed96f417bf1daeb",
      "tree": "58eed766a69ddddbc41d21624244e14547fa1dff",
      "parents": [
        "ef62210a1466c133056c4bfdae9f8f5417065eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 12 22:24:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 10:20:34 2017 -0700"
      },
      "message": "Add method info to oat files\n\nThe method info data is stored separately from the code info to\nreduce oat size by improving deduplication of stack maps.\n\nTo reduce code size, this moves the invoke info and inline info\nmethod indices to this table.\n\nOat size for a large app (arm64): 77746816 -\u003e 74023552 (-4.8%)\nAverage oat size reduction for golem (arm64): 2%\n\nRepurposed unused SrcMapElem deduping to be for MethodInfo.\nTODO: Delete SrcMapElem in a follow up CL.\n\nBug: 36124906\n\nTest: clean-oat-host \u0026\u0026 test-art-host-run-test\n\nChange-Id: I2241362e728389030b959f42161ce817cf6e2009\n"
    },
    {
      "commit": "a2f526f889be06f96ea59624c9dfb1223b3839f3",
      "tree": "769f517e6664de0e89abeadf07a39d5410fcee42",
      "parents": [
        "64e50021845b1ad9d8851596e8aaddf18be217c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 14:48:48 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 20 15:47:06 2017 -0800"
      },
      "message": "Compressed native PC for stack maps\n\nCompress native PC based on instruction alignment. This reduces the\nsize of stack maps, boot.oat is 0.4% smaller for arm64.\n\nTest: test-art-host, test-art-target, N6P booting\n\nChange-Id: I2b70eecabda88b06fa80a85688fd992070d54278\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "fd36f1f927c138575184a1f4c7ea4e7abb3e2dbf",
      "tree": "2debb35c9193ac019071e0625986698ccbcaabb8",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 03 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 14:19:49 2016 +0100"
      },
      "message": "Rename callee save enumerators.\n\nAnd related image method enumerators, macros, etc.\nClean up some entrypoint assembly comments.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/252348\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I2707342d4255c88c547655be83ed97a67e12ae9e\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "9d07e3d128ccfa0ef7670feadd424a825e447d1d",
      "tree": "dfb677fd75f0f297fef9bc49311cf1d22c770f56",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 31 12:02:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 04 17:50:20 2016 +0100"
      },
      "message": "Clean up OatQuickMethodHeader after Quick removal.\n\nThis reduces the size of the pre-header by 8 bytes, reducing\noat file size and mmapped .text section size. The memory\nneeded to store a CompiledMethod by dex2oat is also reduced,\nfor 32-bit dex2oat by 8B and for 64-bit dex2oat by 16B. The\naosp_flounder-userdebug 32-bit and 64-bit boot.oat are each\nabout 1.1MiB smaller.\n\nDisable the broken StubTest.IMT, b/27991555 .\n\nChange-Id: I05fe45c28c8ffb7a0fa8b1117b969786748b1039\n"
    },
    {
      "commit": "562ff44698fc75f82e1f6cb0b71ce21df4328959",
      "tree": "fd7b7b17bdc7c99c229a52c892c9d478de67172d",
      "parents": [
        "3aa2895fe9d2cb8c7fb04154463d296c5eab4fee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 18:51:20 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 18:52:35 2015 +0000"
      },
      "message": "Revert \"Remove DCHECK that does not work for gtests.\"\n\nAnd fix the code alignment in gtests.\n\nThis reverts commit 7d32dbc02beac2cb0217d52b61f2b3ef9974ffa6.\n\nChange-Id: I68813c36d1493f2746ceb129b30a649350d6bc13\n"
    },
    {
      "commit": "1dad3f68b7f5a4a4cb2b281413357adc2309a8fd",
      "tree": "df482d1f65e55a9a228c925e96532942fb25eb47",
      "parents": [
        "fe97bfeabcf99d470e7d974a68ec6b6641648396"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 23 14:59:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 26 19:10:55 2015 +0000"
      },
      "message": "Support garbage collection of JITted code.\n\nChange-Id: I9afc544460ae4fb31149644b6196ac7f5182c784\n"
    },
    {
      "commit": "524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02",
      "tree": "ad07cc96f633bdae839ff2f1553d84b9c864a930",
      "parents": [
        "b697c447eb61c2e14315166ec3b0d16375ae403c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 17:13:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 11:52:11 2015 +0100"
      },
      "message": "Remove ArtCode.\n\n- Instead use OatQuickMethodHeader.\n- Various cleanups now that we don\u0027t have all those\n  ArtMethod -\u003e ArtCode -\u003e OatQuickMethodHeader indirections.\n\nAs a consequence of this cleanup, exception handling got a bit\nfaster.\n\nParserCombinators benchmark (exception intensive) on x64: (lower is better)\nBefore:\nParserCombinators(RunTime): 1062500.0 us.\nAfter:\nParserCombinators(RunTime): 833000.0 us.\n\nChange-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3\n"
    },
    {
      "commit": "6bc4374e3fa00e3ee5e832e1761c43e0b8a71558",
      "tree": "38118523aa6b9a92fbdcd7bf1d32ca6185a3d3f0",
      "parents": [
        "16065ce56394c73c87dcb78ead4164ddc80fddb3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 12 18:11:10 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 12:05:27 2015 +0100"
      },
      "message": "Add an abstraction over a compiled code.\n\nThat\u0027s just step 1, moving code-related functions of ArtMethod to\nanother class. That class is only a wrapper on an ArtMethod, but will\nbe changed to be a wrapper around compiled code.\n\nChange-Id: I6f35fc06d37220558dff61691e51ae20066b0dd6\n"
    },
    {
      "commit": "72f7b880d5d0057b9fac3a51ef3a0f22909bc633",
      "tree": "5a5a92f0c52bd334f662ba2f51885540874973bb",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:00:52 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:50:43 2015 +0100"
      },
      "message": "ART: Fix 004-ReferenceMap run test\n\nThis patch adds a new option to ArtMethod::ToNativeQuickPc to select\nthe order of iteration over stack maps. The method is only used by\nthe runtime to find native_pc of catch blocks, but also by the\n004-ReferenceMap test which uses it to find native_pc of a safepoint.\n\nChange-Id: Idb2b34aabf1ac7249c30a00806af7d63d7e682dd\n"
    },
    {
      "commit": "f9f6441c665b5ff9004d3ed55014f46d416fb1bb",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 14:05:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 20:16:58 2015 +0100"
      },
      "message": "Optimizing: Tag Arena allocations with their source.\n\nThis adds the ability to track where we allocate memory\nwhen the kArenaAllocatorCountAllocations flag is turned on.\n\nAlso move some allocations from native heap to the Arena\nand remove some unnecessary utilities.\n\nBug: 23736311\nChange-Id: I1aaef3fd405d1de444fe9e618b1ce7ecef07ade3\n"
    },
    {
      "commit": "14d90579f013b374638b599361970557ed4b3f09",
      "tree": "fe8f9f7b527e73c20078557eefd74615c2cfc7f8",
      "parents": [
        "5c03f3698f5e2e0d762e2e15ec00310b6cdab4fe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "message": "Use (D)CHECK_ALIGNED more.\n\nChange-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "956af0f0cb05422e38c1d22cbef309d16b8a1a12",
      "tree": "b558c804d206dad8da648b815750f1b3c97610ae",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 11 14:34:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 09:33:34 2014 -0800"
      },
      "message": "Remove portable.\n\nChange-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc\n"
    },
    {
      "commit": "957ca1cd025104fccb0b08928f955f9bdb4ab91c",
      "tree": "913ceffe992bb25898ac79977b47dc2af8b3354b",
      "parents": [
        "4d3ed1a6f34bd31ed30faaca0433cf2a4b19bb7b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 21 16:51:29 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 24 10:44:33 2014 -0800"
      },
      "message": "Delete ArtMethod gc_map_ field\n\nMoved the gc_map field from OatMethod to OatQuickMethodHeader.\nDeleted the ArtMethod gc_map_ field.\n\nBug: 17643507\n\nChange-Id: Ifa0470c3e4c2f8a319744464d94c6838b76b3d48\n\n(cherry picked from commit 807140048f82a2b87ee5bcf337f23b6a3d1d5269)\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "cf4035a4c41ccfcc3e89a0cee25f5218a11b0705",
      "tree": "323d9e98e6129c67e464a3e6857ee02593a2f2c2",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 28 22:43:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 20:50:49 2014 -0700"
      },
      "message": "ART: Use StackReference in Quick Stack Frame\n\nThe method reference at the bottom of a quick frame is a stack\nreference and not a native pointer. This is important for 64b\narchitectures, where the notions do not coincide.\n\nChange key methods to have StackReference\u003cmirror::ArtMethod\u003e*\nparameter instead of mirror::ArtMethod**. Make changes to\ninvoke stubs for 64b archs, change the frame setup for JNI code\n(both generic JNI and compilers), tie up loose ends.\n\nTested on x86 and x86-64 with host tests. On x86-64, tests succeed\nwith jni compiler activated. x86-64 QCG was not tested.\n\nTested on ARM32 with device tests.\n\nFix ARM64 not saving x19 (used for wSUSPEND) on upcalls.\n\nTested on ARM64 in interpreter-only + generic-jni mode.\n\nFix ARM64 JNI Compiler to work with the CL.\n\nTested on ARM64 in interpreter-only + jni compiler.\n\nChange-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "7624d25dad2d1ba25969ae704fccf68649103ae5",
      "tree": "de72194b76a4e23e0b15ec4085447ae7e4425815",
      "parents": [
        "e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 14:40:15 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 11:43:22 2014 +0100"
      },
      "message": "Move quick frame info to OatQuickMethodHeader.\n\nRename OatMethodHeader to OatQuickMethodHeader, move frame\ninfo from OatMethodOffsets to OatQuickMethodHeader. Retrieve\nthe info from other places for non-quick methods (portable\ncompiled bytecode or jni stub, generic jni, runtime,\nabstract and proxy).\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields for frame size and spills.\"\n  https://android-review.googlesource.com/94164\n\nBug: 11767815\nChange-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f\n"
    },
    {
      "commit": "8a630577ed2d9e9571c3434c505e5de223b23c07",
      "tree": "106367100c639011f0abb72b3b0e227c0764e8e0",
      "parents": [
        "96c6ab93336b972a38bd2448bcccf19188b8389b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 09 18:45:35 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 25 12:24:46 2014 +0100"
      },
      "message": "Move mapping table and vmap table offsets to OatMethodHeader.\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields mapping table and vmap table.\"\n  https://android-review.googlesource.com/91254\n\nBug: 11767815\nChange-Id: I46ce2067e1ecd915da3890606498e31ffc332813\n"
    },
    {
      "commit": "ee1d79a603c77c0667b27c075a983579d5c51f7e",
      "tree": "7b23516402105319ab4736cd179a1de9101eeb46",
      "parents": [
        "78bd9b2198f0ccc48036c1517b2d9a9023157dfb"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 21 15:46:30 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 02 09:21:12 2014 +0200"
      },
      "message": "Cleanup transaction support\n\nUpdates Thread::CreateInternalStackTrace to support both transactional and\nnon-transactional modes using template.\n\nGeneralizes non-transactional mode for invariant fields (which are set only\nonce).\n\nRemoves ArrayLog::VisitRoots as we never create Array logs of ObjectArray. As\nObjectArray elements are set using Object::SetFieldObject, they are already\nrecorded in the object logs: the object is the array itself and the offset\ncorresponds to the element index in this array. And also checks we never log\nObjectArray in array logs.\n\nFixes location of thrown exception when calling native method during class\ninitialization.\n\nChange-Id: Idbc368d3b8292b85ff40bc8a7c559e085477bf89\n"
    },
    {
      "commit": "53b8b09fc80329539585dcf43657bc5f4ecefdff",
      "tree": "cac0f82fbb89bd907104e3fed6c36203e11a3de0",
      "parents": [
        "0dea9872082bc3e576ed6cefed86b0d6c0c45ffd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 23:45:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 11:28:10 2014 -0700"
      },
      "message": "Refactor reflective method invocation.\n\nMove invocation code out of JNI internal into reflection, including ArgArray\ncode. Make reflective invocation use the ArgArray to build arguments rather\nthan allocating a jvalue[] and unboxing arguments into that.\nMove reflection part of jni_internal_test into reflection_test.\nMake greater use of fast JNI.\n\nChange-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057\n"
    },
    {
      "commit": "cfa5c4805b9e756aaa142047306bad2b13107834",
      "tree": "067839e9acc27de8c6c4abf7e5447ec943a50250",
      "parents": [
        "63dcdff34c40a64df6939ea5bba71813abd2acd3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 14:11:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 14:20:31 2014 -0700"
      },
      "message": "Fix tests for 64b\n\nThese tests make assumptions about pointer sizes.\n\nChange-Id: Idfd410144393d716ae176a6e9a51c5b414e0888e\n"
    },
    {
      "commit": "bf6b92a158053c98b15f4393abb3b86344ec9a20",
      "tree": "93a28d1e01b045a8df23fe5279601496b62af3dd",
      "parents": [
        "359597ee8c0667a7d2c0b74dcbb0f90bb6059bae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 05 16:11:04 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 22:32:53 2014 -0800"
      },
      "message": "Generic JNI implementation for x86_64\n\nStarting implementation for generic JNI on x86_64. Frames are of\nlarge static size (\u003e4K) right now, should be compacted later. Passes\nthe whole of jni_compiler_test.\n\nChange-Id: I88ac3e13a534afe7568d62a1ef97cb766e8260e4\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "2e589aa58a1372909f95e731fd6b8895f6359c3a",
      "tree": "6337f7e4765a6c6c1ba5d21e9f3f7c4ebe4971ee",
      "parents": [
        "661425e1f90d4f4ed44c66f5e74f48b92a3798df"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 17:53:53 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 19:03:17 2014 +0000"
      },
      "message": "Encode VmapTable entries offset by 2 to reduce size.\n\nWe\u0027re using special values 0xffff and 0xfffe for an\nfp register marker and for method pointer, respectively.\nThese values were being encoded as 3 bytes each and\nthis changes their encoding to 1 byte.\n\nBug: 9437697\nChange-Id: Ic1720e898b131a5d3f6ca87d8e1ecdf76fb4160a\n"
    },
    {
      "commit": "9837939678bb5dcba178e5fb00ed59b5d14c8d9b",
      "tree": "00f0e6b54d7c4cac78a02752e268724157e50b6e",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 16:53:16 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 18:47:23 2014 -0800"
      },
      "message": "Avoid std::string allocations for finding an array class.\n\nIntroduce ClassLinker::FindArrayClass which performs an array class lookup\ngiven the element/component class. This has a 16 element cache of recently\nlooked up arrays.\nPass the current thread to ClassLinker Find .. Class routines to avoid calls\nto Thread::Current().\nAvoid some uses of FindClass in the debugger where WellKnownClasses is a\nfaster and more compacting GC friendly alternative.\n\nChange-Id: I60e231820b349543a7edb3ceb9cf1ce92db3c843\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "c528dba35b5faece51ca658fc008b688f8b690ad",
      "tree": "d95c113a639d07f7e3b88e8a6caa9b5f6e044801",
      "parents": [
        "76f552307ee980221626d1dff0ada56c989d24ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 26 12:00:11 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 16:00:58 2013 -0800"
      },
      "message": "Enable moving classes.\n\nSlight reduction in Zygote size, memory savings are in the noise.\nBefore: Zygote size: 8739224\nAfter: Zygote size: 8733568\n\nFixed a bug where we didn\u0027t set the concurrent start bytes after\nswitching the allocator from bump pointer to ROSAlloc in the\nzygote. This caused excessive memory usage.\n\nAdded the method verifiers as roots to fix an issue caused by\nRegTypes holding a Class*.\n\nAdded logic to clear card table in the SemiSpace collector, this\nreduces DalvikOther from ~2400k -\u003e ~1760k when using the SemiSpace\ncollector.\n\nAdded a missing lock to the timing loggers which caused a rare\none time crash in std::set.\n\nBug: 11771255\nBug: 8499494\nBug: 10802951\n\nChange-Id: I99d2b528cd51c1c5ed7012e3220b3aefded680ae\n"
    },
    {
      "commit": "1e6cb63d77090ddc6aa19c755d7066f66e9ff87e",
      "tree": "7cffe82e563757521da204c5dfbd3fff41dde7ed",
      "parents": [
        "00ce185371be9930dfd75e5acc2258a1139b558e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 28 16:27:29 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 29 10:14:39 2013 +0000"
      },
      "message": "Delta-encoding of mapping tables.\n\nBoth PC offsets and dalvik offsets are delta-encoded. Since\nPC offsets are increasing, the deltas are then compressed as\nunsigned LEB128. Dalvik offsets are not monotonic, so their\ndeltas are compressed as signed LEB128.\n\nThis reduces the size of the mapping tables by about 30%\non average, 25% from the PC offset and 5% from the dalvik\noffset delta encoding.\n\nBug: 9437697\nChange-Id: I600ab9c22dec178088d4947a811cca3bc8bd4cf4\n"
    },
    {
      "commit": "590fee9e8972f872301c2d16a575d579ee564bee",
      "tree": "b02db45c72f1911ec896b93379ada0276aea3199",
      "parents": [
        "5b70680b8df6d8fa95bb8e1070d0107f3d388940"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 13:46:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 11 15:34:27 2013 -0800"
      },
      "message": "Compacting collector.\n\nThe compacting collector is currently similar to semispace. It works by\ncopying objects back and forth between two bump pointer spaces. There\nare types of objects which are \"non-movable\" due to current runtime\nlimitations. These are Classes, Methods, and Fields.\n\nBump pointer spaces are a new type of continuous alloc space which have\nno lock in the allocation code path. When you allocate from these it uses\natomic operations to increase an index. Traversing the objects in the bump\npointer space relies on Object::SizeOf matching the allocated size exactly.\n\nRuntime changes:\nJNI::GetArrayElements returns copies objects if you attempt to get the\nbacking data of a movable array. For GetArrayElementsCritical, we return\ndirect backing storage for any types of arrays, but temporarily disable\nthe GC until the critical region is completed.\n\nAdded a new runtime call called VisitObjects, this is used in place of\nthe old pattern which was flushing the allocation stack and walking\nthe bitmaps.\n\nChanged image writer to be compaction safe and use object monitor word\nfor forwarding addresses.\n\nAdded a bunch of added SIRTs to ClassLinker, MethodLinker, etc..\n\nTODO: Enable switching allocators, compacting on background, etc..\n\nBug: 8981901\n\nChange-Id: I3c886fd322a6eef2b99388d19a765042ec26ab99\n"
    },
    {
      "commit": "ba150c37d582eeeb8c11ba5245edc281cf31793c",
      "tree": "ca12cf82602e4b78b2a6ca463e9d0e35fc5e3ff6",
      "parents": [
        "3c2a6e2468e3e519ade6c3cfcaad7cd34243cdf1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 27 17:31:03 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 00:06:03 2013 -0700"
      },
      "message": "Omit OatMethodOffsets for classes without compiled code\n\nChange-Id: If0d290f4aebc778ff12d8fed017c270ad2ac3220\n"
    },
    {
      "commit": "8f3c9ae38df2460940a26dff889a84430b6c38d3",
      "tree": "55d5858382e5f66211db96d587b06914bad850d7",
      "parents": [
        "b8a0b94735f188bc739e4c55479c37699006b881"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 17:26:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 21 16:31:42 2013 -0700"
      },
      "message": "Don\u0027t allow class status to go backward except for error.\n\nAllow greater parallelism of initialization.\nBug 10393546.\n\nChange-Id: Ic194ed490bb0a986250c09fcf335eb1be9714657\n"
    },
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "1809a72a66d245ae598582d658b93a24ac3bf01e",
      "tree": "f864ff869185b2873637ca70584c66fd6a1e899d",
      "parents": [
        "a9a50926963b5093fb851ed966d201f3e95f72d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:05:32 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:23:50 2013 -0700"
      },
      "message": "Uleb128 compression of vmap and mapping table.\n\nBug 9437697.\n\nChange-Id: I30bcb97d12cd8b46d3b2cdcbdd358f08fbb9947a\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "aa4a793d7175ceeb1efa215c2af5e52e42b22f0a",
      "tree": "9c3db54a108d4327471c6d4890d28cdfe1f030ff",
      "parents": [
        "167436311a08a65dea28dda079a137893821c9c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 11:28:27 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 13:14:19 2013 -0700"
      },
      "message": "Rename abstract method code_ to entry_point_from_compiled_code_.\n\nChange-Id: I9b02d2df95bbeafa6e6387b461f574c57337a61e\n"
    },
    {
      "commit": "4f6ad8ab428038129b2d0d6c40b7fd625cca15e1",
      "tree": "d1025ed9203d0cdf7aa959d9cecd8dc1f0c0bfeb",
      "parents": [
        "aabe8adacc7bf3a8ab6f6f3dd37fc839b6fd762f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:27:28 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:29:59 2013 -0700"
      },
      "message": "Various performance improvements.\n\nPerformance had regressed due to verify object and method invocation changes.\nAvoid trampolines for static calls in same class.\nVarious inlining changes.\nMake verify object something that\u0027s only compiled-in in debug builds.\n\nChange-Id: Ia261a52232c3b10667c668f8adfadc0da3048bc5\n"
    },
    {
      "commit": "04d7aa92bc5548bc4d272b9480614f06248194cc",
      "tree": "2b399853daab91995488c7d19a694063262f6531",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 16 14:29:17 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 16 14:29:17 2013 -0700"
      },
      "message": "Fix object verification.\n\nRefactor VERIFY_OBJECT_ENABLED to become less brittle to change enum and global\nconstant.\n\nChange-Id: Ie405106be81dce9a913730c7f46a5659582fa18b\n"
    },
    {
      "commit": "bd86bccf1b47f1151842152ee52cf5d46d6b34ab",
      "tree": "c0c110b47435c6e8548f1b7126f9ea20da7fd934",
      "parents": [
        "5d021c7399fa8090910d5b47ed00465a4e0e7e0f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 10 20:26:16 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 11 15:47:02 2013 -0700"
      },
      "message": "Tracking rebase to jb-mr1-release\n\nChange-Id: Ic2ae1a27682cc4152003a68d59068b2c5c5eb09b\n"
    },
    {
      "commit": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\n"
    },
    {
      "commit": "2dd0e2cea360bc9206eb88ecc40d259e796c239d",
      "tree": "9d619dc9508cbe73e4793bf6f08cbc761abfb48a",
      "parents": [
        "ac21b797b3a425975d656d6b84a7b24401d35f42"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 24 12:42:14 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 30 16:48:31 2013 -0800"
      },
      "message": "Directory restructuring of object.h\n\nBreak object.h into constituent files.\nReduce number of #includes in other GC header files.\nIntroduce -inl.h files to avoid mirror files #include-ing each other.\nCheck invariants of verifier RegTypes for all constructors.\n\nChange-Id: Iecf1171c02910ac152d52947330ef456df4043bc\n"
    },
    {
      "commit": "4445a7e3398a6143939168097a3aa275b734504d",
      "tree": "9eda34219b4a840125694a86ddba49077e15b944",
      "parents": [
        "50b35e2fd1a68cd1240e4a9d9f363e11764957d1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 17:19:13 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 06 09:48:02 2012 -0700"
      },
      "message": "Class clean-up.\n\nMove Class code out of native and into Java.\nRemove ClassLinker::FindDexFile.\n\nChange-Id: Idd9c4563d2c32e76690675242ff491276ace9848\n"
    },
    {
      "commit": "1f5393447b9f45be7918042d9ee7b521376de866",
      "tree": "1793cb0ae00b38a63f8cfd3a25b6cb0ee4edca16",
      "parents": [
        "870ea4772199f8d4cbd9a269f9093620ee50a59c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 21:09:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 09:27:04 2012 -0700"
      },
      "message": "Make PopSirt inlinable, pass self to SirtRef.\n\nChange-Id: Ieb91526b1cb1f8644ceb3c5b99649f658f43bbc1\n"
    },
    {
      "commit": "a5b3024aed77a8204d5fb48ba7f763fb8c60fa76",
      "tree": "d9b046896b73519302c8b54a97a3abfa8ecfdf4c",
      "parents": [
        "a75a01313e801c53145df00bad1842d9f643c0a1"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 28 07:19:44 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 28 15:41:57 2012 -0700"
      },
      "message": "Split dex_pc\u003c-\u003enative_pc mapping table\n\nFirst of 2 related CLs - this one moves to a split table, a future\nCL will compress the table to save image space.\n\nThe current MappingTable mixes two flavors of entries: dex-\u003epc and\npc(return address)-\u003edex.  The problem is that we can have two\nentries with the same native pc address but two different dex pcs.\nThe reason is that when we go from native pc to dex, the native\npc is actually the return address from the previous call, whereas\nwhen we go from dex to native pc, the mapping refers to the first\nnative instruction of the sequence.\n\nPreviously, the first entry in the mapping table was the number\nof subsequent entries.  That will remain the same, but now\nthe second entry will be a count of the number of entries in\nthe pc-\u003edex section of the table.  The difference between the\ntwo counts gives us the number of entries in the following dex-\u003epc\nsection.\n\nChange-Id: Ibadb96cb50bf1f93e079dff3832130b9f9782723\n"
    },
    {
      "commit": "5a6220c9068f8401394664b56a725441dba17948",
      "tree": "6d1d1edf74c854c5bdb76d694af97d6c4b367dec",
      "parents": [
        "952a94a11e48b8c21d6c51ebf1975208eda2e1ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 24 10:52:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 24 10:52:10 2012 -0700"
      },
      "message": "Fix exception_test for verify stack.\n\nCreate a fake native GC map as the verifier no longer creates the GC\nmap.\n\nChange-Id: I94cfe444d8e9fec16e2affdf36b77fd32950f8f2\n"
    },
    {
      "commit": "66f19258f9728d4ffe026074d8fd429d639802fa",
      "tree": "fd94009774c6cbbb1528ea096e606133bd35f104",
      "parents": [
        "a5e1e3d153990845d80cb8d013157210f11a473c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 18 08:57:04 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 21 17:32:56 2012 -0700"
      },
      "message": "Change dex cache to be java object instead of array, add pointer to dex file in dex cache.\n\nGeneric clean up to facilitate having GDB macros for Pretty* helper functions.\n\nImproved cleanliness of DexCache since having it as an object array was not the best solution.\n\nFixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.\n\nRename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.\n\nRename done to have the C++ code be closer to the java code.\n\nChange-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9\n"
    },
    {
      "commit": "0c7abda482f53db3d153c073d1c7a145f84e0626",
      "tree": "837b89c75f0047cbcd16c9121739069a36b4f22a",
      "parents": [
        "ba0b9c55adce3f533845ab1b25c552589e5b4118"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 19 13:33:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 15:26:35 2012 -0700"
      },
      "message": "NativePcOffsetToReferenceMap\n\nRather than translate a native PC to a Dex PC and then to the reference\nbitmap, just go straight from the native PC to the reference bitmap.\nEncode the native PC offsets using a hash rather than linearly\nsearching.\n\nChange-Id: Iee1073d93c941c0a31f639e5f23cea9e9f747bee\n"
    },
    {
      "commit": "8320f3867c02bae9bef6cdab267820cb7b412781",
      "tree": "7e2211068ccbd17da7e9c83d24b10fdd9db28c39",
      "parents": [
        "c7b83a0d8ac73bdfff751619ae2a34948e3534b7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 11 16:29:42 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 13 10:49:20 2012 -0700"
      },
      "message": "Prune useless entries from dex to pc map\n\nStep one of the change.  Limit entries in the table to native\ncode safepoint locations (which generally are the return PC\naddresses of any call that might trigger a stack walk and the\nstart addresses of all catch blocks).\n\nPreviously, the mapping_table described ranges.  No longer.  Any\nnative PC located within compiled Dex code that is found in a\nstack walk should have an exact match in the table.\n\nIn future CLs we\u0027ll add data compression (probably uLeb128) and\nmay add inflation on first use to a faster access map (instead of\nthe current linear search).\n\nNote that this CL introduces somewhat of a regression in the\ncapabilities of oat-dump.  Because the mapping table no longer\nassociates each native intruction with its Dex counter-part, the\nnative code disassembly no longer includes interspersed Dex\ndisassembly.\n\nNote also that as of this CL, the compiler is adopting the 100-char\nline length limit used in the rest of Art.  The 80-char limit\nshould still be used in any code that we expect to upstream to\nllvm.\n\nChange-Id: I1beca4d57c41e8161bf746bc62abbce08d5bcb4d\n"
    },
    {
      "commit": "0fb6bb558feebfcb9e0ddc1a58cbcb3f61da758d",
      "tree": "ad89430cac6ea05b7c5f113e09533d743520b442",
      "parents": [
        "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:10:19 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:10:19 2012 -0700"
      },
      "message": "Fix exception_test for ART_USE_LLVM_COMPILER.\n\nChange-Id: I1de9d3ba431a652260ec4e97b3c4e00829e1c6d1\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "342a262d41224c719ba8773de28bedf959f0d6bb",
      "tree": "8924a9fb630f3e3036be0e7c9454adcf81ec25a9",
      "parents": [
        "78a5e15629e6591090582cd83b1ec1380a50a840"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 28 12:04:52 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 28 14:53:15 2012 -0700"
      },
      "message": "Fix exception gtest for when we have VERIFY_OBJECT_ENABLED \u003d 1.\n\nExceptionHandle class was not being initialized in the test resulting in a null gc_map caused assert failure.\n\nWe didn\u0027t have null values at the end of the frame, this resulted in unaligned object error.\n\nChange-Id: I30219d63732830799ff9cc9449c8e8834514393b\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "a168c83a1d247094e9efb1244b0f73a5f1e1ed97",
      "tree": "d0fb5a91a00227eda6b430fd64f2a1bff5271723",
      "parents": [
        "289be85116aaf7c48413858b5d0448868b4e61f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "message": "Convince tsan that the card table isn\u0027t a problem.\n\nAlso move the #include \u003csys/mman.h\u003e into \"mem_map.h\", since it\u0027s\ncurrently not possible to make any use of the latter without the\nformer. If we care about the pollution, we should offer our own\nconstants as part of our API.\n\nChange-Id: I01ec451d23c1d8afb8cb8a6660af8d9723faf5f5\n"
    },
    {
      "commit": "c8dc101f8e89feb588de3326bd9be0b84228ca2a",
      "tree": "22a62a4fa08fcada514f6d6f4497dcef5a2221e5",
      "parents": [
        "8cfa88200fcae8dd0a9c4d3cadffc9284985c771"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Thu Apr 19 07:03:33 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 15:08:42 2012 -0700"
      },
      "message": "Use dex_pc instead of line_number.\n\nChange-Id: I3759319562428bccabccc66d7afd691682ecca55\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "8aa7efe2532bf52cd804405aca6a662d25129e73",
      "tree": "7240572634e80712da053883a8d3b9ca174a307e",
      "parents": [
        "e103141a78d705f2009b7f98c9a9df201dda63a7"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Mar 25 15:52:44 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 29 21:08:22 2012 -0700"
      },
      "message": "Fix exception_test for (USE_LLVM_COMPILER) build.\n\nChange-Id: I562691fe5f6a847e50882126d6004d2aa44b8a86\n"
    },
    {
      "commit": "57b86d47b66322693a070185fadfb43cb9c12eab",
      "tree": "81d53304a63a660a683917a19f7dd83723a397ad",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 27 16:05:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 11:51:44 2012 -0700"
      },
      "message": "Refactor runtime support.\n\nChange-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df\n"
    },
    {
      "commit": "a43e0937c62719a405ce64888892facaead122df",
      "tree": "8183b6dd0e71ae115317c7e192adc759ea1e1ab4",
      "parents": [
        "6ff0536ba09248eecf9dbcc046c10533ba92a262"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 18:35:33 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 18:35:33 2012 -0700"
      },
      "message": "Disarm an assertion that exception_test violates.\n\nChange-Id: I2e9079d254a9132ec1c66fe4856e0d4b881a7b5d\n"
    },
    {
      "commit": "02f01fedc5180d1d5a795674f8c5bd0a3ce974d2",
      "tree": "a7984e631466aa39943082a771043b36855a0bde",
      "parents": [
        "b4669208ee02f16c198eb21332701b6a0c5af278"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 12:58:11 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:13:11 2012 -0700"
      },
      "message": "Fix exception_test for (USE_LLVM_COMPILER) build.\n\nFinally tdy\u0027s patch marks the passing of all gtests on host.\n\n(cherry picked from commit daadfea12645ffafefa1c7debe1178ffc0db1148)\n\nChange-Id: I73ad33cba74d728716cee3656cd76b4be6febe1e\n"
    },
    {
      "commit": "f8bbb8448c733e9e3ad43aad69774c37888329b1",
      "tree": "b0f488b0d95c1fe79bc0473e4a98670ceb905139",
      "parents": [
        "98d39884f64d13aada5e716bb38e2f069c7ad0a7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 14 03:01:42 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 15 03:30:20 2012 -0700"
      },
      "message": "Add code size to oat files\n\nChange-Id: Ic2519551864dd7090ba98f2fc92318f95f92947f\n"
    },
    {
      "commit": "46f060a53fffc14333096f0a48f95730ee4768ee",
      "tree": "e29bd9d927e315191840e81fd1ddbcfbddaa04cc",
      "parents": [
        "b3cd1229e6904365ca0ca2a7bbc4701ad1908154"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 17:36:50 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 17:36:50 2012 -0800"
      },
      "message": "Move other compiler bits into the compiler shared libraries.\n\nChange-Id: I288337af4c70716709217ff2d21050ba5f858807\n"
    },
    {
      "commit": "267364429db05d964c0922a8b4e49591c00bdc35",
      "tree": "748cbfd0b73858824614f67a1e06a3811639da9b",
      "parents": [
        "a004aa933a58428489e42d77f707c2b063b73747"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 18:24:26 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 18:24:26 2012 -0800"
      },
      "message": "Fix SEGV when allocation does not fail in stack trace building\n\nChange-Id: Ic01f95d4b4b90b38510c448b05d2efbac95d9c7c\n"
    },
    {
      "commit": "06ed7398846d788d5c658bb6c4fef7c965af87ef",
      "tree": "1c922abaa217543e6c56a5a80c5803ba5417b060",
      "parents": [
        "2faa5f1271587cda765f26bcf2951065300a01ff"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 31 01:25:48 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 31 02:20:58 2012 -0800"
      },
      "message": "Adjust expected line numbers in tests to account for fixed copyright headers\n\nChange-Id: Iac6305eaf67a6857c385b850104534860febbcd0\n"
    },
    {
      "commit": "2faa5f1271587cda765f26bcf2951065300a01ff",
      "tree": "c59557857c36741cfcd1b6bf5ae039886a8ad6e7",
      "parents": [
        "0850c69c88d49efd4075288511b70d6c032bd0c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 14:42:07 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 16:46:29 2012 -0800"
      },
      "message": "Fix copyright headers.\n\nChange-Id: I5b7bc76a370238d810d78522bd5531600746700f\n"
    },
    {
      "commit": "2e3d1b262af0839380e1d60e86d8b281943ef944",
      "tree": "f703c068e2a037d12dac592e1ebc6f1849ce4fbf",
      "parents": [
        "d170fc48b0895ee98ec0d6e3cf1987c8260af95d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 18:01:56 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 21:20:50 2012 -0800"
      },
      "message": "Changes to compile with gcc 4.6\n\nChange-Id: I55908b3b98b49373ce948fd1f12e0a5cd56ae4f7\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "d81871cbbaa34c649e488f94f61a981db33123e5",
      "tree": "a3adf3b7469fee507a4d4c4491942fbd48b4483d",
      "parents": [
        "262bf46ddc91e5b4fbd367127ff21a1877d939f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 03 13:57:23 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 24 11:56:15 2011 -0700"
      },
      "message": "Verifier clean up.\n\nThis is the first part in trying to move to a more rigorous mode of\nasserting the validity of garbage collection maps.\nIn the bring over of the verifier from Dalvik a large class had been\ncreated where all of the Dalvik/Dex functions were static methods of\nthat class. This rewrite introduces 3 key classes, Verifier that\norchestrates the verification of a method, RegisterLine which describes\nthe types associated with registers for a particular PC and RegType\nwhich describes the current type of a register within a line. The\nfunctionality is brought over from Dalvik but cleaned up to not do\nthings like goto. Failing within the verifier is also cleaned up. By\nvirtue of having stateful objects the interfaces between different\naspects of the verifier are greatly simplified.\nTo save space, RegTypes are cached upto a maximum possible 2^16, and\ngiven an Id. As the number of RegTypes is typically small this means\nthat we have a full OO implementation but at a lower space cost than the\ncurrent convention that uses botched together enum values requiring\n32bits of storage in a RegisterLine rather than 16bits (ie half the\nspace requirement per register in a register line). To make use of\nthis space more rigorous monitor verification is brought back, and\nultimately I think we can work around bug 3215458 with richer RegTypes\nthat are aware of literal objects.\nThe code removes short cuts that had been added to Dalvik\u0027s verifier and\nappear illegitimate, it also fixes a large number of bugs in the\ndescription of the verifier.\nWhere possible the spaghetti of code is replaced with straight line\nif-then-elsif.. code that clearly follows the ordering semantics of the\nspecification. The code is also aiming toward having a more type\nrigorous description of the verification process, and when this isn\u0027t\npossible following the description convention of the specification.\n\nChange-Id: Id25b742018a2ad5ea95687973cca610d7e19513c\n"
    },
    {
      "commit": "40381fb9dc4b4cf274f1e58b2cdf4396202c6189",
      "tree": "8281b105d3e8a0850984f0ee182db01c33613f27",
      "parents": [
        "b06631143b944388fc68bedf6679c006dde5f461"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 19 14:13:40 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 12:19:25 2011 -0700"
      },
      "message": "Reuse SIRT for C++ references\n\nChange-Id: I8310e55da42f55f7ec60f6b17face436c77a979f\n"
    },
    {
      "commit": "3b6baaa203fa63f1522b2172a1645f90412afdae",
      "tree": "7de428a7d53f2b2b9c2274d49181befd5786b8fa",
      "parents": [
        "7abe9c933402f01d638086b2715b09b64b8595e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 14 19:13:56 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:01:28 2011 -0700"
      },
      "message": "Bring our native stack usage down.\n\nI\u0027d have preferred to have a 512-byte limit, but there are some monsters\nin the verifier; 2000-line functions and the like. I\u0027m also not policing\ntests (except for one silly one). They can use all the stack they like.\n\nThis fixes the IntMath test (the stack overflow test was failing because\nwe were using more than 4KiB to throw!).\n\nChange-Id: I7e53e2fde2b39fde1910f8ee5b1712e8a66069c7\n"
    },
    {
      "commit": "a43cb5e8fb29989dbb986b9b91a68cda150aa3c8",
      "tree": "de48a2f28f3515b8c668adbcf7d632cf6f76bbf1",
      "parents": [
        "3320cf46afd082398aa401b246e6f301cebdf64d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 11:37:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 12:13:53 2011 -0700"
      },
      "message": "Fix exception_test.cc and thread.cc and revert 3ddac99d4dc6a036fac59d8f0bdc664ef619fb04.\n\nThe test was wrong, and jni_compiler_test failed too because we\u0027d missed one\nplace where we need to mangle the PC.\n\nChange-Id: Ib67ca081e17b5ee8b8c64696082858b212b157f1\n"
    },
    {
      "commit": "3320cf46afd082398aa401b246e6f301cebdf64d",
      "tree": "99ef2b240ad81fa7cafa0bca51ca2364120fa762",
      "parents": [
        "4f0d07c783afef89703dce32c94440fc8621a29b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 14:58:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 11:59:20 2011 -0700"
      },
      "message": "Move rest of code related blobs from Method to oat\n\nChange-Id: I55041b564ab65317c8b1f863005f20ba650a0322\n"
    },
    {
      "commit": "1cb0a1dfc32531c79a968aeac26ccb5525862497",
      "tree": "61d0345bd2b9b951026c9ce18d51c2b2d6963255",
      "parents": [
        "40c47b50f6c37ff2af919a0d51f12d3e7cc794a3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 15:24:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 17:27:15 2011 -0700"
      },
      "message": "Support for resolving unknown direct/static methods.\n\nIf we can\u0027t resolve a method we don\u0027t know whether it is direct or\nstatic from the dex information (other than the invocation instruction).\nAdd support for a third type of resolution stub that can discover the\ntype of the method based on the calling method and PC of the invocation\ninstruction. Its still unimplemented to look up the instruction and\nfigure out if the type is static or not.\n\nChange-Id: I8b76e6ba2c946376e7fe287dbcca17bcaab0e133\n"
    },
    {
      "commit": "f57c47c29cd3388d1d78008a71c4e18f2217b70c",
      "tree": "346cbf0cdfa1367d42343cdd3aa98a10bb1bf189",
      "parents": [
        "aeac7543ca481bf84922c1f50df75a27f9fb7163"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 00:06:17 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 00:08:46 2011 -0700"
      },
      "message": "Fix vmap handling. Adjust all PCs by -2 in WalkStack.\n\nVmap handling didn\u0027t increment the register when it got the first hit in\nthe core spill mask (bug exposed by register promotion). Adjust PCs by -2\nin WalkStack so that ToDexPc calls don\u0027t need adjustment. This corrects\nline number information on \"run-test 054\".\n\nChange-Id: Iebfb4109b5234bb7357b5ba538883c28dfc7cb26\n"
    },
    {
      "commit": "33f741eefef8f8012f6c190b39355f2e0430d535",
      "tree": "8d17953423f87d6fec38404dd503b6bfad9ac474",
      "parents": [
        "1afef11c4cfb0ac37db7aba183bf71f938af2520"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 11:24:05 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 11:24:05 2011 -0700"
      },
      "message": "Remove opening of DexFile from pointer\n\nChange-Id: I158e75e9e72f1dcc579742ff08c80d3f857852b3\n"
    },
    {
      "commit": "e24fa61603a60ade3797e4a0c8b3fccb346cb048",
      "tree": "9ec5ed942eb9ece6d4d261ffd21956c94f9968fe",
      "parents": [
        "06cbeb990e94f9c4576601e27145fe132e34a686"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 29 00:53:55 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 10:28:05 2011 -0700"
      },
      "message": "Separate oat from image\n\nChange-Id: If2abdb99826ead14e3465d90ba2acffd89709389\n"
    },
    {
      "commit": "01158d7a57c8321370667a6045220237d16e0da8",
      "tree": "f62e0bef39f7f04c969327f6a8540d7cff6e373d",
      "parents": [
        "6699709cf27b706b5221527d9815dd9365911710"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 19:47:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 20 11:48:27 2011 -0700"
      },
      "message": "Implement most of VMStack and some of Zygote.\n\nChange-Id: I07e18259a0452a2a9b077148f4f1ca67d3f63427\n"
    },
    {
      "commit": "25c3325bf95036bf325fc7cb21b4fd6d40282857",
      "tree": "58d95f906ca62f9cf69106c459db972e32af01a0",
      "parents": [
        "e5de95b3f9609e02fefd7cda7b21f30c9412eb4c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 15:58:35 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 09:31:34 2011 -0700"
      },
      "message": "Fix compiler class initialization to properly deal with super classes\n\nAlso moving active parts of compiler_test to be oat tests including\nIntMath and Invoke. Added an interface invocation test case to Invoke\ntest. Changed Compiler to CHECK that it is not used once the\nRuntime::IsStarted, forcing some jni_compiler_test to have two phases,\none for compiling before Runtime::Start and one for JNI operations\nafter the Runtime::IsStarted.\n\nFinally, fixed Class::CanPutArrayElementFromCode by removing\nCanPutArrayElement and calling IsAssignableFrom directly.\n\nChange-Id: I52ca4dbc0e02db65f274ccc3ca7468dce365a44e\n"
    },
    {
      "commit": "bdb0391258abc54bf77c676e36847d28a783bfe5",
      "tree": "e00cac49de8a85562716557c84532dd3fff08e5b",
      "parents": [
        "a5a97a2bc1dfed70869da34650a5a2a3a3a06ac4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 14 00:55:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 15 18:20:44 2011 -0700"
      },
      "message": "Support for exception throwing.\n\nThese changes start to add support for a long jump style of exception throw.\nA Context is added to build up the registers that will be loaded by the long\njump from callee saves that are on the stack. Throws are reworked slightly to\ngive the PC for the frame of the method being looked at, rather than the return\nPC (that previously led the trace\u0027s PC to be off by a frame). Callee save\nsupport is added to the JNI compiler which then no longer needs to spill\nincoming argument registers as it may reuse the callee saves.\n\nCurrently the code is lightly tested on ARM and doesn\u0027t support\nrestoring floating point callee save registers.\n\nAlso clean up some PIC TODOs.\n\nChange-Id: I9bcef4ab3bf4a9de57d7a5123fb3bb1707ca8921\n"
    },
    {
      "commit": "aaa208006d7c8cc0f381c4aa9b525be24066c495",
      "tree": "7a19bb527abaa56a98462d2c212ebe043b9435d2",
      "parents": [
        "31384c59bb4b387f29f2b6d4d3db886c29b81170"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 11 21:47:37 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 12 10:53:58 2011 -0700"
      },
      "message": "Implement Throwable::nativeFillInStackTrace and nativeGetStackTrace.\n\nRefactor stack trace into compact internal form which is then used to\ncompute larger and more verbose StackTraceElement[] form. Fix some\npotential problems with GC.\n\nChange-Id: I4a4308c1ec5b82fd95b649d5ec0504b9607e688f\n"
    },
    {
      "commit": "69b15fb098162f19a4c20e6dccdcead04d9c77f0",
      "tree": "84fdfc26f560fb618b652a0aff98347f875a2653",
      "parents": [
        "109bd6a38d0cd7c4b7797a9f2db8324c797d1368"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 12:25:21 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 06 15:28:47 2011 -0700"
      },
      "message": "Working dex2oat and oatexec\n\nadb shell dex2oatd --dex-file\u003d/system/framework/core.jar     --image\u003d/system/framework/boot.oat --base\u003d0x50000000 \"\u0027--method\u003dLjava/lang/System;logI(Ljava/lang/String;)V\u0027\" \"\u0027--method\u003dLjava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V\u0027\"\nadb shell dex2oatd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\nadb 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\n\n09-05 17:58:18.912  2385  2385 I System  : Hello, world!\n\nChange-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc\n"
    },
    {
      "commit": "0cfe1fb7060576d047f7f894fc0d8b87de84fcab",
      "tree": "4255eae2034dcb0febe28411c50cba76189f39ae",
      "parents": [
        "a09576416788b916095739e43a16917e7948f3a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 26 03:29:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 14:48:01 2011 -0700"
      },
      "message": "Use accessor methods for Object fields.\n\nEnsure that Object fields are modified via accessors so that it\u0027s easy\nto insert barriers (make all fields within Objects private). Add validity\nchecks to Field and Method accessors to ensure they are accessed when a\nClass is in a suitable state. Add validity checks to all Object\naccessors to check heap isn\u0027t corrupted. Remove hacked in strings from Field\nand Method; make type fields used the dex cache that is lazily initialized.\nClean up various other TODOs and lint issues.\n\nChange-Id: Iac0afc515c01f5419874d9cdcdb9a7b45443e3fb\n"
    },
    {
      "commit": "90a3369d3b6238f1a4c9b19ca68978dab1c39bc4",
      "tree": "b66ec9b2cced5713bd5902c499d57b533d2e7a9a",
      "parents": [
        "34023801bd544e613d6e85c9a5b2e743f3710e8f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:45 2011 -0700"
      },
      "message": "Switch to UniquePtr.\n\nOnly one use of scoped_ptr was incorrect (but then again, I spent an afternoon\nwith valgrind finding and fixing them just last week).\n\nChange-Id: If5ec1c8aa0794a4f652bfd1c0fffccf95facdc40\n"
    }
  ],
  "next": "8a48741b96ca9cc5835cac72ac133c4ca480930f"
}
