)]}'
{
  "log": [
    {
      "commit": "d1fec81868a3567560a3868350e0a945248e925b",
      "tree": "749615f244e92d7f18b1713950d8110322b7645f",
      "parents": [
        "0401b68ec5ddf2aface872d756558aafcada3655"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Feb 13 09:51:10 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Feb 14 23:46:16 2012 -0800"
      },
      "message": "Beginning of LLVM backend for ART.\n\nChange-Id: I03466aed94670ac72d489ebc6e34d7ee1c9c857e\n"
    },
    {
      "commit": "996cc586ce76235ee3efa1eff86de51dabcc5d53",
      "tree": "b47d503da60ac10e52e9c09a6cb762aa6f959203",
      "parents": [
        "16f93671923979733cb46fc6f053c8f65754d5eb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 22:23:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 22:37:35 2012 -0800"
      },
      "message": "Add compiler stats, fix super call slow path\n\nAdd statistics of when the compiler framework has allowed AOT\ncompilation to be optimistic.\nFix bug that was forcing many calls to be unnecessarily slow path.\n\nChange-Id: I8f0f6ab4738b11161855cf0dc424babed774c998\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "4103ad2ab59488fe4eb36b88259e402e8878878b",
      "tree": "bd811f3c47feeb0e0f4aa185ae7a9131bf9836e7",
      "parents": [
        "1e4092589f1400915e6213014da103aab8728ef6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:18:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:41:25 2012 -0800"
      },
      "message": "Faster computation of SSB index\n\nChange-Id: Id345ec5b1093b57276588bd96f475d0ed07d1f08\n"
    },
    {
      "commit": "1e4092589f1400915e6213014da103aab8728ef6",
      "tree": "ba718e9e853e18a61aab003ce3f6a880b86fa365",
      "parents": [
        "53a77a5d06ce865d0524bf3a0dd9b586caa9bede"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "message": "Fix Mac build and make -jN use a total of N threads, not N+1.\n\nChange-Id: I41dc613e76d6ac85a21b3286b1a555dcc79bae95\n"
    },
    {
      "commit": "1bddec3a6521f16df37499754000a3b1787a52e9",
      "tree": "f605d0f642f2a62012d0f5a1bd0351afbaa8fa5a",
      "parents": [
        "223f20fa939c386c695977263780dea2195093db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Feb 04 12:27:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Feb 05 03:02:00 2012 -0800"
      },
      "message": "Add access check slow paths to field accesses\n\nThis check makes the verifier, compiler and runtime agree with who\nshould perform access checks and fixes compliance for these\ninstructions.\n\nIntroduce new \"fast\" sget/sput that just get the static storage base\nfrom a method\u0027s declaring class when the static field is within the same\nclass. Saves a load and branch in the common case.\n\nFold gen routines for wide and not wide together.\n\nFix bug where sub-classes could appear intialized in the image but their\nparents were only verified.\n\nExtra debug output for test case 075.\n\nChange-Id: I934da3624ed8fa8e026b2c95d936d04b1af022ef\n"
    },
    {
      "commit": "5523ee070b005576c6f889415205d49ea77cf243",
      "tree": "e96483994b5f5d747615673d06bb7b84302d16f0",
      "parents": [
        "5b332c89fa3fdd7dc184b22c2587d28af304d019"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:18:34 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:29:13 2012 -0800"
      },
      "message": "Add -j to dex2oat.\n\nChange-Id: I80f3f2605b8afcdf9adf9382716b041f10efa104\n"
    },
    {
      "commit": "81d9151c884a548ea2ff843a49704e1aaf9fe64f",
      "tree": "7f7cf07345cbe5625ec1f7a7a9f603fc1c22f783",
      "parents": [
        "b0bbbabd282c10ca3a902f83e832edded06d9557"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:38:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:47:07 2012 -0800"
      },
      "message": "Change the Workers API to be harder to misuse.\n\nChange-Id: Ifd778c670789e17c1d126e2bca5469a2eb644f20\n"
    },
    {
      "commit": "b0bbbabd282c10ca3a902f83e832edded06d9557",
      "tree": "f604cd48108536f125ed6a55ca4dad5d0ab4b425",
      "parents": [
        "d2291ab45b28021afebfa00e7822c2919f37aa97"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:26:19 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:26:19 2012 -0800"
      },
      "message": "Ensure that the verification workers have finished before removing write permission from the dex file.\n\nChange-Id: I3106455e801997af466589af683a1e987fc2eb92\n"
    },
    {
      "commit": "c225caa9715eeaeff87f27d5b6a3e7d4f6b7efad",
      "tree": "4f24c99fdff30199dde44952cf6d88fd493a87ca",
      "parents": [
        "f42d81312b971ccc80e24c4708bd944e6e259d15"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:43:37 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:43:37 2012 -0800"
      },
      "message": "Compile classes in parallel.\n\nChange-Id: If7f03372f5094236a3dd0cfd638c39298b23c132\n"
    },
    {
      "commit": "ff7380681c50129ff689a11ac0f49512b4be7295",
      "tree": "79704a4b85026aae58c17780cd88377e8d5a3c08",
      "parents": [
        "9ada79cbe875dbcf7229b3f563303d21b0537d5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:00:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:07:35 2012 -0800"
      },
      "message": "Fix a thread suspend timeout, and improve the diagnostics for thread suspend timeouts.\n\nI still needed gdb to understand this, but when we dump _native_ stacks, the\nadditional diagnostics here will be more helpful. (They\u0027re somewhat helpful\nanyway, in that they let you see the state all threads are in. Also, in a\nstarted runtime rather than the compiler, threads will have informative managed\nstacks.)\n\nAlso make the apparent duplication in the dex2oat timings clearer, and only\ninclude time spent on resolving strings if we resolved any strings.\n\nChange-Id: Icd469d9b085171ebb2dede2afb5140387cd3240c\n"
    },
    {
      "commit": "d9c67be7c116875d96b31e640ad47d587b205605",
      "tree": "55ba94dde3916dfb88681e4967e4a45926436716",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 19:54:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:28:44 2012 -0800"
      },
      "message": "Start parallelizing dex2oat.\n\nThis is enough to perform type resolution and verification in parallel.\n\nThere appears to be a bug in InitCpu --- if you start enough threads\nat once, the CHECK at the end starts to fail, with self_check \u003d\u003d NULL; I\u0027ve\ncommented it out for now, but this will cause test failures until it\u0027s fixed.\n\nChange-Id: I4919682520bc01d3262c6b3d00c7bd2c2860a52e\n"
    },
    {
      "commit": "601a12302407d8199503d2cc6cc0829d5996696d",
      "tree": "fa72500fb24cb4d69a5c1e016db3ef4d57f0fd20",
      "parents": [
        "054f6c19573100b29ce4139822bb496ba3d8e4d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:47:38 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:47:38 2012 -0800"
      },
      "message": "If dex2oat takes \u003e1s, show a breakdown of where the time went.\n\nTurns out that we spend nearly as much time verifying as actually compiling.\n\nChange-Id: Icf2e42b4cc77bd9a48a6d04a4fe19f57270c5927\n"
    },
    {
      "commit": "5abfa3ea35781464df8fae60aaf03f48a295e965",
      "tree": "3db19d0ecfc1031f86d77964de636ec45d4ba690",
      "parents": [
        "6c7d244058b74cdd61533968dd6cddd7003d2671"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 31 17:01:43 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 15:56:41 2012 -0800"
      },
      "message": "Compiler tuning\n\nSignificant reduction in memory usage by the compiler.\n    o Estimated sizes of growable lists to avoid waste\n    o Changed basic block predecessor structure from a growable bitmap\n      to a growable list.\n    o Conditionalized code which produced disassembly strings.\n    o Avoided generating some dataflow-related structures when compiling\n      in dataflow-disabled mode.\n    o Added memory usage statistics\n    o Eliminated floating point usage as a barrier to disabling expensive\n      dataflow analysis for very large init routines.\n    o Because iterating through sparse bit maps is much less of a concern now,\n      removed earlier hack that remembered runs of leading and trailing\n      zeroes.\n\nAlso, some general tuning.\n    o Minor tweaks to register utilties\n    o Speed up the assembly loop\n    o Rewrite of the bit vector iterator\n\nOur previous worst-case method originally consumed 360 megabytes, but through\nearlier changes was whittled down to 113 megabytes.  Now it consumes 12 (which\nso far appears to close to the highest compiler heap usage of anything\nI\u0027ve seen).\n\nPost-wipe cold boot time is now less than 7 minutes.\n\nInstallation time for our application test cases also shows a large\ngain - typically 25% to 40% speedup.\n\nSingle-threaded host compilation of core.jar down to \u003c3.0s, boot.oat builds\nin 17.2s.  Next up: multi-threaded compilation.\n\nChange-Id: I493d0d584c4145a6deccdd9bff344473023deb46\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": "3bb17a644e2945c3913cfbde245d2f520d62a3ff",
      "tree": "5b9abb315069c2103d7bbaabc5a07d2a13bddb87",
      "parents": [
        "715112b4551b6ead2643b5e4e9bd796331417115"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 27 23:56:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jan 29 12:50:16 2012 -0800"
      },
      "message": "Space trim and other unit tests. General space clean up.\n\nThe space unit tests now include checks on space invariants, in\nparticular relating to footprint and size.\nOut-of-date comments have been removed.\nThis patch adds PrettySize and PrettyDuration methods to make these\nstrings more human readable.\n\nChange-Id: I6bc05b2db0d0115b97d666b832fce57bcdd2e091\n"
    },
    {
      "commit": "aa56b7287426ffc476843ad2ffab9eb70709e4ab",
      "tree": "7cd3c36d7decef6168bfef23f711535b77e42df2",
      "parents": [
        "053161e36a5580b9be5ad40717cb767d43683435"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 13:25:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 13:25:35 2012 -0800"
      },
      "message": "Fix %ds in compiler.cc\u0027s new StringPrintf.\n\nChange-Id: I4005f2fc4a8ef770ec273476be71fa0c3a9cbc0a\n"
    },
    {
      "commit": "fc0842b8200e719b49ccedf9035d569d75676ee7",
      "tree": "ca28c02df434b964ae832abe7a764543efc32071",
      "parents": [
        "4cb6a3b44825a164ff54f8600b52b8356b3c2ee1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 26 11:41:11 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 26 11:49:08 2012 -0800"
      },
      "message": "Fix divide by zero in compiler stats\n\nAlso remove ext.jar from compilation since its part of the bootclasspath\n\nChange-Id: I208746479d44664c8c868952d477a312fea6547a\n"
    },
    {
      "commit": "bb551fa68ffc57f679b8c914ac856666f0348b77",
      "tree": "98bc7c51b0a8c20934bf6ae27574036b616566ae",
      "parents": [
        "2748b49cb889f6e2539c77a09064db0459508467"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 25 16:35:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 25 17:11:37 2012 -0800"
      },
      "message": "Collect and output a few dex2oat statistics.\n\nNot sure how useful this is. Suggestions welcome.\n\nChange-Id: I339de66a9964d18b11a482f549e891a57831e10e\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "11d1b0c31ddd710d26068da8e0e4621002205b4b",
      "tree": "8d9c9c0dd5741214466775b86069032d609fd91c",
      "parents": [
        "bbdb1437f55948e5395b4dcb306e25605539a444"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 16:57:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 17:26:10 2012 -0800"
      },
      "message": "Reduce namespace pollution.\n\nThis leaves us with just the mspace stuff and three libdex functions to clean\nup. We deliberately expose the JII API, and I don\u0027t think there\u0027s anything we\ncan really do about the art_..._from_code stuff (and at least that starts with\n\"art_\").\n\nChange-Id: I77e58e8330cd2afeb496642302dfe3311e68091a\n"
    },
    {
      "commit": "8add92dcf59568c72c17e9a979948b1a7a0b1264",
      "tree": "317c96fc2cc004f980d16b553d445b56fa9dc37d",
      "parents": [
        "e5448b5a12003b405b22cde3b94f962ab4888a87"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 18:18:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 18:20:30 2012 -0800"
      },
      "message": "Remove the rest of the unordered_ stuff.\n\nChange-Id: Ibfef4e807c1d2ce63887b6c67d1c1e60012d46a5\n"
    },
    {
      "commit": "e7d856b911222aa000ca2be0f8f63f5b292141c3",
      "tree": "9628ef94e879c7ae026dd37ec05e1ab3251d830a",
      "parents": [
        "a51dc5b0a57fdf0574c069a15e065ccc96958f02"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 18:10:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 17 17:42:34 2012 -0800"
      },
      "message": "Add GC map to oat file\n\nChange-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28\n"
    },
    {
      "commit": "0755ec5ea1dce0b549fc1adefeb52d89f119ebec",
      "tree": "6565330f01612586ebbfa9b45dda6bd4720c3234",
      "parents": [
        "57e7600af0076bad4d7d3f255e72230d2c3be990"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 15:19:46 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 17:03:58 2012 -0800"
      },
      "message": "Record Class::Status information in oat file\n\nChange-Id: I328de86a89c7d84a211b3aed3d42b8c92c1f3464\n"
    },
    {
      "commit": "955724179c6c739524f610023287f56b24dc31de",
      "tree": "64f751693e72173ae0d044d8c54989b01f1195af",
      "parents": [
        "b87f73ea7524f6eb9da6da1af931a3d3fbb833ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "message": "Don\u0027t default-construct std::strings and then assign them.\n\nChange-Id: I8c994d1e6a8d2ebe52eaa4f0132e0deb2ecfa5f3\n"
    },
    {
      "commit": "4dd9b4d95eec9db5338fb9bf132f9bb8facf6cf4",
      "tree": "f9dc6f6e6a55acea3a08f1f568ae6900c1dd7dd1",
      "parents": [
        "20a409c99a649a01cb7c65bd1089988445d8cdfd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 18:29:24 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 08:23:08 2011 -0800"
      },
      "message": "Clean up verbose logging.\n\nChange-Id: I6b01980e7145c4f8d25a5b50f620903f61a1b427\n"
    },
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "ae826983f7903bc0a6bbbe8426bf393fb2f6d747",
      "tree": "6fb83f2b19a1a50ade3c93cbf10485cd8fbc793f",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 09 01:33:42 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 13:46:50 2011 -0800"
      },
      "message": "Add --image-classes to dex2oat\n\nChange-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67\n"
    },
    {
      "commit": "5ead0950c661761e90e04aefd6ea2205532ce874",
      "tree": "3f83ea4c1d0a364c461fba909e7a429435b120d1",
      "parents": [
        "2f6bd951af6ef1e2baedd38fa02908121c5f3d9d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 28 22:55:52 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 09:56:38 2011 -0800"
      },
      "message": "Skip classes in app compilation if they are from boot class loader\n\nChange-Id: Iab767d9af6a71b59779e5140b6d7f7dca8f538ff\n"
    },
    {
      "commit": "254db0ff7ea6509a1c2914b1d9532e2041a0c4c4",
      "tree": "2b76fd513207c6679a50a91638d95361e9a05ae6",
      "parents": [
        "9b1a4f425711c26d0465d54a1cb95ec4a813322a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 16 16:44:11 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 16 17:21:45 2011 -0500"
      },
      "message": "Pass the classpath to dex2oat.\n\nThis makes it possible to run applications that have multiple\ndex files on the classpath.\n\nChange-Id: I15264a001a46ddb253e87f2739e6b9644348f1be\n"
    },
    {
      "commit": "a3760aad59f41bb0b1d46733165a2d7219ecca73",
      "tree": "28c031bac11cc172f04b8943e189bf1d065acd9c",
      "parents": [
        "169c9a7f46776b235d0a37d5e0ff27682deffe06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 14:32:37 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 15:40:11 2011 -0800"
      },
      "message": "Refactor the use of Method by the oat compiler.\n\nChange-Id: Ib0ee18ed06846f82567f746edc7a5049dc6215df\n"
    },
    {
      "commit": "169c9a7f46776b235d0a37d5e0ff27682deffe06",
      "tree": "9bd38fe9508e827089d546f04b0b42020eef821e",
      "parents": [
        "0571d357843c53e042f370f5f2c2e9aa3fe803a9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 20:13:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 09:27:23 2011 -0800"
      },
      "message": "Remove the use of Method from jni_compiler\n\nChange-Id: Ibf1c72a806e7f1ba7a2d83960c3d57f41937d336\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": "28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d",
      "tree": "f5628e47948a0d255112a3a7a01b67db41c8d424",
      "parents": [
        "e0918556e7551de638870dcad3f2023f94f85a50"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 27 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 28 23:14:15 2011 -0700"
      },
      "message": "Support for unresolved types in new-instance during verification.\n\nAlso, ensure that classes that don\u0027t load are erroneous, warn early\nabout exceptions left on a thread by the verifier/compiler, factor out\nslowpath checks for the compiler and fix the slowpath selector for\nconst-class.\n\nThis change causes more dex cache misses at runtime (more slowpath\nexecution). It also requires a \"mm clean-oat\".\n\nChange-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c\n"
    },
    {
      "commit": "df8dad5f05408c8bab6b5a0cc91572fe8c0aff06",
      "tree": "87d2795600f3feac8674662ae68fa2eb7d61dba3",
      "parents": [
        "a4a7b48c813ad73ac795d0b405de69755b36dd6b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 15:44:01 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 15:44:01 2011 -0700"
      },
      "message": "Fix scoping issue in Compiler::CompileMethod\n\nChange-Id: I3ff619034d3c6f8db79c52f93eabe2ed7ff6da5f\n"
    },
    {
      "commit": "f09afe8fbd78943df6a8b10f03c36dcd190dd054",
      "tree": "6e56422c00ac5a4339fc96422a7b3c64adceb30c",
      "parents": [
        "63f86de9b9444072922872ff08f3653f2920238d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 14:24:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 14:24:21 2011 -0700"
      },
      "message": "Better detection of duplicate compiled methods/invoke stubs.\n\nChange-Id: I491ba30e0a7573d1c090aab9ff9ac26aae4d004e\n"
    },
    {
      "commit": "aded5f7ab991f3c1132851599d3bc60ff6707eed",
      "tree": "7fb5e92c224adf98cadd67b7df99cc2d2851cbcb",
      "parents": [
        "bcbaaf3df56178263dbc110dcb0d1cf6c9d167c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 17:15:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:51:28 2011 -0700"
      },
      "message": "Working ClassLoader\n\nChange-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b\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": "d9cdfe91a4812a86d90a139569eac18e2b6de3fb",
      "tree": "8e4c87645a50b7a825586735143956c53eb9a6ac",
      "parents": [
        "efdbac54eef6209772dadf7d24c7b3d37dcc8713"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 16:09:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 16:09:04 2011 -0700"
      },
      "message": "Fix the weird state transitions in verification.\n\nThis probably wants to be done differently, without Compiler involving\nClassLinker, and with DexVerifier being told whether it should throw\nor not. But this gets us further for now.\n\nTest 077 still crashes, but that\u0027s now in code that\u0027s actively being\nworked on, which I\u0027ll leave for now.\n\nChange-Id: I4f265b20663837547933d0c5fa70032d22fc6c12\n"
    },
    {
      "commit": "ad25ac568407ceb14334e8551dd1c4dd0fd6993c",
      "tree": "f1e2edb4b87d0b5ce35f94069db2f6cdb77db210",
      "parents": [
        "8c2f6414e1cff9a024a14369352f7ce112528b9e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 04 19:13:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 05 22:40:00 2011 -0700"
      },
      "message": "Static and direct resolution stub.\n\nEnsure that invoke static and direct go through a stub that causes\nresolution and initialization.\n\nChange-Id: I872900560322817d8f4378b04ac410d9ea0b3b17\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": "5cfd6fb2730b13c86c885215784080e15fa6ccf4",
      "tree": "5e99eaa47100eeb3958f174868a60880d62190dc",
      "parents": [
        "d6b1f6190c8ec42facb08aca34b093244774b318"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 27 13:54:29 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 28 10:12:32 2011 -0700"
      },
      "message": "Verifier should not exit with exceptions pending.\n\nChange-Id: Ibf820594883b345c55e9f636d937aae6506706d6\n"
    },
    {
      "commit": "65ca077378935beb113bb5aec5e890054ca3286e",
      "tree": "d077a7d7953fc3ffa08b3570623ee4f0ee5ea437",
      "parents": [
        "ed3e930109e3f01804ca32cee4afe4f2d4b3f4d8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 24 16:03:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 24 17:37:33 2011 -0700"
      },
      "message": "Tolerant compilation of classes with missing super classes\n\nChange-Id: If64f25ae36204ab2ea5499f27601696dea9d4016\n"
    },
    {
      "commit": "27ec961a1da540ba7f16c07a682585ab167317ad",
      "tree": "0aa6cb8345e394fe0ebe608bc26aa2acbdac1393",
      "parents": [
        "03fa263ba90e9f6b11231576c6b9cc434e67141d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 20:20:38 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 10:36:24 2011 -0700"
      },
      "message": "Adding oat_process\n\n- Added oat_process, a version of app_process use to launch frameworks apps\n- Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm\n  This is just a special makefile, frameworks/base/core/jni code is used for source\n- Added support for build a boot.oat with the full BOOTCLASSPATH\n  The older smaller boat.oat is now core.oat\n- Added mem_map code for making sure a requested memory region is available\n  Moved mem_map code to cc file to make easier to debug with smaller rebuild\n- Moved oat base address to 0x6000000 as a work around to host addres conflict\n- Added -Xms and -Xmx options to dex2oat to allow build specific memory options\n- Fixed miranda method initialization problem found compiling full bootclasspath\n- Made compiler.cc tolerant of verification errors found compiling full bootclasspath\n- Bumped arena block alloc warning to avoid noise when compiling full bootclasspath\n- Marked implicit GC unimplemented to fail fast\n- Added --output argument to oatdump\n- Made many object asserts tolerate access in IsErroneous state\n  now that verifier is failing validation of some classes during compilation\n- Made runtime tolerate unknown access as short term solution for oat_process\n- Workaround SSA issue to restore full bootclasspath compilation\n- Added test-art-target-processs to excercise oat_process with \"am\"\n  \"am\" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass\n\nChange-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97\n"
    },
    {
      "commit": "b4df5146854c42bf03c4ca02f441b6db73bfde0c",
      "tree": "8723f6b46da9161ef5a22cc42a7ec0bf2bce47b8",
      "parents": [
        "845490bda68f7d025ea7f45775c847d2932e00dc"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 19 20:25:32 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 20 11:33:51 2011 -0700"
      },
      "message": "Added more checking upon resolution and bytecode rewriting to verifier.\n\nAccess checks are performed when methods and fields are resolved. Also,\nerroring bytecodes are now overwritten in the memory mapped dex file.\nTo do this, the code sets the memory mapped dex file as writable before\nverification and set it back to read only after verification is done.\nThe overwritting occurs only in memory and the original dex file remains\nunchanged.\n\nChange-Id: I054394fb57e83d1ac5b6f200ab993d70cd9f55e6\n"
    },
    {
      "commit": "845490bda68f7d025ea7f45775c847d2932e00dc",
      "tree": "2fc5c0f3fa40a491a3467dfc25d71fc2e23058f1",
      "parents": [
        "9d5ccec86d60c9ddd811836b9a2bc28d0b3d11fe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 15:56:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 16:18:27 2011 -0700"
      },
      "message": "Cleanup resolution of type, field, method indexes\n\nWhen resolving a type_idx of a static field, you cannot assume the\ntype_idx refers to the class that actually provides the storage, it\nmight be a subclass. The compiler now resolves to the storage class if\npossible at compile time, otherwise it reverts to the slow path.\n\nWhen resolve field and method indexes, you need to know if a field is\nstatic or instance and if a method is direct or virtual. Previously we\ntried to guess, which led to problems in classes that had one of\neach. Now the compiler resolves which kind of field and method based\non the context of class definitions and dex instructions.\n\nChange-Id: I31826dc90562057eadd81f39d6369aa1216509af\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": "ffca45dbd7e152b8c2cda375d2742f798827698e",
      "tree": "6ebe3e92b26b972a281ddf83ebc66c4f8c5d3f28",
      "parents": [
        "78128a63b2615744760b7f8ab83df9764a5d4a95"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 12:10:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 12:10:49 2011 -0700"
      },
      "message": "Compiler set up of InitializedStaticStorage\n\nChange-Id: I0fe5cfe96ecb8f981a866bd7930513921b2db56c\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": "a5a97a2bc1dfed70869da34650a5a2a3a3a06ac4",
      "tree": "d81a0521bdae29b2a1f8655dddc18d5fe07728cd",
      "parents": [
        "e23d93ca1631ac5598d0f373c11d954b23ff586b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 14:08:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 16:46:43 2011 -0700"
      },
      "message": "Compile time class initialization for classes without \u003cclinit\u003e\n\nChange-Id: I4f167253fbfa16ed8f51928c5891e7a48b68e526\n"
    },
    {
      "commit": "98eacac683b78e60799323e8c7d59e7214808639",
      "tree": "3be4dabf184c2e72fa54e367cfc996ae3ace13b8",
      "parents": [
        "8692721dd8a3679ca874c3d1be0cecb62ff148f6"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 14 16:11:53 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 13:41:42 2011 -0700"
      },
      "message": "Enabled verification in the compiler and some other verifier fixes.\n\nThe verifier still needs to be able to continue execution after it fails\nto resolve a class or method. The structure for that doesn\u0027t exist yet.\n\nChange-Id: Ie32f6f9971fed02b645ba715bc5164f86f70f1c6\n"
    },
    {
      "commit": "161928613d3f097108319de60494fab1aab8d48a",
      "tree": "4a77aeca94c70e008ff7e1921e0104df9cb1ce92",
      "parents": [
        "93868217589caa3302a3886f55b99447db78e093"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 12 17:50:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 10:04:31 2011 -0700"
      },
      "message": "Add oat file generation and tests to build\n\n- Currently builds boot.oat for host and target\n  and target oat files for art tests.\n- Added cross compilation support via --strip-prefix option to dex2oat\n- Reduced output to prevent build log spam (Compiler::verbose_)\n- Added image roots for recovering important pointers on image load\n- Redid JNI stub creation and made the stub array an image root\n- Fixed JNI stub test by making JNI stub array executable\n- Fixed JNI UnregisterNative to having it reinstall the JNI stub\n- Fixed ARM JNI stub to generate PIC code (with irogers)\n- Fixed JniCompiler to generate PIC code (with irogers)\n- Fixed FindNativeMethod to handle recursive calls\n- Finished checkFieldType to use Object::InstanceOf\n- Fixed thread unsafe access to ClassLinker::{dex_files_,dex_caches_}\n- Added ResolvedMethod variant for use with Method* for context\n- Fixed ImageWriter to call FixupMethod\n- Fixed ImageWriter to rewrite JNI stub references\n- Improved error reporting on lack of ANDROID_DATA dir or art-cache dir\n- Fixed Runtime::Start to InitLibraries before creating thread peer\n- Implemented Space::IsCondemned to skip spaces loaded from images\n- Implemented artFindInterfaceMethodInCache,\n  allowing interface invocation from managed code\n\nChange-Id: I603e97fa0ac44508ae05a2e47c1cdb4481678d7b\n"
    },
    {
      "commit": "303b01ed0d36017371e29b1f1e209dd19896ac9e",
      "tree": "4ddc4250e3871e5e9bac0c2e1763c746d6f3f7b2",
      "parents": [
        "c0efedb7584070b84e4f18f691580b8c79aff036"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 14 00:46:13 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 14 12:45:59 2011 -0700"
      },
      "message": "Add unit test for exercising AbstractMethodErrorStub code.\n\nChange-Id: I6021459a75681c92a40931f591852e974f1ca1a6\n"
    },
    {
      "commit": "c486c11a1c71ca9c118d57152427b741229cda49",
      "tree": "5575e00693a65ea2c3a6087989011fd977cf028f",
      "parents": [
        "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 13 16:43:52 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 13 20:31:46 2011 -0700"
      },
      "message": "Generating stub code that throws AbstractMethodError exception when hit.\n\nChange-Id: Ib440c0cb6e7f820fb1b73113763ebd2b7d64cdba\n"
    },
    {
      "commit": "1240dade91d6c4bbf4e367ca608fcdc15348da45",
      "tree": "d44767871d0febadc9773df9839c16977cde91be",
      "parents": [
        "2d7404799fa4ca5d2dc925b3d411c642ff3cb4aa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 16:24:50 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 09 16:52:46 2011 -0700"
      },
      "message": "Test conversion of floats and doubles to strings.\n\nThere was some confusion about what Method::HasCode meant, and we weren\u0027t\nquite ready to compile all methods _and_ be able to invoke them. We were\nalso missing a couple of native methods in Throwable that we need if we\u0027ve\ncompiled all Throwable\u0027s code (because the next time we ask ClassLinker to\ndo anything, it\u0027ll try to throw NoClassDefFoundException from one of the\nClassLoaders, and that will try to run a Throwable constructor, which will\nend up trying to call these native methods).\n\nChange-Id: If4783f3c866aaa72413d7b7810ef2541d418ae33\n"
    },
    {
      "commit": "2c8f653c98d658419f464b6147c10e11a664d2e6",
      "tree": "479eb3bb75cefbae633c5663193675d4ea6bb328",
      "parents": [
        "92b3b5623ec8b65f3e099c076e247bb8273692f8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 17:16:34 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 08 22:22:27 2011 -0700"
      },
      "message": "Support for cross compilation.\n\nRefactor architecture specific files into arm and x86 name spaces. Make\nassemblers and calling conventions use the factory pattern and an\ninstruction set specifier.\n\nChange-Id: I20cd7aecacc1ae3d418221d98bbe1d69be9162a7\n"
    },
    {
      "commit": "e9a72f6a1a84f4d9af0b07dd289b89e45ffb32d5",
      "tree": "0a709a3694d0a3fd11878d39b6422e5e997c8c94",
      "parents": [
        "7715c68b5f137ff5ffa4f2e1fee0a96fa6cfffb4"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 04 17:59:07 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 05 13:38:41 2011 -0700"
      },
      "message": "Try/Catch analysis; various workarounds\n\nFixed a couple of codegen bugs.  Added a temporary workaround until\nSSA renaming problem is fixed.  By enabling the \"CompileDexLibCore\"\ntest in compiler_test.cc and disabling the jni_compiler, we appear to\nbe successfully compiling 17,641 methods of libcore (note: of those,\n4 exhibit the SSA problem).\n\nAlso turned off most of the compiler logging, and disabled the fast\npath for invoke virtual (which seems to be broken).\n\nChange-Id: I0ecf460cba209f885209efbee62e9f80bffbf666\n"
    },
    {
      "commit": "9baa4aefc370f48774b6104680193d9a7e4fb631",
      "tree": "26ed5735022c29f77d6b025c357674ecf50b27c8",
      "parents": [
        "e9ea8d1f002dd86976f0e1493ab8aa23a66c0494"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 01 21:14:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 13:25:31 2011 -0700"
      },
      "message": "Remove use of MemMap for code allocation.\n\nIn preparation of moving to an executable code space.\n\nChange-Id: I6cb6fec93c66005f8020d718fe3c1c5aa1c85356\n"
    },
    {
      "commit": "1f87008b165d26541d832ff805250afdc89c253d",
      "tree": "a84122b3757b8f856eb0656a951ed6621b6d01a8",
      "parents": [
        "c5bfa8f49d8548d7c685a99b411311ef56bedffa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 16:02:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 31 09:46:57 2011 -0700"
      },
      "message": "Add HeapTest and make GC work enough to pass it\n\nChange-Id: If06eaef2921b64b3226bfd347acaec60ec993e67\n"
    },
    {
      "commit": "8a48741b96ca9cc5835cac72ac133c4ca480930f",
      "tree": "bbab3d50aa6eebb2a8182a7dac0caf7046104a1a",
      "parents": [
        "a19f2a5240fcf5baf989a26c7a6cf37247432c1b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 29 20:08:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 29 23:29:56 2011 -0700"
      },
      "message": "Allow compilation of classes in different ClassLoaders\n\nChange-Id: Ib0420471590a4c6d16bc25285ef3876098eacb36\n"
    },
    {
      "commit": "1caa2c205e51dda670207828f25451fb7623cea6",
      "tree": "7362e7c75871bbcc9c317598547f4bcba01d0907",
      "parents": [
        "dfd3d70e58c37b5d56eded3a4469082d8bb26ee0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 13:02:33 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 14:19:11 2011 -0700"
      },
      "message": "Add InitializedStaticStorage table\n\nA non-null entry in the table not only provides access to the storage,\nit also implies that the referenced type is initialized.\n\nChange-Id: Ief9e88b7e58b65b6f9456a4218b7fe87f71c17bb\n"
    },
    {
      "commit": "9cc262e2ad5cb507c21cc83b8dc954e9354a469c",
      "tree": "869c3662ab908891e85b446760255b825b86a274",
      "parents": [
        "b63ec393a5c4ba2be1d34dd871cda811eaa803c7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 12:45:30 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 12:49:05 2011 -0700"
      },
      "message": "Clarify CodeAndMethods to CodeAndDirectMethods\n\nChange-Id: Ifa564ea25f4c7eb168f367274679a4915b9f4715\n"
    },
    {
      "commit": "83db7721aef15df6919c0ec072e087bef6041e2d",
      "tree": "fd09a12cbd85dfff8a990f213bdaa0d18d4bb78d",
      "parents": [
        "55df06be4369f5d8ab5eb61a5d22809255171036"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 17:32:56 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 17:33:15 2011 -0700"
      },
      "message": "Add DexCache table of \u003cMethod*, Method::GetCode()\u003e\n\nChange-Id: I69d46e61ff40456ff76888ad90b00e2036250d40\n"
    },
    {
      "commit": "1f1fa566ea05a91f1fa8d0bdd29b913f6ee25eff",
      "tree": "cd772c62edb35ff8402334d48520a6a75f12c81b",
      "parents": [
        "0c424cb96c8e7d6d5e5c9399036481619eba556c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 10:22:53 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 10:22:53 2011 -0700"
      },
      "message": "Fix a typo in field resolution.\n\nChange-Id: I0521ff07a4a30273193b0409c462ea7d187a5dea\n"
    },
    {
      "commit": "20cfffabdc9e02b2df798bc4e6b6035d14bf4e36",
      "tree": "74c8738f09013c3d4af1ee568380d77e44a3508a",
      "parents": [
        "30b944557a969a9aea2098ce9bbcce05db9b1f22"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 02:31:27 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 26 02:42:54 2011 -0700"
      },
      "message": "Finish implementation of ResolveField and ResolveMethod\n\nChange-Id: I854e17b4cccd05b26f83c77230f7323c898802c9\n"
    },
    {
      "commit": "bffb15585b8fd43d3ca534ddbb85e7f591595951",
      "tree": "9b687334d5e754ce61f57f8ec0dab00772443075",
      "parents": [
        "ce8d9f53b4284b0897b01ac2d192ba6ff26e9922"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 12:23:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 14:31:40 2011 -0700"
      },
      "message": "Convert CompilerTest over to use Compiler\n\nChange-Id: Ie9ec6a021126f68acd3f6d35ebe73247b5cc360f\n"
    },
    {
      "commit": "2cc022b653e1e84eed2522254ec684bd097572b8",
      "tree": "41025dd00b030661b4f6ad325afa13ea07cd7fe7",
      "parents": [
        "0d424ff7825a282e03d1096917f73b6f15923aa2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 10:05:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 12:27:57 2011 -0700"
      },
      "message": "Build oat compiler on host, wire in JniCompiler to CompileMethod\n\nChange-Id: I9531eea8e216e9835856bfee5aa9d934d9f64126\n"
    },
    {
      "commit": "9ea1cb1a22be5b85dc2622e3836c46a1c48e3f25",
      "tree": "99dd5c0b0a3e6db3f8696197467ae4fec284bec2",
      "parents": [
        "04ec7f0f244ef36fac1c7e590d2ea14e35dfe95a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 24 23:18:18 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 25 09:45:07 2011 -0700"
      },
      "message": "First pass of compiler wrapping class\n\nChange-Id: I343625310f69cc4de315af91b9cc72bb4da8f59b\n"
    }
  ]
}
