)]}'
{
  "log": [
    {
      "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": "a21039c3ae2b20e44ceb2735251c04d0aac89afd",
      "tree": "66b6fa437e7e4286b50bdef224500f9049633701",
      "parents": [
        "3d9d49fa2d025a041f57ea306ea551ef990177db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 12:09:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 13:04:41 2012 -0700"
      },
      "message": "Fix a bunch more lint.\n\n(If you ignore the compilers, we\u0027ve got relatively little lint now. Fits on\na single screen.)\n\nChange-Id: I51389002894d4fd8cf46f79d2bac57079322a030\n"
    },
    {
      "commit": "6fcce3092040f829afd68862091ce00c7661d8ed",
      "tree": "438147684436ab04308a6ff01942a1e78304e778",
      "parents": [
        "72e401c59bce47fdf0274a0d47f0340b05e4f27f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 16:54:19 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 16:54:19 2012 -0700"
      },
      "message": "More tests for detail messages, plus a new one.\n\nThe array-length instruction is likely to encounter nulls.\n\nChange-Id: I628f5f00dfaff9414740e2f7015b9fb3d34a1bc9\n"
    },
    {
      "commit": "4909ba443f71f62404eb17ce299396655f70dc08",
      "tree": "91d6ee9fe583bdf5d7879e3e9eb4e28af5b522d2",
      "parents": [
        "a6399035ee2af012e2ac898ee7a753a2f83b35ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:33:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:46:04 2012 -0700"
      },
      "message": "Run the verifier single-threaded.\n\nAlso improve crash dumps so the frame numbers are the same as when you\u0027re\nin gdb, and add a more memorably-named environment variable for waiting\nfor gdb.\n\n(cherry picked from commit 5db7ea037e9acad434efe8ab4ce798c513fdb49a)\n\nChange-Id: I428569d84dc5728bcd090919456395be44bdc97b\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": "2cfc639fc803bf67e3d2a961f2b637220c86d5f7",
      "tree": "dfb184dc35b3a534fcd54a420378f29f30011f3a",
      "parents": [
        "a9719eb4167b544438268d46692389761652fc5d"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon May 07 14:51:40 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jun 07 16:29:03 2012 -0700"
      },
      "message": "Foundation for Quick LLVM compiler\n\nReady for review - probably better get this cleaned up and\nchecked in even though much work remains.\n\nBasic conversion from MIR to GreenlandIR and from GreenlandIR\nback to LIR.  Support sufficient to run Fibonacci test.\n\nNote some structural changes in MIR to support this work:\n    o  retaining incoming label for phi nodes\n    o  constant propagation\n    o  include object reference detection in type inference pass\n\nChange-Id: I8ba63c73e76d071aa40cae0f744e598b96f68699\n"
    },
    {
      "commit": "d06dfe7b09de95c035fa736d2b62aa9fee2347b5",
      "tree": "dbb358fe31259a4f56ccf4ae84e24f8a54fea1e3",
      "parents": [
        "61b409cd6bb5990dd33c5c816071e8946d9ba017"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 06 22:15:39 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 22:24:48 2012 -0700"
      },
      "message": "Add missing llvm ifdef\n\nChange-Id: Ia6cc6a60434c952d3d7e66465913f6f4bc026485\n"
    },
    {
      "commit": "61b409cd6bb5990dd33c5c816071e8946d9ba017",
      "tree": "e644ec30c39fe4223ded35a202023b67b9d37409",
      "parents": [
        "b08ed1255fc34b9f34bcea66cd5e0a292af3d698"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Jun 05 23:54:30 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 21:53:49 2012 -0700"
      },
      "message": "After fixing llvm if-conversion, we can reduce stack to 1MB.\n\nChange-Id: Ia5b1995363fa79a14520c6ce54a28465f735463d\n"
    },
    {
      "commit": "7a2a23a44d27f769718e28327af671f4e486c49a",
      "tree": "345a05da812927dafe13af82a4926257c3b368e9",
      "parents": [
        "95dfa6a8c522ad84a492d88666ea69fe7a3852c5"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jun 06 11:01:00 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 21:22:11 2012 -0700"
      },
      "message": "Cleanup proxy stub compiler code.\n\nChange-Id: I2a5815cc2a38f5cea9e9c36e5e6db92c1a861eaa\n"
    },
    {
      "commit": "f1e6b7c8cd78c02f4eb36574f0e417c4edc2b91e",
      "tree": "3ddb49fd0230cdef765ff7fb95f049a990cce018",
      "parents": [
        "662618fa6725631353a115993feaf2a9897b094a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jun 05 18:33:30 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 06 13:21:14 2012 -0700"
      },
      "message": "Added new state and Soft/Hard error return to verifier for bad supers.\n\nMarket was failing because a superclass failed with a soft error, and\nthen its subclass would be rejected with a hard error. New states and\nreturn values were added, and now ClassLinker::VerifyClass allows a\nsuperclass to have either kStatusVerified or\nkStatusRetryVerificationAtRuntime as valid states.\n\nChange-Id: I72f23d25fa3bdcfd08f3113b091303535a327c14\n"
    },
    {
      "commit": "5ddbe0bd1d3091f7afca7ad7e8ce8494c0c79994",
      "tree": "666bd76cc8ae242b31aaf78ff6c0a44ea682a4bb",
      "parents": [
        "28c7bfdb245c09dfb6d953c42c42ebc5bb178ea1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:58:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:58:24 2012 -0700"
      },
      "message": "Various bits of LLVM changes that are in dalvik-dev but not ics-mr1-plus-art.\n\nLLVM guys: please review this; I don\u0027t know why you only had these changes\nin dalvik-dev, but I\u0027m assuming it wasn\u0027t deliberate.\n\nChange-Id: Icfcba5ea13fe135b441ce6b78a1638cb5e37e30e\n"
    },
    {
      "commit": "b5c4922f3c0f56eec5064536c4bb780c4f58f3fb",
      "tree": "40d9a7dc7a336017c03ad1f1d8f7ee7640c7de96",
      "parents": [
        "8cea5fd3a46e6bd1d91fe0e9cacd75f22bbb1326"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed May 30 00:40:26 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed May 30 00:40:26 2012 -0700"
      },
      "message": "Fix stack overflow problem in art-llvm.\n\nFor JRN54F, dex2oat needs 8MB stack size.\n\nChange-Id: Ief8062722df9acedab2f4008b4ff149205c32c77\n"
    },
    {
      "commit": "8cea5fd3a46e6bd1d91fe0e9cacd75f22bbb1326",
      "tree": "6f18a2081d5bf204d158d2e019a3e70fa1c5383f",
      "parents": [
        "35be9b1f7d5b51652adda85d79e368597df68d64"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue May 29 22:22:32 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue May 29 22:25:12 2012 -0700"
      },
      "message": "For art-llvm, fix stack size to compile ThinkFree.\n\nChange-Id: I14e4e5c7d6eb5db84e4752c1fa3763a7c29b2081\n"
    },
    {
      "commit": "e94d9b23c52ec0f36c8a132914eac33bc707faff",
      "tree": "53a3b1262f9f01f12507ec2aa1f1fd6fa774fc72",
      "parents": [
        "024cf66d3359c015fabca8f5f3964592973e3f6e"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue May 22 09:01:24 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon May 28 21:04:37 2012 -0700"
      },
      "message": "Add dex_lang as common frontend to lir and LLVM. dex_lang + bc2lir \u003d\nGreenland\n\nFirst commit of Greenland compiler: It\u0027s working in the sense of oat\ntests. E.g., mm test-art-host-oat-Fibonacci. It shows the correct\nbitcode before lir.\n\nChange-Id: I91cbb02188325eb1fa605ed71ec7108fd2b0dbb9\n"
    },
    {
      "commit": "bf1b4574dc681d49696571c59033e8c63583a029",
      "tree": "299abb1e367c64de42e0f8f45f81acd407b941b7",
      "parents": [
        "8829635f1326e8cf336415da5c9aa58b1b11959b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:11:39 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:20:38 2012 -0700"
      },
      "message": "Fix multithreaded dex2oat on Mac OS.\n\nAlso ensure that we error out rather than writing an empty .oat file if we can\u0027t\nopen one or more .dex files.\n\n(cherry picked from commit 1376f8687373317dc8766ffd5b475c5e294f1fdc)\n\nChange-Id: I60cc6b8e3d47018fa2b58698e8ed14fd6d259029\n"
    },
    {
      "commit": "68adbe41c7d9295da2bfc521d737ba6dabd36c98",
      "tree": "45f0c74e8ef2a16f8baafd3be9befcb42af1c616",
      "parents": [
        "6f29d0e6d5444ff84157c922c23c221567dcc6c5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 17:18:08 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 17:18:08 2012 -0700"
      },
      "message": "Better handle of 0 edge case in duplicate method skipping\n\nChange-Id: Ic701096167e57d8e639a16e4dee8eea2cbb3e0a8\n"
    },
    {
      "commit": "6f29d0e6d5444ff84157c922c23c221567dcc6c5",
      "tree": "bd59a7c1006507d5d230876e703814191db9f0df",
      "parents": [
        "71e85b74eb5710a689e83623706b3bb372762eb5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 15:50:29 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 16:51:58 2012 -0700"
      },
      "message": "Skip compilation of dead code from duplicate methods\n\nChange-Id: If6114b3cd8e9a2d9a901dc93c352cee6afa3361f\n"
    },
    {
      "commit": "90dc30f4b9967e850d0594e57dfa8e7cb0369575",
      "tree": "f5944514f0fd7b6072050aa4edb8805aefb4c1ef",
      "parents": [
        "9b49689cc20c6b84cfcb049a8093f11e65ee8522"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 23 02:03:30 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 23 02:38:11 2012 -0700"
      },
      "message": "Remove the barrier between each compilation of dex files.\n\nChange-Id: I14392283cd59189f91f9aa947135a15c44ca5731\n"
    },
    {
      "commit": "fd8ea97f64fb6d32cbfe35729b816a22dfa18224",
      "tree": "6b9e7b5f9d92483cbf05dda01ebdbec24658bd3f",
      "parents": [
        "d668a06b5dcc3b0f7f788da4d756cd4ee6f1d0fa"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 16 02:28:08 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Apr 15 15:28:14 2012 -0700"
      },
      "message": "Remove the CompilerLLVM mutex lock workaround.\n\nChange-Id: Iefc4e020d6b0a9a67d4c7ad5780f28e0082393c2\n"
    },
    {
      "commit": "776ac1fa61237db645adb4370a4aab888530caf4",
      "tree": "fbdfe1dec5f1c890d479f700f2b11549d5574119",
      "parents": [
        "42f302c1da4cf1abf935d7aee29ece8d90441e0c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 13 23:36:36 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:38:06 2012 -0700"
      },
      "message": "Separate out more of LLVM build. Move verifier.\n\nMove the verifier to its own directory and break out major components.\nAvoid compiling unused files as part of the LLVM build, increase the use\nof unimplemented for LLVM.\n\nChange-Id: Icd3b1708363fb70ae99417d06ef8669d60446533\n"
    },
    {
      "commit": "a0e180632411f7fe0edf454e571c42209ee7b540",
      "tree": "97dc85e76c5449ec1a901226c44e0f68fec89870",
      "parents": [
        "e5eb1914de86129d78e965fb9f2e1bfb2aa68640"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 13 15:59:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 14 11:44:21 2012 -0700"
      },
      "message": "Add a SafeMap equivalent to std::map but without the error-prone operator[].\n\nChange-Id: Iae5ba2091c55a34dbd1005cf3d25fce2a8d5c1f9\n"
    },
    {
      "commit": "e2645d3e2db211bfd75775a2185c135ff387161a",
      "tree": "623fdeb19171df63c01d0a36f75ecf6ec53dde8e",
      "parents": [
        "4b952e74b4b2efa15cecedfc643c212eaeac2cc7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 14:42:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 15:32:48 2012 -0700"
      },
      "message": "Fix bug in protected field access.\n\nChange-Id: I38b094e54025d26950c0d8c8bb79d2de81d28428\n"
    },
    {
      "commit": "34e069606d6f1698cd3c33b39e72b79ae27e1c7b",
      "tree": "0feb7e9bde6cfe01c0df3ef2d8de3210570f7ce2",
      "parents": [
        "e62934d85fbc2d935afdad57eeade39ecbd7440a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "message": "Remove the useless \"suspend count already zero\" message for new threads.\n\nWe can actually detect the expected case of this warning ourselves, and\nnot emit it. Then we can upgrade the WARNING to a FATAL.\n\nI also tripped over the fact that the operator\u003c\u003c for Thread::State was out\nof date, so I\u0027ve moved the Thread enums up to namespace scope so the script\ncan automatically generate correct operator\u003c\u003c implementations for us. (All\nthe high-numbered thread states have been off by one for a couple of weeks.)\n\nChange-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633\n"
    },
    {
      "commit": "0045a290e6b79a274250e3112880c04bde437d4a",
      "tree": "a125d556b6c817218b14f6f3f72079b83d0032c4",
      "parents": [
        "d23f5206cf72ca3fb53ac3049649bb7d018232bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 21:08:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 22:38:22 2012 -0700"
      },
      "message": "Avoid a case of eager initialization.\n\nDon\u0027t mark as initialized classes that contain static field\ninitialization.\n\nChange-Id: Iedcabbdf355e8861eb7731650eee1467f68ae0cd\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": "448e93c728b352729afde3c8e95e902c08b1d929",
      "tree": "62f1748c09bf8b3e97cf941a3c2cc9afeeceb71b",
      "parents": [
        "f1498437b0d6beb9f4f91980b98cbeb0b5c773ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 22:30:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 22:30:06 2012 -0700"
      },
      "message": "Fix dex2oat on the Mac.\n\nWhat did we do before valgrind? _NSGetExecutablePath was responsible for the\nheap corruption. The vmmap(1) parsing was slightly off too.\n\nChange-Id: Id458d99c0f75e70a5c59cfbd785ea2efebfbdfce\n"
    },
    {
      "commit": "64277f38032208a0c1081ff9e466c04009b96383",
      "tree": "a7c2e92907584521c1caedbf5e6a798f5984c9e9",
      "parents": [
        "6e41d42f6b7977325a87a125c344c1c9cdf6c949"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 23:53:34 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 27 00:03:43 2012 -0700"
      },
      "message": "Additional check to catch BooksTablet monkey issue\n\nChange-Id: I9dfe695b008b2ca23998d2cfb29e5ba04354a029\n"
    },
    {
      "commit": "de08e84143f7339d5bad24f252681207abbe0951",
      "tree": "6a810189c3fb29f24c8e057b5fdfc824012f0b2d",
      "parents": [
        "0cc6ab6c5104f565a0a3256b5b2b31c6383be189"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 21 00:34:12 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:10:46 2012 -0700"
      },
      "message": "Remove ELF filename argument.\n\nWe are embedding the ELF image in the Oat file.  We don\u0027t\nneed ELF filename anymore.\n\n(cherry picked from commit b245ccacf447b014838535a7d8a58365642f0c3d)\n\nChange-Id: I235429222401100c09381ba44a3978f38d5b499c\n"
    },
    {
      "commit": "df57614aa99801a50202e284ee8e8497d8e92621",
      "tree": "c58b9f0294f2c4e3d0e5d0517eee2e4d8fad8daa",
      "parents": [
        "0f0899ac8fbaa470922976d058bbb144fb9eea06"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Mar 20 17:36:32 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:09:36 2012 -0700"
      },
      "message": "Add GetElfImages() method to CompilerLLVM.\n\n(cherry picked from commit 950fc6e6a6b568f0cf511c092bee3d31547dc857)\n\nChange-Id: I1ded5909bae4d87ed05b2c192fcb2362eaa37461\n"
    },
    {
      "commit": "f7015fd55a8dc969ac2440ffc829a6b4d942fb5a",
      "tree": "735c4ba7aed0089c073effd5e530e6f53fcdf720",
      "parents": [
        "106b2a03be66748a25b9019e4c222cee498d559f"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sun Mar 18 01:19:37 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:01:20 2012 -0700"
      },
      "message": "Add ELF loader to load the executables.\n\n(cherry picked from commit 8c9ca414a7ed05c3530973c63496e477e9ca5eb7)\n\nConflicts:\n\n\tsrc/compiler.cc\n\nChange-Id: I950749625d5b266990c617e2d8cea688fbdc11fb\n"
    },
    {
      "commit": "106b2a03be66748a25b9019e4c222cee498d559f",
      "tree": "c949a5948b6c4fedba020de206c334dec04b0f10",
      "parents": [
        "aeb53035febaaa186b3abdac55e21579a8988d84"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sun Mar 18 04:41:38 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:56:51 2012 -0700"
      },
      "message": "Create an instance of CompilerLLVM in the constructor of Compiler.\n\n(cherry picked from commit 120539c9a333789f52dd75aa3ec2d303c7cf2119)\n\nChange-Id: I43d10f712e515cffd2f97e628a9d2aa2ff994f5b\n"
    },
    {
      "commit": "398f64b5805246765b699839b439e18c0dfbf2ee",
      "tree": "de3f86de82289b1734b12cdc7c4292f4aff16f55",
      "parents": [
        "ee0fa76b2e5d39ad36d1ff144b2d0270df81e606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "message": "Remove more lint, mostly C-style casts.\n\nChange-Id: Iaf1f23290e35ed48e5795fb20690953a9a834457\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "67d920071fe4a0aa8b8bc339e93b18276238c320",
      "tree": "a665c6bdeecf149fc976b992c71543642b44e464",
      "parents": [
        "16da17c8d39a813f1b880f576fd2f8bc98ac4a9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "message": "Add a compile-time constant bool equivalent to !defined(NDEBUG).\n\nThis makes some code slightly less awkward.\n\nChange-Id: Iafd359dd0baa65510ed9510a7d93ee01605f51e4\n"
    },
    {
      "commit": "ba0668ecd2a6459ed7c77012995ad08d27f88725",
      "tree": "4840d42598b7a30d5e41636d979be28390dee93e",
      "parents": [
        "1ac29447d6053b142f257330d6e237660076911e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 13:14:07 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 13:14:07 2012 -0700"
      },
      "message": "Make non-debug dex2oat omit timing and stats information\n\nThis is to try and avoid logcat rollovers during startup in stability monkey runs\n\nChange-Id: I32a84517fdb97829d7efa3067cb99e2f38b049ae\n"
    },
    {
      "commit": "1ac29447d6053b142f257330d6e237660076911e",
      "tree": "9d708925c501974149d16a4b35e66e330eb4eb9a",
      "parents": [
        "d5347e08172d6d462c703c0f5e1ce9ef070ec69d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 26 11:37:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 26 11:50:04 2012 -0700"
      },
      "message": "Verifier sets class to error on hard error, resolved on soft.\n\nThis solves problems with the runtime finding classes that were rejected\nby the verifier at compile time that end up passing at runtime. Before,\nall classes that failed compile time verification were being set to\nerror, and now only classes that have hard errors should be set to\nerror.\n\nChange-Id: I3a694d12ba4d6051b0310b21f8161f5aa62b43c3\n"
    },
    {
      "commit": "462c94449720e0dc6b93d7138d835d345ccf67ae",
      "tree": "e719ceab0e64e0cc2ca4acb6ee715623ab458215",
      "parents": [
        "81ff3184e7eb8de4605c7646674ea4f9fa29b5f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 18:47:50 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 08:42:04 2012 -0700"
      },
      "message": "Fix AttachCurrentThread to use the right thread group.\n\nChange-Id: I9818845c005563d894a571edc4f9be9862312380\n"
    },
    {
      "commit": "4155fcd385bebe869e04c50ff99f4d3d608097bb",
      "tree": "fd8556bbd5c10d77a55d87db16649706dcf81e44",
      "parents": [
        "47282e59ca60fc8a1e02b23a1cb59916dd7c8b81"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 21 11:42:12 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 16:56:56 2012 -0700"
      },
      "message": "Fix sharpening of super when methods class \u003d\u003d referrer class.\n\n(cherry picked from commit 6791bdb5ce8daca5a555117e9b02d11437f81542)\n\nChange-Id: I41e11858e657174dd241b6227c03c54c7992f0fa\n"
    },
    {
      "commit": "0637e27af8e54f39634024dc77e8b094f21782f9",
      "tree": "59f09f85479b52445cd890203d62f72eabe2d60e",
      "parents": [
        "53c5fc6394dd31da673dab032435b96aaf64fecd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 20 01:07:52 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 20 01:07:52 2012 -0700"
      },
      "message": "Enable kSupportBootImageFixup\n\nChange-Id: I57b338b3d985e2de96a6fb99327fc274406e3844\n"
    },
    {
      "commit": "f582258f0e296223a091fd64231a203ad71e9649",
      "tree": "23049122f075220421803a1745cf634337360a40",
      "parents": [
        "a7c12688da57ea052e127776ad3043ca5079488d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:34:31 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:59:13 2012 -0700"
      },
      "message": "oat file patching\n\nChange-Id: Idbbdf19f3a77498d79d043fd33ca12ce39cafbb7\n"
    },
    {
      "commit": "3fa13791c51985d9956d01bc465de6d36c3390d3",
      "tree": "b7c5e7a8e3462edd64e141e9de9f3e170333748d",
      "parents": [
        "10fa929276fc069f882783174fda7af8194d41cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 15:53:45 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 15:55:17 2012 -0700"
      },
      "message": "Patch support for the boot image.\n\nRequires oat and image writer support.\n\nChange-Id: Ic87dd481a4f86d15faa1e830ea1dd0b3d664c220\n"
    },
    {
      "commit": "2ed3b9536ccfd7c7321cc18650820b093b22d6c9",
      "tree": "c0e211414d0fed674ed2d1fbb340433b49adb57b",
      "parents": [
        "e9dc4c0beae58d7d6d4cf43140c233251e06bbb7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 11:49:39 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 12:34:56 2012 -0700"
      },
      "message": "Implement direct apk -\u003e boot calling\n\nAlso sharpen super calls.\n\nChange-Id: Ie4d3ab2cbf2961a06ec86762a53132f49a4ed922\n"
    },
    {
      "commit": "f320b639eee1ec0e9d99e8d6c2a805892d016807",
      "tree": "2da40113e4edf1c37e19fae6445ecc4d62a05681",
      "parents": [
        "3d661949dba4a2f3311e6f74a3c42b5addf1f534"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 13 18:47:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 14 23:15:21 2012 -0700"
      },
      "message": "Enable sharpening, fix off by one in GetOatCodeFor(Method*)\n\n(cherry picked from commit 0dd87f7f60470057eddf635e209496830911ef3b)\n\nChange-Id: I53ad0b83ac74112cfd46f10fb6b74a627286ded3\n"
    },
    {
      "commit": "6f4976c1a9fdaf108974143cd11e6b46037fd24e",
      "tree": "f0c21b703eab0039f5c31e1b272144c5228b8fa3",
      "parents": [
        "13b835a45f3dccff1c6d024ad82a2044831c7c41"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 21:19:01 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 14 11:27:16 2012 -0700"
      },
      "message": "Replace some LLVM-specific code with something more general.\n\nThis basically gives any compiler a place to hang extra private data\noff art::Compiler, even though only LLVM needs it right now.\n\nChange-Id: I408778ea1010ab2ad9ec4810e5c53d468a8772c2\n"
    },
    {
      "commit": "13b835a45f3dccff1c6d024ad82a2044831c7c41",
      "tree": "73bbdc151d85b7fe83d6086e42f6da5c63ed7e7c",
      "parents": [
        "3fa1b7e7a7fc9785ba4e8335d730e5caf6343322"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 19:45:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 19:45:22 2012 -0700"
      },
      "message": "Fix LLVM #includes and push one piece of LLVM-specific lossage down.\n\nChange-Id: I9f2b7a9fd4d543a3bd9dd9f4c62367c28c69ea36\n"
    },
    {
      "commit": "3fa1b7e7a7fc9785ba4e8335d730e5caf6343322",
      "tree": "b20075991a2f9260d043accf818f629d368baec0",
      "parents": [
        "2f1deb5753ef39b82752fd01e7bc0fc4c15004b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 17:06:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 18:33:25 2012 -0700"
      },
      "message": "Unify the invoke stubs and replace \"oat\" with \"Art\" in the API.\n\nChange-Id: Ic1529d7568bd5297fdce4da69ede67c2f48487a4\n"
    },
    {
      "commit": "c4c9881e5d22432f3f1a30eeec5aa109dfc08a7d",
      "tree": "98f1125db961451699880019c8663d76e7b94d02",
      "parents": [
        "1580379bb02ee7866ca94d54851a4d08de12a5a4"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Mar 10 21:55:51 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 13 10:26:51 2012 -0700"
      },
      "message": "Fix the LLVM build. Separate out libart-compiler-llvm.so.\n\nAfter this refactoring:\nIf (!USE_LLVM_COMPILER), I pass the test-art and boot the phone alright.\nThe behavior is the same for non-LLVM builds as before. Multi-target\nart-compiler shared libraries are generated as before.\nIf (USE_LLVM_COMPILER), I generate libart-compiler-llvm.so successfully.\n\nNote that the ideal refactoring for the next step will be to always build\nart-compiler and LLVM-[arm|mips|x86] shared libraries. Currently, we\nhaven\u0027t removed all the ifdefs for libart.so yet, so this is not ideal yet.\nReason for not-done-yet is that the next step requires discussions.\nI can remove all the ifdefs today, but then the (!USE_LLVM_COMPILER)\nbuild will incur extra fields and overhead.\n\nThis refactoring allows us to restore the LLVM build situation to be before\nthe breakage yesterday, so we can continue making forward progress again.\n\nOne difficulty in the refactoring is that LLVM is not a method compiler\nin default, unlike (!USE_LLVM_COMPILER). LLVM actually compiles an LLVM module\nat a time normally. So we need to do more call backs and tell\nlibart-compiler-llvm.so in each invocation where we are in terms of\nOatCompilationUnit.\n\nAnother difficulty is that currently our LLVM compiler is not\nmultithreaded and requires locking, unlike (!USE_LLVM_COMPILER). So more\ncallbacks are needed. This will be fixed when we fix the multithreading\nissue.\n\nChange-Id: I93bce21b6d673254188f2a60b1a7f91b508e497f\n"
    },
    {
      "commit": "059d5c142b0ef1fa421153cdcc2326c5c56fd530",
      "tree": "af5ec4dd38cfc588b917f60ffe0017b0fd52706a",
      "parents": [
        "530fa005e2944d3b12712f80d974f0e753f568ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 17:39:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 17:39:18 2012 -0700"
      },
      "message": "Fix loading of compiler libraries on Mac OS.\n\nChange-Id: I0deecf991f4e45a37221a1348dddf2759144b0a0\n"
    },
    {
      "commit": "49c4894f76f6a7aec4d6a1ec2c901700c9108944",
      "tree": "ac32b9284b268b1ee0070f9ce380e1d77a69d7ae",
      "parents": [
        "efccc565091b3409ed1372615b4ea4e2f6c39323"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 15:15:37 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 15:15:37 2012 -0700"
      },
      "message": "Add instruction-set option to dex2oat\n\nChange-Id: I3beefe28abb0ea8fc4697eded2793fd52e3f12c7\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": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "9a8a8889418e09bf2d4ae3f683fbb40a71c3c8f4",
      "tree": "706ce6181dfd046845a82d60b3b66ee7270131d3",
      "parents": [
        "680b1bdd7e5d112ba4b95d6c81a43b65119b3b9c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "message": "Disable virtual call sharpening.\n\nA regression in voice search was seen. Disable for now. Add a few\nassertions to aid future diagnostics.\n\nChange-Id: I635b1126b3e45293489b6b7ad54d838773ae7030\n"
    },
    {
      "commit": "be5ff20bc68de0d14f043421815c5f3dbe0c39da",
      "tree": "31445fbc651ff0dec85678c48ae45969d78f6adf",
      "parents": [
        "63deaad18853e55097761e47a9eedd12eb0c1e58"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 21:57:49 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 21:57:49 2012 -0800"
      },
      "message": "Fix ART_USE_LLVM_COMPILER breakage.\n\nCope with today\u0027s compiler.cc change.\n\nChange-Id: I0f13536652a5b7c617648fe43a03dbbec391efd6\n"
    },
    {
      "commit": "731b2abfccd8704d129e3b8e46a086660161fef3",
      "tree": "dae3ad92a46b1846b767bfb643b1360b6973b8f7",
      "parents": [
        "f56197c5519395fcf8226a7148cc87367e0a7ad4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 06 16:53:35 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 06 16:53:35 2012 -0800"
      },
      "message": "Make the code more defensive against null DexCache values\n\nChange-Id: Iaa3f17dced518a5d2a53479b3ae3cebacb1e3b6a\n"
    },
    {
      "commit": "f56197c5519395fcf8226a7148cc87367e0a7ad4",
      "tree": "1403d90cb236e3643192e40a293b71ea8cd4a3be",
      "parents": [
        "9787ac4a18e71a57ed2b559759e9903b557a65dd"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 05 18:01:54 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 06 16:19:22 2012 -0800"
      },
      "message": "Verifier can handle an unresolved method or class.\n\nAdded a new dex verifier entry point that takes in a ClassDef index and\ncontext instead of a Class pointer. This allows basic structural\nverification to still be run on classes that FindClass fails to find. If\nthe basic structural classes fail, then the compilation for the class is\nskipped. Before, an unresolvable malformed class would cause the\ncompiler to segfault.\n\nChange-Id: Ia02c77560bf274281c4e22250983dc96511501eb\n"
    },
    {
      "commit": "9787ac4a18e71a57ed2b559759e9903b557a65dd",
      "tree": "57f673ba508c0fea41b9a231866ecd4b47f42adf",
      "parents": [
        "bc615a1d16969196168d5d4632f2cb1aa8b6664b"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Mar 06 18:24:03 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 14:38:23 2012 -0800"
      },
      "message": "Skip src/jni_compiler.cc from llvm backend\n\nLLVM backend has llvm-specific JNI compiler, which\nis using different calling convention and being\nincompatible with src/jni_compiler.cc, thus we are\nnot using src/jni_compiler.cc in the llvm backend.\n\nChange-Id: I68a3beb2668b4bcc8ed36aed57fa252907ad2453\n"
    },
    {
      "commit": "fb6adba0d5d5505610fbd325e7911db700a2f1e8",
      "tree": "84ad8f9cc55a2ae87f80c05927126af7e75604d7",
      "parents": [
        "123e8a7fdf69b40603f7df95f08d62c69ee1c07e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 04 21:51:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 05 08:56:55 2012 -0800"
      },
      "message": "Sharpen virtual calls to final methods.\n\nAlso remove unused instance resolution stub.\n\nChange-Id: I2abb988d107e98ac0148fb81464b22622a468382\n"
    },
    {
      "commit": "7f76761d8705b7aa5b1fdd2fc1ebb80250992f4c",
      "tree": "4a94f53797ce340ec147896baca6333522040637",
      "parents": [
        "94bbf8873848b9c5e99d0f77abe1cda0f038aadb"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 01 18:54:49 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 12:17:05 2012 -0800"
      },
      "message": "Cleanup LLVM code generation code.\n\nMaterialize the bitcode in the end of CompileClass,\nso that the code generation time won\u0027t be calculated\nin method compilation time.\n\nChange-Id: I1e2bd0b23bcb5c55bd966a31b1df0b8b34922f94\n"
    },
    {
      "commit": "dbe72bde0815ad53d26ec26da581c163d7928656",
      "tree": "e37e7e920bf42736845ce1ace6b94cb6801cbc7a",
      "parents": [
        "8ee03b5f4fce36047927191f7cc48c0ed2382445"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 01 18:27:33 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 11:52:45 2012 -0800"
      },
      "message": "Allocate local variable on the stack.\n\nChange-Id: I14ce622686d44e975e2760e2f1c1e0e64e83125f\n"
    },
    {
      "commit": "8b977d38483aaa08abcbdaa5fa888076c1142169",
      "tree": "ae61c7cb1c397582f22c5c585bb0b531fd8f59b0",
      "parents": [
        "88894ee835411de72025cd8a5d8d111a6f2a004a"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 21 19:14:55 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 17:11:27 2012 -0800"
      },
      "message": "Compile llvm.Module into ELF object file.\n\nChange-Id: I8faf7427944324c9bac12573d217cde2a2e658f1\n"
    },
    {
      "commit": "88894ee835411de72025cd8a5d8d111a6f2a004a",
      "tree": "76e4d1cfbb39f82cf6f97f679e0b90a2438f3beb",
      "parents": [
        "d1224c79631bd1801b067a0f212b91afa961a362"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Feb 13 16:42:22 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 15:29:05 2012 -0800"
      },
      "message": "JNI compiler.\n\nChange-Id: Ia9a52cced70b8c44d1354e3342ad27f212c8d993\n"
    },
    {
      "commit": "d1224c79631bd1801b067a0f212b91afa961a362",
      "tree": "6863033cc7e365536d549e2ee4f7613851685f11",
      "parents": [
        "ed2adb6158ffbe85c89aa5c9892a35bafa5006cd"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 29 13:43:08 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 29 15:03:33 2012 -0800"
      },
      "message": "Suppress compilation of malformed dexfiles to prevent compiler segfault.\n\nGeneric failures detected at compile time will not be fixed at runtime,\nso classes with generic failures are now added to a rejected classes\nset and not compiled at all. This prevents the compiler from\nsegfaulting on certain occasions when registers and indexes are out of\nrange, etc. There is one remaining segfault in the vm-tests now.\n\nChange-Id: Id67c12fd13f3e993a6a16a8625620daa0ea496cb\n"
    },
    {
      "commit": "4dd96f56909ec35c83a3d468b0e47769988c1a1d",
      "tree": "99fde7aab07e550864860825b7732a37fce81d81",
      "parents": [
        "45619fcc01fb6db1ac9481a91608eb46f90829e4"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Feb 29 01:26:58 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 11:53:18 2012 -0800"
      },
      "message": "Extract method-related information from CompilationUnit.\n\nExtract method-related information, such as class_loader,\nclass_linker, dex_file, dex_cache, code_item, method_idx,\nand access_flags from art::CompilationUnit, so that we\ncan use them in 2 different code generators.\n\nChange-Id: I20631cc73b6f01e9646a983156f3fcb066d732db\n"
    },
    {
      "commit": "45619fcc01fb6db1ac9481a91608eb46f90829e4",
      "tree": "cb25ff0b8ee54e092fab8579a9f56f47c08ab8e2",
      "parents": [
        "282dab03fd0c80819fa988ef2e81b2bae1c36287"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 29 11:15:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 29 11:25:14 2012 -0800"
      },
      "message": "Allocate small arg arrays on the stack\n\nCreate a helper class to either keep in a short local array or allocate\nthe arg array. This benefits JNI methods with a small number of\narguments by avoiding an allocation.\n\nChange-Id: I88a9ff6b7ff88b16021813650e9425697e934353\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "de6e4cf1b63acd7032a52826d9df21ff649d7128",
      "tree": "00a44b884b33591e3a33512123484145bfee6ff0",
      "parents": [
        "408e41920549371079eecd6a6ba2b7ce0fa7e328"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 27 14:46:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 27 14:46:06 2012 -0800"
      },
      "message": "Add dex2oat -g to control whether the compiled code has debugger support.\n\nChange-Id: I69c83f707d874fee0464929769b1f1f28e9d97ee\n"
    },
    {
      "commit": "8cd6ddaeb78cc904e13bac88753654a04b2e15b8",
      "tree": "005ebbe14563bb3ec5bfc9837bf3fd4284427cec",
      "parents": [
        "a656a0f6fbcf2ba3f15cae54a773b9c636dd32c1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 10:15:34 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 23 15:55:20 2012 -0800"
      },
      "message": "Numerous fixes to compiler and verifier for cts vm-tests.\n\nClassNotFoundExceptions in ResolveType are converted to\nNoClassDefFoundErrors.\n\nCompiler checks for puts into final fields.\n\nMethod resolution searches direct methods if an appropriate virtual\nmethod can\u0027t be found.\n\nInvocations of \u003cclinit\u003e are rejected by the verifier.\n\nInvoke-super and invoke-virtual can\u0027t be used on private methods.\n\nUsing invoke-interface on non-interface methods and not using\ninvoke-interface on interface methods leads do an error.\n\nChange-Id: Ia589f1ffccf91b62812ee34c8c5fae1aaf3798c6\n"
    },
    {
      "commit": "f04364f0ff789935d05490ee684f01c3de431780",
      "tree": "a47070af79126f5aa315480280b7b44ba7205ef1",
      "parents": [
        "7caf37e2aebdb9e6f10f691a8148dd3d3405f157"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Feb 10 12:01:39 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Feb 19 02:50:04 2012 -0800"
      },
      "message": "Add upcall compiler.\n\nUpcall compiler compiles the invoke stub for native-to-managed\nmethod invocation.\n\nChange-Id: I09fb1e4b3f166e8da5de73e8f39509cd9be6c152\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\n"
    },
    {
      "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"
    }
  ],
  "next": "169c9a7f46776b235d0a37d5e0ff27682deffe06"
}
