)]}'
{
  "log": [
    {
      "commit": "8b5b69813ef4d718db2e38e51867883511a3eeea",
      "tree": "ae0e2b8dfe9ae64554a43a20acdf47173295b43c",
      "parents": [
        "cfd8adec84701752a56ddccf556b8c40142a9e0f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 17:55:28 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 17:55:28 2014 -0700"
      },
      "message": "Fix mac build (second attempt)\n\n  It appears that the version of mac ld with\n  -export_dynamic is pretty recent.\n\n  Remove -export_dynamic to fix build for older\n  mac versions (?)\n\nChange-Id: Ibc3b2f9a0aeec9125cd73b7df0cf22de9e8e4d16\n"
    },
    {
      "commit": "1d74e57fa22fbcad1e14d776c771472b2d8438fb",
      "tree": "44df335a7c560fcdb47560b6c27750af4a54b0d4",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 12:18:10 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 15:55:57 2014 -0700"
      },
      "message": "Fixing mac build\n\n MacOS static linker does not understand --export-dynamic\n and --version-script. According to man ld there is\n -export_dynamic option which should do the same\n thing.\n\nChange-Id: I8cde8c6c7305bebbbcc9dded143fa5cdaf386d65\n"
    },
    {
      "commit": "8508a436efa7979ad54f644e60dad483c8499be2",
      "tree": "b06ba143b6f9c1f2bc43673cbd4b71b8a0b20144",
      "parents": [
        "e4228d93de256c72df9d57f0def938b11cfe21a1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 11:38:46 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 14 11:38:46 2014 -0700"
      },
      "message": "Untie gtest executables from LD_PRELOAD\n\nBug: 15345057\nBug: 15426766\nChange-Id: I053ddbacaf918405ce6b38a5ba0d623299c7b5c8\n"
    },
    {
      "commit": "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4",
      "tree": "2bc48925657e791441aa947d4d629994a0696e78",
      "parents": [
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "message": "Revert \"Introduce a class to implement optimization passes.\"\n\nThis reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.\n\nChange-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e\n"
    },
    {
      "commit": "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8",
      "tree": "0bd049b173d23fcaed5c1b5cb4299e8faef840da",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 30 16:15:14 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 11:52:58 2014 +0100"
      },
      "message": "Introduce a class to implement optimization passes.\n\n- Add art::HOptimization.\n- Rename art::ConstantPropagation to art::HConstantFolding in\n  compiler/optimizing/constant_folding.h to avoid name\n  clashes with a class of the same name in\n  compiler/dex/post_opt_passes.h.\n- Rename art::DeadCodeElimination to\n  art::HDeadCodeElimination for consistency reasons.\n- Have art::HDeadCodeElimination and art::HConstantFolding\n  derive from art::HOptimization.\n- Start to use these optimizations in\n  art:OptimizingCompiler::TryCompile.\n\nChange-Id: Iaab350c122d87b2333b3760312b15c0592d7e010\n"
    },
    {
      "commit": "724c96326dea6ec33287a0076279c136abb0208a",
      "tree": "350acb15d7a30f76d6a451626bd5e3e701cd61d4",
      "parents": [
        "ef3e89b9281525d6c084136c379346608b44d933"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 12:27:27 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 15:10:00 2014 +0100"
      },
      "message": "Also remove environment links to removed instructions.\n\nChange-Id: I505163fb8683269c7d3fe21b34df92337d244552\n"
    },
    {
      "commit": "d31cf3d55a0847c018c4eaa2b349b8eea509de64",
      "tree": "2594116391a59c1fce83c5cbd9058ba76534fec0",
      "parents": [
        "e07d111b9bff8b68b8d0ed44fb95805a5c6f47fb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 17:30:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 19 13:59:39 2014 +0100"
      },
      "message": "First optimization in new compiler: simple GVN.\n\nChange-Id: Ibe0efa4e84fd020a53ded310a92e0b4363f91b12\n"
    },
    {
      "commit": "556c3d193134f6461f3e1fe17c032b087c5931a0",
      "tree": "436660c7155d0864c37f8aeabbc0f52e889a0cc2",
      "parents": [
        "6aa606c9284ac31961f4c5b20c3645ac78acfaad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "message": "Initiate a constant propagation pass in the optimizing compiler.\n\n- Perform constant folding on int and long additions and subtractions in\n  the optimizing compiler.\n- Apply constant folding to conditions and comparisons.\n\nChange-Id: Ic88783a3c975fda777c74c531e257fa777be42eb\n"
    },
    {
      "commit": "72bceff11a98cc1ecdb64a6fae16c521f99ec6a7",
      "tree": "d326cc4fd32315735466efbb17ea22adf121395c",
      "parents": [
        "ccc07a9579c554443cd03a306ca9b4f943fd2a93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 15 18:29:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:23:21 2014 +0100"
      },
      "message": "Initiate a dead code elimination pass in the optimizing compiler.\n\nChange-Id: Ie9db5d8e2c2c30e34145a0f7d2386b8ec58cfc4e\n"
    },
    {
      "commit": "ccc07a9579c554443cd03a306ca9b4f943fd2a93",
      "tree": "3514cb48520ecd6cf4bb93129bed5cd97f24cb43",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 16 14:48:16 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:19:46 2014 +0100"
      },
      "message": "Add CFG and SSA form checkers in the optimizing compiler.\n\nChecks performed on control-flow graphs:\n- Ensure that the predecessors and successors of a basic block are\n  consistent within a control-flow graph.\n- Ensure basic blocks end with a branch instruction.\n- Detect phi functions listed in non-phi instruction lists and vice\n  versa.\n- Ensure a block\u0027s instructions (and phi functions) are associated\n  with this very block.\n\nChecks performed on SSA form graphs:\n- Ensure an instruction dominates all its uses.\n- Ensure there are no critical edges.\n\nChange-Id: I1c12b4a61ecf608682152c897980ababa7eca847\n"
    },
    {
      "commit": "2cbaccb67e22c0b313a9785bfc65bcb4b25d0676",
      "tree": "daeb766e19880b651fd9c4a719c9a07dd7d4bd0e",
      "parents": [
        "bace0378d720a1d2938ec7f6be17e2814671d20a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 14 20:34:17 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 16 12:50:08 2014 -0700"
      },
      "message": "Avoid printing absolute addresses in oatdump\n\n- Added printing of OatClass offsets.\n- Added printing of OatMethod offsets.\n- Added bounds checks for code size size, code size, mapping table, gc map, vmap table.\n- Added sanity check of 100k for code size.\n- Added partial disassembly of questionable code.\n- Added --no-disassemble to disable disassembly.\n- Added --no-dump:vmap to disable vmap dumping.\n- Reordered OatMethod info to be in file order.\n\nBug: 15567083\n\n(cherry picked from commit 34fa79ece5b3a1940d412cd94dbdcc4225aae72f)\n\nChange-Id: I2c368f3b81af53b735149a866f3e491c9ac33fb8\n"
    },
    {
      "commit": "fbc695f9b8e2084697e19c1355ab925f99f0d235",
      "tree": "03e643aa9b468a512873293528bec93438580bab",
      "parents": [
        "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 15:33:30 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 16:18:12 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement suspend checks in new compiler.\"\"\n\nThis reverts commit 7e3652c45c30c1f2f840e6088e24e2db716eaea7.\n\nChange-Id: Ib489440c34e41cba9e9e297054f9274f6e81a2d8\n"
    },
    {
      "commit": "7e3652c45c30c1f2f840e6088e24e2db716eaea7",
      "tree": "a6bdb852a5d1337bd095d0ad8eab90f6689aee9e",
      "parents": [
        "6fbce029fba3ed5da6c36017754ed408e6bcb632"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 14:34:01 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 14:34:01 2014 +0000"
      },
      "message": "Revert \"Implement suspend checks in new compiler.\"\n\nThis reverts commit 6fbce029fba3ed5da6c36017754ed408e6bcb632.\n\nChange-Id: Ia915c27873b021e658a10212e559095dfc91284e\n"
    },
    {
      "commit": "6fbce029fba3ed5da6c36017754ed408e6bcb632",
      "tree": "71debbb7c475be1508e14a7986ed69e75e5b0e4c",
      "parents": [
        "8accb5ac557598fd40b80214bf87517bc4b7bc41"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 10 10:23:58 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 12:43:06 2014 +0100"
      },
      "message": "Implement suspend checks in new compiler.\n\nFor simplicity, they are currently placed on all (dex-level)\nback edges, and at method entry.\n\nChange-Id: I6e833e244d559dd788c69727e22fe40aff5b3435\n"
    },
    {
      "commit": "928f72bd75c385ba2708c58521171a77264d4486",
      "tree": "86f7fa7a21e3f6d21c9cab2d4fffe4aaa42dc458",
      "parents": [
        "dab9ed52f2df7189b81ccf3237b030ff638a492a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 09 19:53:48 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 15:50:42 2014 -0700"
      },
      "message": "ART: Fix things for valgrind\n\nWire up valgrind gtests. Add valgrind-test-art-host, currently\nonly depending on valgrind-test-art-host-gtest32.\n\nFix an Alloc setting to allow running valgrind.\n\nRefactor the fault handler to manage (and correctly release) the\nhandlers.\n\nFix minor failure-case leaks exposed by tests.\n\nFailing tests:\n\nThe optimizing compiler is leaking non-arena-ed structures\n(e.g., assembler buffers), as code generators are not destroyed.\nThe solution has been moved to a follow-up CL.\n\nNote: All 64b tests are failing as we cannot allocate a heap.\n\nChange-Id: I7f854cfd098d9f68107ce492363e7dba9a82b9fa\n"
    },
    {
      "commit": "0ff21b14572d06b30698b2fd09072e2bc6c922ae",
      "tree": "83f81de869db485331b8a5e211d8367704ada698",
      "parents": [
        "20acd5b032870564537b81b9801f6afee499186d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 21 18:04:38 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 21 18:04:38 2014 -0700"
      },
      "message": "ART: Add dex dependency for gtest\n\nChange-Id: I22d5e9b69e40585c6ee57381ee758b4b32e07f96\n"
    },
    {
      "commit": "deb6fe2ff103436626cdb3aec20e0e68813aa05f",
      "tree": "4191540dcf34e536a7804d42442cf78270f4fb86",
      "parents": [
        "3ea69c0abce1b81b3c45033867d49b00e6d6b709"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 16:07:10 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 16:07:16 2014 -0700"
      },
      "message": "Really fix target gtest dependencies\n\nIn 64006834b26f7138131fac87c3b0973cda70e560 we started depending on\nTARGET_CORE_JARS which are phony targets and undefined when using\n\"mm test-art-target\".\n\nChange-Id: I671c5d6068ff999782ad5f388f3077f4c1594884\n"
    },
    {
      "commit": "db8a664e0b68c7c4d36270cd21dce8de1912d7f9",
      "tree": "3f7fcf610d2de28159cf77ab8e190e18a072e979",
      "parents": [
        "37f048b19da5ac245a6b2a8473b326d2167cc692"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 14 17:18:52 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 15 09:38:52 2014 -0700"
      },
      "message": "Prevent stubs from being installed in java.lang.reflect.Proxy.\u003cinit\u003e.\n\nThis CL is a better fix for proxy tracing and undoes the changes in\nhttps://android-review.googlesource.com/#/c/103025/\n\nChange-Id: Ie82bb49f07774bd08a6720ddbe5b1f8ee9363acf\n"
    },
    {
      "commit": "64006834b26f7138131fac87c3b0973cda70e560",
      "tree": "a4eba5c9cf63564ad85f64ddfd3f1fa8e1fcbf40",
      "parents": [
        "028ca296731ed12bc4701da19f82407b7c504aa6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 07 01:58:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 07 18:16:27 2014 +0000"
      },
      "message": "Fix target and host gtest dependencies.\n\nChange-Id: I0da17b12fc2164d9d8bdb8bcf61947c7788c6b8b\n"
    },
    {
      "commit": "e71d59715a2f0adb0aa539639b83b8d410fc679f",
      "tree": "3489eea652e64e07fae227faa89c899572c8cea7",
      "parents": [
        "a947ebc45d2785522b3c9d3295be68fd35d548be",
        "f0a3f09c3d54646166a55c05a6b39c7dd504129c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 06 19:53:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 05 00:20:48 2014 +0000"
      },
      "message": "Merge \"Fix proxy tracing and enable tests that now work with tracing.\""
    },
    {
      "commit": "f0a3f09c3d54646166a55c05a6b39c7dd504129c",
      "tree": "35a76479f1b774ae100727547a48da5bc0878e66",
      "parents": [
        "484e2c2d3531e5bb36f0e1e12f26c708939c6579"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 24 16:26:09 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 06 12:49:57 2014 -0700"
      },
      "message": "Fix proxy tracing and enable tests that now work with tracing.\n\nAlso updates proxy_test to generate an image for GetQuickOatCodeFor.\n\nBug: 16386215\nChange-Id: Ie7daad3d73ea7b60187bc1e7037ade0df8277107\n"
    },
    {
      "commit": "2c26501d24d929abe096ecce44f91410290b33c0",
      "tree": "be064a46a1da5feb4db07c154506063d3fd95a13",
      "parents": [
        "484e2c2d3531e5bb36f0e1e12f26c708939c6579"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 05 18:15:56 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 06 11:34:20 2014 -0700"
      },
      "message": "Add card table test.\n\nTests some of the functionality supported by the card table.\n\nRemoved some logcat spam from monitor_pool.\n\nChange-Id: I1423816a72572f78aca44552effa2b4c6aac46c8\n"
    },
    {
      "commit": "86507ed48af6046ee9e5bc84daeb795fc8acc3bf",
      "tree": "49b617a182836f0c3772e10981ec5b168a9fdf5b",
      "parents": [
        "e2f654a463976f811c5358fc0de68c0492601274",
        "99ea58cc68b51837c065f4a2a54efbf208dd76fa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 25 13:34:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 23 19:30:00 2014 +0000"
      },
      "message": "Merge \"Add a new stack map scheme that encodes compilation info per pc.\""
    },
    {
      "commit": "55fff044d3a4f7196098e25bab1dad106d9b54a2",
      "tree": "e986d3788b9659d60c5ffc6f2138b206514a1c6e",
      "parents": [
        "055fb15e980347d7975d8f88c531b752c0f9b316"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 10 12:42:52 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 23 13:11:03 2014 +0100"
      },
      "message": "Rewrite topological sort order and improve GVN.\n\nRewrite the topological sort order to include a full loop\nbefore the blocks that go after the loop. Add a new iterator\nclass LoopRepeatingTopologicalSortIterator that differs from\nthe RepeatingTopologicalSortIterator by repeating only loops\nand repeating them early. It returns to the loop head if the\nhead needs recalculation when we reach the end of the loop.\n\nIn GVN, use the new loop-repeating topological sort iterator\nand for a loop head merge only the preceding blocks\u0027 LVNs\nif we\u0027re not currently recalculating this loop.\n\nAlso fix LocalValueNumbering::InPlaceIntersectMaps() which\nwas keeping only the last element of the intersection, avoid\nsome unnecessary processing during LVN merge and add some\nmissing braces to MIRGraph::InferTypeAndSize().\n\nBug: 16398693\nChange-Id: I4e10d4acb626a5b8a28ec0de106a7b37f9cbca32\n"
    },
    {
      "commit": "99ea58cc68b51837c065f4a2a54efbf208dd76fa",
      "tree": "065c1335213b0bff5c3fb7a0dc79785f77441c9f",
      "parents": [
        "b5a214105d4c9b6c14de1649764950dd35bd620f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 02 15:08:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 12:47:27 2014 +0100"
      },
      "message": "Add a new stack map scheme that encodes compilation info per pc.\n\nEncodes stack mask, register mask, dex register values, and inlining\ninfo. The encoding is currently very straightforward: there is no\nclever encoding, nor compression.\n\nChange-Id: I5fd9ae28189a5513cd9e3c8d52c648463207643d\n"
    },
    {
      "commit": "1a43dd78d054dbad8d7af9ba4829ea2f1cb70b53",
      "tree": "9460255e0afe00e2976a8d0485d8fc5e3219c6fd",
      "parents": [
        "b5a214105d4c9b6c14de1649764950dd35bd620f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 17 15:15:34 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 10:39:33 2014 +0100"
      },
      "message": "Add write barriers to optimizing compiler.\n\nChange-Id: I43a40954757f51d49782e70bc28f7c314d6dbe17\n"
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "0025a86411145eb7cd4971f9234fc21c7b4aced1",
      "tree": "933b8b96ea970c23a7b3ce313c7c6d46f807dadd",
      "parents": [
        "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 08:26:40 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\n\nBroke the build.\n\nThis reverts commit 7fb36ded9cd5b1d254b63b3091f35c1e6471b90e.\n\nChange-Id: I9df0e7446ff0913a0e1276a558b2ccf6c8f4c949\n"
    },
    {
      "commit": "7fb36ded9cd5b1d254b63b3091f35c1e6471b90e",
      "tree": "eb1e3b96efd67cc6b84a6f7e35522f33973ca8db",
      "parents": [
        "93279da4a8475d187a0a2e75d50c88def5b4b8a5"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 02:05:10 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 21:24:47 2014 +0000"
      },
      "message": "Revert \"Revert \"Add implicit null and stack checks for x86\"\"\n\nFixes x86_64 cross compile issue.  Removes command line options\nand property to set implicit checks - this is hard coded now.\n\nThis reverts commit 3d14eb620716e92c21c4d2c2d11a95be53319791.\n\nChange-Id: I5404473b5aaf1a9c68b7181f5952cb174d93a90d\n"
    },
    {
      "commit": "95a059793c4c194f026afc74c713cc295d75d91a",
      "tree": "dab1800b2f19d4ed7359bf234c96202ddaf5a2ed",
      "parents": [
        "50fb243619d337d20b56d2713d861166d48cb491"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 30 10:01:32 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 10 09:37:47 2014 +0100"
      },
      "message": "Global Value Numbering.\n\nImplement the Global Value Numbering for optimization\npurposes. Use it for the null check and range check\nelimination as the LVN used to do.\n\nThe order of evaluation of basic blocks needs improving as\nwe currently fail to recognize some obviously identical\nvalues in methods with more than one loop. (There are three\ndisabled tests that check this. This is just a missed\noptimization, not a correctness issue.)\n\nChange-Id: I0d0ce16b2495b5a3b17ad1b2b32931cd69f5a25a\n"
    },
    {
      "commit": "74240819ae09e29b2753ef38f4eb4be1c2762e2e",
      "tree": "61e2d3aa7268ce49fe77715593896f59feb92fe6",
      "parents": [
        "32710dd4a0232149002a5ae7bde1c640cdffd564"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 17 10:35:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 10 00:51:04 2014 -0700"
      },
      "message": "Use memory chunks for monitors on LP64\n\nMonitor IDs in lock words are only 30b. On a 32b system that works\nfine, as memory is usually aligned enough that shifting works out.\nOn 64b systems, the virtual memory space is too large for that.\nThis adds memory chunks into which we allocate the monitors so that\nwe have base_addr + offset and can use the offset as the monitor ID.\nTo allow for relatively compact but growable storage, we use a list\nof chunks.\n\nAdded a global lock for the monitor pool.\n\nChange-Id: I0e290c4914a2556e0b2eef9902422d7c4dcf536d\n"
    },
    {
      "commit": "b63727cded6674db4768d49ef2a0833f773c8e5a",
      "tree": "2311a05540b31112b0edc1cef4dce77267eb00a3",
      "parents": [
        "1f3a9465aa91163e9f34404bda05c0c067f91267",
        "1af6a1fa35ff7dc0a5c653f19dbc8a91c914aa42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 08 19:18:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 02 20:52:16 2014 +0000"
      },
      "message": "Merge \"ART: Update Monitor::Wait so it releases monitor_lock_ before throwing an exception\""
    },
    {
      "commit": "1af6a1fa35ff7dc0a5c653f19dbc8a91c914aa42",
      "tree": "07807547760383cfe9310c70ea00eace03b2740b",
      "parents": [
        "13f89cb9930ea799c21559020da43c3845536da5"
      ],
      "author": {
        "name": "Elena Sayapina",
        "email": "elena.v.sayapina@intel.com",
        "time": "Fri Jun 20 16:58:37 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 07 18:39:55 2014 -0700"
      },
      "message": "ART: Update Monitor::Wait so it releases monitor_lock_ before throwing an exception\n\nThread should release monitor_lock_ Mutex (which guards shared structures behind Java monitor)\nin Monitor::Wait before throwing any exception. Otherwise the thread may be suspended by GC\nduring that time still holding the lock. This may cause deadlock during GC in case\nsome other thread needs to acquire the monitor_lock_. The other thread can\u0027t be suspended\nby GC then waiting for exclusive lock and \"thread suspend timeout\" occurs.\n\nChange-Id: Id02f45052e1cfc01e676a43434125817564d7874\nSigned-off-by: Elena Sayapina \u003celena.v.sayapina@intel.com\u003e\n"
    },
    {
      "commit": "1a2f84e80e852b1e210ed54fa995f3d781a23bd3",
      "tree": "d756055c5cdd000870da03f5ff4f9ebeb89e7e19",
      "parents": [
        "0da09a026fb6c612e659dc782312987b4515f472"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 16:05:18 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 07 16:05:18 2014 -0700"
      },
      "message": "Fix dex file dependencies for oat tests.\n\nThe initial prerequisit used as an argument to \"cp\" wasn\u0027t set causing dex2oat\nto attempt to compile dex2oat. Make the setting of host and target dex\ndependencies more explicit in build-art-test-dex and update the test rules\nappropriately.\n\nChange-Id: I4f591f817537043bcb0328c7623fe7e2f0830b60\n"
    },
    {
      "commit": "4d1231d61862b17bc9dce8ff65c5ada93bdcfb15",
      "tree": "935540d6e0201d24de6fa17d40a90424d9912336",
      "parents": [
        "8b11544881ad6c8aeb50ba7c6a594363c2b684ec"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 01 10:46:31 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 01 10:46:31 2014 +0100"
      },
      "message": "The host build has changed from lib32/lib to lib/lib64.\n\nUse the correct build variable for library dependency.\n\nChange-Id: I2f12d13b595d97b2806eb709613e2cc358f4cad4\n"
    },
    {
      "commit": "8b11544881ad6c8aeb50ba7c6a594363c2b684ec",
      "tree": "ca87cda486478f698d86d9c072d334d8b24a279c",
      "parents": [
        "8df113f2787769a5088639766c2f8812427865b6",
        "86797a791d692f81def5c1b5f0918992c49ed122"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 30 22:21:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 28 11:29:06 2014 +0000"
      },
      "message": "Merge \"AArch64: Add memcmp16() for Arm64; ensure xSELF not clobbered\""
    },
    {
      "commit": "86797a791d692f81def5c1b5f0918992c49ed122",
      "tree": "09cb46c5aa56e39a6399e3f3620dc2047948b872",
      "parents": [
        "29978887552542e3b7e7792070dad06392377648"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Jun 19 16:17:56 2014 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 30 14:00:23 2014 -0700"
      },
      "message": "AArch64: Add memcmp16() for Arm64; ensure xSELF not clobbered\n\nThis patch modifies memcmp() to memcmp16(). Please note that this\nimplementation of memcmp16() is based on the bionic\u0027s memcmp().\n\nHowever, to reflect a recent specification change, the file has been\nmodified to respect the new String.compareTo() behavior.\n\nA test for memcmp16() has been added. The string_compareto test in\nstub_test has been changed to invoke __memcmp16 in assembly stubs.\n\nAdd artIsAssignableFromCode to the list of native downcalls to\nstore and reload x18. Remove CheckSuspendFromCode, as it is unused.\n\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nChange-Id: Ie0b5425ecfb62906d29a5d02e84c7e07ffb34a11\n"
    },
    {
      "commit": "327e6b49230c2adcb142fe59ea03a6a13cfe346c",
      "tree": "fedb406ca9a7b5b7d9c732c755b4b50d141ead8c",
      "parents": [
        "29978887552542e3b7e7792070dad06392377648"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 26 23:10:37 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 30 14:22:03 2014 -0700"
      },
      "message": "We can no longer use \"adb shell sh -c ...\" internally\n\nChange-Id: I9357ca59f73b79fa56686d221c83e024137eee35\n"
    },
    {
      "commit": "eb85f2bab0b402094a56276558afbf0e137176eb",
      "tree": "92db4e127d76dacae5ed05d49f043901a5feeff1",
      "parents": [
        "b0947fcc8257da852dafb6337bd41dab568c7ba5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 25 13:23:00 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 25 13:43:17 2014 -0700"
      },
      "message": "Further refine gtest dependencies.\n\n(cherry picked from commit 4ac5c69266a7deab188e65df0e528eadc66e1c06)\n\nChange-Id: I3603776efbc697bae21e79f6976afbd21baf150d\n"
    },
    {
      "commit": "532714abd50c547f0fdbe830f811d99e621e2d34",
      "tree": "fe160d083a0e1c5ebc14b992bb04900853cf57ae",
      "parents": [
        "b5dc9444777bb027b070d3ff3fcf7a2a3fb7e3dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 25 02:15:31 2014 -0700"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 25 13:45:16 2014 +0100"
      },
      "message": "Fix test-art-target error\n\nChange-Id: If1f800a056b3f95252037163784ab3ae26d9fa6d\n"
    },
    {
      "commit": "665de8a1710d2418f60d3bffdc99bdac32252530",
      "tree": "ebd3fde6e4015a1a13f5dfa13fdd4be144d65346",
      "parents": [
        "d377971c505e8cfacc878b8c632cc40fcf7d88c5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 21:34:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 21:34:09 2014 -0700"
      },
      "message": "Fix various test dependencies.\n\nChange-Id: I2e4761f4cc061f74319a7b64ebe67c553d5297df\n"
    },
    {
      "commit": "afd9acc30bdd11cdd12d8209eb994cb371c65e33",
      "tree": "10ebfa28d992a96422fcf81eb28c98393719e9a6",
      "parents": [
        "ba778fae99ec3b38d4f98262e6b7072bab0e9de4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 17 08:21:54 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 16:47:31 2014 -0700"
      },
      "message": "Multilib ART host.\n\nBuild ART for the host as a multilib project with dalvikvm32 and dalvikvm64\nrunning as 32 or 64-bit repsectfully. Note, currently multilib host builds\nare not the default, you make the so by setting BUILD_HOST_64bit\u003d1.\nExtend tests to execute in both 32 and 64-bit modes. By default both 32 and\n64-bit tests are run, add 32 or 64 to the end of a test name to run it in\npurely that flavor.\nGiven the extra spam, modify oat tests to only generate console output when\nthe test fails.\nChange the test harness so that common commands are run when a test should be\nskipped, when it passes or when it fails. Use these commands to generate a\nsummary of passing, skipped and failing tests. Tests will be skipped if they\nare known to be broken or if a test has already failed. Setting the variable\nTEST_ART_KEEP_GOING\u003dtrue will force working tests not to be skipped.\nIn this change all tests running on the optimizing compiler are marked broken\ndue to breakages running them in a multilib environment.\nBreak apart Android.common.mk into its constituent parts, along with other\npieces of reorganization.\n\nStylistic nit, we refer to make rule targets as targets thereby overloading\nthe term target. While consistent with make\u0027s terminology, its confusing with\nthe Android notion of target. I\u0027ve switched to just calling targets rules to\navoid confusion in host tests.\n\nChange-Id: I5190fc3de46800a949fbb06b3f4c258ca89ccde9\n"
    },
    {
      "commit": "df10b32c4d0adfa86201169692eaa7ef038b642c",
      "tree": "4dc2b8cad9f516a932df96db23d5aefa762f14a6",
      "parents": [
        "f72b7d6066238fd3faa25aac671dbaa02aeafac9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 11 21:46:05 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 12 14:36:47 2014 -0700"
      },
      "message": "ART: Dex file verifier needs to check proto idx of method id.\n\nBug: 15570490\nChange-Id: I4e90aea6e77711ee37d14d96a1fc9a2fbb980d94\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "41c507a9dae44b8329a857da3d9810fab2e9ddc6",
      "tree": "78d2a1f81227ca41c4541be5fd87cacabaf06ed2",
      "parents": [
        "f71f8da2e83fefcec42ad77385c1df62f521ddad"
      ],
      "author": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Thu May 15 16:02:46 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 10 10:01:01 2014 -0700"
      },
      "message": "ART: Generalize code to find PC for artInvokeInterfaceTrampoline\n\nThis allows to determine target method when the interface method has\nno dex index, now also for X86-64 and ARM64.\n\nAdd constexpr functions to callee_save_frame.h to have compile-time\nsizes of callee-save frames. Add a test that ensures they agree\nwith computations by the corresponding ArtMethod methods.\n\nMove some instruction-set functions into the header file to allow\ninlining them. Move arch-specific pointer sizes and alignment sizes\nout of globals.h to instruction_set.h to reduce dependencies.\n\nChange-Id: I2997592c7dd1f4dd2bd497522c64bd235ae615a6\nSigned-off-by: Alexei Zavjalov \u003calexei.zavjalov@intel.com\u003e\n"
    },
    {
      "commit": "d1c606f280797be81e2592c483869a6ec836a9f3",
      "tree": "f49689281100d0fccdc5493f1a2567b435a247ea",
      "parents": [
        "fbc2b1747e7e3d06f214f801f53218a1d4bf2dbe"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 09 16:50:19 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 10 11:25:06 2014 +0100"
      },
      "message": "Add locking around boot image generation.\n\nIf zygote aborts due to an error, it will restart and\nspawn another dex2oat process while the old one is still\nrunning. If this happens fast enough, the system will\neventually need a kernel reboot since neither the zygote\nnor dex2oat are killable.\n\nThis brings boot image generation in line with dex2oat\ngeneration, which uses a similar pattern of advisory\nlocking.\n\nbug: 15415316\n\nChange-Id: Iaccd274d3d96ab002b04e246ec4b3ef9a422ff7c\n"
    },
    {
      "commit": "ec7e4727e99aa1416398ac5a684f5024817a25c7",
      "tree": "3ad51887c890b5cbebf1ae8e4afec8d93b485168",
      "parents": [
        "7a6b77f9a694ea4569fbf44493fdcaeea237a8be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 06 11:24:33 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 08:59:02 2014 +0100"
      },
      "message": "Fix some bugs in graph construction/simplification methods.\n\nAlso fix a brano during SSA construction. The code should\nnot have been commented out. Added a test to cover what the code\nintends.\n\nChange-Id: Ia00ae79dcf75eb0d412f07649d73e7f94dbfb6f0\n"
    },
    {
      "commit": "dadc7dcc06057bcebfb118e5fe352c3ff5a95dd9",
      "tree": "f96c74028f7213874e078aaacf5fb796a020d543",
      "parents": [
        "b044dd40393abe60861f820aec1653338d33e68f"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 14:44:13 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 14:49:53 2014 -0700"
      },
      "message": "Disable thumb assembler test to fix art build\n\nHaving difficulty getting this to run on the build server.\nDisable until I can figure out how to do it.\n\nChange-Id: I4f356fd1168b213b770426adc34bf62b8fb56b8f\n"
    },
    {
      "commit": "0eb3e752b65ef908e3790d81fae57cd85a41006b",
      "tree": "0378d281508f1f1b05e6463d80fceeba4d91eb16",
      "parents": [
        "7ce610516242b1ffd47a42bfc31c2d562f443ca6",
        "65fcc2cf3c5cd97b84330c094908f3a6a7a8d4e7"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 19:47:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 05 19:47:18 2014 +0000"
      },
      "message": "Merge \"Thumb2 assembler for JNI compiler and optimizing compiler\""
    },
    {
      "commit": "65fcc2cf3c5cd97b84330c094908f3a6a7a8d4e7",
      "tree": "fc0ce77d446477be37f0ec8c86d67df4941cac9b",
      "parents": [
        "e3b5cb502371aff7e7b7291facfc27b092e7803e"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Apr 28 13:45:27 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 12:45:20 2014 -0700"
      },
      "message": "Thumb2 assembler for JNI compiler and optimizing compiler\n\nThis provides a programmatic assembler for the thumb2 instruction set for\nARM.  The interface is the same as the ARM assembler and the ARM assembler has\nbeen moved into Arm32Assembler.  The assembler handles most 16 and 32 bit instructions\nand also allows relocations due to branch expansion.  It will also rewrite cbz/cbnz\ninstructions if they go out of range.\n\nIt also changes the JNI compiler to use the thumb2 assembler as opposed\nto forcing it to use ARM32.  The trampoline compiler still uses ARM due to the\nway it returns the address of its generated code.  A trampoline in thumb2 is the\nsame size as that in ARM anyway (8 bytes).\n\nProvides gtest for testing the thumb2 instruction output.  This gtest only runs\non the host as it uses arm-eabi-objdump to disassemble the generated code.  On the\ntarget the output is not checked but the assembler will still be run to perform\nall its checks.\n\nChange-Id: Icd9742b6f13541bec5b23097896727392e3a6fb6\n"
    },
    {
      "commit": "4352b4556c138eb9f583367d678531930b5b8fb0",
      "tree": "92c0d56eb32f0dedfbc8ab8b1615e9afb409916d",
      "parents": [
        "d2395646c71d4e781d7362b025d49df482ffec94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 04 18:59:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 04 19:00:38 2014 -0700"
      },
      "message": "ART: Add a test checking TLS offsets and entrypoints\n\nAdd a test (runtime for now, as compile-time checks seem not\npossible with current infrastructure) that checks the structure\nof the thread tls and entrypoint structs. A failure of the test\nindicates a structural change, which hints at a necessary oat\nversion bump.\n\nChange-Id: I500b5cd940c916ebfc1580e9dd2c287c4d263956\n"
    },
    {
      "commit": "5ca4eaace8ba513f97309bbdc2e156de4b1d648a",
      "tree": "3a392eb39fda9b6f6e46e05e529c85e18296bc49",
      "parents": [
        "fa5fda3ca52678b6fa739aad46e5c6ea08ae301e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 02:09:33 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 04 08:00:30 2014 -0700"
      },
      "message": "ART: Make LOCAL_CLANG architecture dependent for the target\n\nBe selective for which target we compile with Clang. Currently we\nonly want to compile with Clang for ARM64, which means we need to\nbe careful about ARM, which is the second architecture for that.\n\nBug: 15014252\n\n(cherry picked from commit 9689e3768621130b2536564f4e00fcb6b3d25df4)\n\nChange-Id: I312e1caea08f2f3a20304b27f979d3c7b72b0a04\n"
    },
    {
      "commit": "a7062e05e6048c7f817d784a5b94e3122e25b1ec",
      "tree": "a5d6b64ae6d5352f761fc2547bda863281adbe40",
      "parents": [
        "8b5b1e5593ffa77c393e4172b71a3d5a821d2ed8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 22 12:50:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 26 11:31:38 2014 +0100"
      },
      "message": "Add a linear scan register allocator to the optimizing compiler.\n\nThis is a \"by-the-book\" implementation. It currently only deals\nwith allocating registers, with no hint optimizations.\n\nThe changes remaining to make it functional are:\n- Allocate spill slots.\n- Resolution and placements of Move instructions.\n- Connect it to the code generator.\n\nChange-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4\n"
    },
    {
      "commit": "adde7d2854dbcd4282e94cebd7c66ee8793aece8",
      "tree": "6eb16488188c3f98de8f7101afd2a180a9e22d83",
      "parents": [
        "48e50e8876379d38a561096415ac43ed765f65fc",
        "4e3d23aa1523718ea1fdf3a32516d2f9d81e84fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 23 09:03:36 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 23 09:03:36 2014 +0000"
      },
      "message": "Merge \"Import Dart\u0027s parallel move resolver.\""
    },
    {
      "commit": "4e3d23aa1523718ea1fdf3a32516d2f9d81e84fe",
      "tree": "78593d033513a98486a409e7b23678ccced12cd5",
      "parents": [
        "59f3f62534581311c7c403c832f56c272426a17c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 22 18:32:45 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 23 10:00:44 2014 +0100"
      },
      "message": "Import Dart\u0027s parallel move resolver.\n\nAnd write a few tests while at it.\n\nA parallel move resolver will be needed for performing multiple moves\nthat are conceptually parallel, for example moves at a block\nexit that branches to a block with phi nodes.\n\nChange-Id: Ib95b247b4fc3f2c2fcab3b8c8d032abbd6104cd7\n"
    },
    {
      "commit": "2a0e954ecf7c60e6ec62d64b9382cc4ee447e224",
      "tree": "37d22f5d9e221ecd8a68c41d430e7b21fa3f54d1",
      "parents": [
        "299d2a2b200a94daa49c4727fd679f4461c083c7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 21 14:55:02 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 21 19:47:17 2014 -0700"
      },
      "message": "Move art host to libc++\n\nChange-Id: Ia51a4fdfdbae7377130a43c401c2d8d241671d1e\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "ba0c51fd282c4f47b95230c5444e76f342900cfa",
      "tree": "19fc240937854b35e4dd93cb1e6d4c7a2168e87c",
      "parents": [
        "84e524207b23d58a1b1e5f4443000ccac97c4184"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 16 12:26:00 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 19 11:26:10 2014 -0700"
      },
      "message": "Switch ART to libc++.\n\nTODO: remove all vestiges of stlport.\n\nChange-Id: I95a3cb0b53d0898f0a5d388b606e79522f4d85e0\n"
    },
    {
      "commit": "84e524207b23d58a1b1e5f4443000ccac97c4184",
      "tree": "6eb6204994d342a653fba4eea275a536a720b036",
      "parents": [
        "f04544ffdb801946d087ae1322c890e34e185156",
        "0e12bdc49744eb6d5c29b9611a8dbe10bac4cd53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 19 16:50:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 19 16:50:21 2014 +0000"
      },
      "message": "Merge \"Add ISA directory to image and odex pathnames.\""
    },
    {
      "commit": "4f3f3fa1dde1bb0c89485012f7e6396be2ad2850",
      "tree": "6b07b706beba9e0a4ffc577d2c01870435369848",
      "parents": [
        "bf17a08fb48fa296acb09904d4c10ba42f63f55d",
        "ddb311fdeca82ca628fed694c4702f463b5c4927"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 19 09:24:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 19 09:24:53 2014 +0000"
      },
      "message": "Merge \"Build live ranges in preparation for register allocation.\""
    },
    {
      "commit": "ddb311fdeca82ca628fed694c4702f463b5c4927",
      "tree": "24acde84ed7d0229c36d9bbca2a421acdff9d7a1",
      "parents": [
        "27710fa87cc7fc0f205a6b5a46f418a0cf9a5171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:28:54 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 19 10:17:11 2014 +0100"
      },
      "message": "Build live ranges in preparation for register allocation.\n\nChange-Id: I7ae24afaa4e49276136bf34f4ba7d62db7f28c01\n"
    },
    {
      "commit": "0e12bdc49744eb6d5c29b9611a8dbe10bac4cd53",
      "tree": "aba31f1d671b4816fb63fca00b985ab0d2b6a12b",
      "parents": [
        "de1129a26e0474ea8bb9112938ebb867163969fd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 14 17:44:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 16 16:14:50 2014 -0700"
      },
      "message": "Add ISA directory to image and odex pathnames.\n\nBug: 14882223\nBug: 14694978\nChange-Id: Ic1b5ae836b8e91ea461dcd4f3da8e38dc3bec00f\n"
    },
    {
      "commit": "c001b0952513690216f9a14153a839d569a91538",
      "tree": "2eafd9b1dc4f6ba334c027df7bae124ddf27a0fe",
      "parents": [
        "f59c6dda4928cfb05d32a56fd161e3f86a9ca560",
        "ec245a42e04adbde15b75d8123287c54fd9fa7b3"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Fri May 16 17:22:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 16 17:22:55 2014 +0000"
      },
      "message": "Merge \"add make target variables for gtests\""
    },
    {
      "commit": "ec245a42e04adbde15b75d8123287c54fd9fa7b3",
      "tree": "b26c26ffb4f85c1117127d587c453d32e7f1187f",
      "parents": [
        "1694e021960e955d8e96f3f3b35da4cfe18d6dcf"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Thu May 15 21:16:21 2014 -0700"
      },
      "committer": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Fri May 16 07:45:19 2014 -0700"
      },
      "message": "add make target variables for gtests\n\nChange-Id: I109dca4ffdb35484cdee49751cb5bb3be10dcb60\n"
    },
    {
      "commit": "0d3f578909d0d1ea072ca68d78301b6fb7a44451",
      "tree": "5a90ec26839afa06294a46e67a4c4481982c47bf",
      "parents": [
        "c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 09:43:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:07:31 2014 +0100"
      },
      "message": "Linearize the graph before creating live ranges.\n\nChange-Id: I02eb5671e3304ab062286131745c1366448aff58\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "622d9c31febd950255b36a48b47e1f630197c5fe",
      "tree": "8a7f14ce3c6c087955ad5fe91a3ce7d5b5a82461",
      "parents": [
        "98a8a542f95e41c09d214a329a940b270f08f5b3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 12 16:11:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 13 09:06:14 2014 +0100"
      },
      "message": "Add loop recognition and CFG simplifications in new compiler.\n\nWe do three simplifications:\n- Split critical edges, for code generation from SSA (new).\n- Ensure one back edge per loop, to simplify loop recognition (new).\n- Ensure only one pre header for a loop, to simplify SSA creation (existing).\n\nChange-Id: I9bfccd4b236a00486a261078627b091c8a68be33\n"
    },
    {
      "commit": "804d09372cc3d80d537da1489da4a45e0e19aa5d",
      "tree": "b226350fdf3dc0c55a11e1615010c8475f167f90",
      "parents": [
        "0095e0b8380a8802f40a21928800b9df6e11f1d7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 02 08:46:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 07 10:32:11 2014 +0100"
      },
      "message": "Build live-in, live-out and kill sets for each block.\n\nThis information will be used when computing live ranges of\ninstructions.\n\nChange-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74\n"
    },
    {
      "commit": "11d9f06a96a6909905c248ed684366190140095c",
      "tree": "27b02ab216b98ba1656d66072fd46c5adec61242",
      "parents": [
        "b3016551e5f264264dbb633a1ddf03ac97f9c66c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 23 20:24:57 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:25:07 2014 +0100"
      },
      "message": "Use instruction specific dalvik cache dirs.\n\n- All oat \u0026 art files are now placed under /data/dalvik-cache/\u003cisa\u003e/.\n- GetDalvikCacheOrDie now requires a mandatory subdirectory argument,\n  and is implicitly rooted under /data/.\n- Added helper methods to convert InstructionSet enums into strings\n  and vice versa.\n\n(cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe)\n\nChange-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd\n"
    },
    {
      "commit": "5a4fa82ab42af6e728a60e3261963aa243c3e2cd",
      "tree": "69da9eb204c294be63f30d49cf0233e1dc9b6e93",
      "parents": [
        "0a3b13fc401bcf21225e30654012fe98806b0873"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 31 16:50:12 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 30 19:25:51 2014 -0700"
      },
      "message": "x86_64 Assembler Test Infrastructure, fix x86_64 assembler\n\nSome infrastructure to do real assembler testing. Need to extend to\nother assemblers, and a lot more tests.\n\nFix some of the cases of the x86_64 assembler.\n\nChange-Id: I15b5f3a094af469130db68a95a66602cf30d8fc4\n"
    },
    {
      "commit": "53e5d10036a5d4fdf84b32354c11dd8f2140b8ab",
      "tree": "ee092fff06e0eb1045861ffa429f4a94399aca69",
      "parents": [
        "0f73e2ee44977b9b5cfe42f6c4c3b6a407e92368",
        "c32e770f21540e4e9eda6dc7f770e745d33f1b9f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 28 15:22:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 28 15:22:52 2014 +0000"
      },
      "message": "Merge \"Add a Transform to SSA phase to the optimizing compiler.\""
    },
    {
      "commit": "c32e770f21540e4e9eda6dc7f770e745d33f1b9f",
      "tree": "56a76d7399bf749a4500fb60483e0dc075a24ee7",
      "parents": [
        "618a87009202dc959c935ed8f237ae32bdec57d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 24 12:43:16 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 28 16:21:40 2014 +0100"
      },
      "message": "Add a Transform to SSA phase to the optimizing compiler.\n\nChange-Id: Ia9700756a0396d797a00b529896487d52c989329\n"
    },
    {
      "commit": "5c1e4352614d61fed6868567e58b96682828cb4d",
      "tree": "c723c7883f80083b885c590a7fc514684667c1a3",
      "parents": [
        "7f40b111755e300ddddd6839425337fe3af8d4e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 21 19:28:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 16:13:27 2014 -0700"
      },
      "message": "Add \"arch_test\" gtest for assembly stub constants, add some ARM64 assembly code\n\nAdd a test that (1) checks all callee-save method frame sizes for\nall architectures, (2) checks thread offsets for the runtime\narchitecture and (3) checks callee-save method offsets for the\nruntime architecture.\n\nThe \"asm_support_XXX.h\" files now only contain definitions that are\ncommon between all architectures. Architecture-specific definitions\n(i.e., special registers names) have been pushed into the corresponding\n.S file. This change was required to be able to undefine definitions\nin the test, so that multiple tests can be written in one file.\n\nTest (1) above is in a sense two-stage. The arch_test gtest compares\nconstants (if it finds them) against the frame size as reported by\nthe ArtMethods created by the Runtime. This works for all architectures\nas we can provide the instruction-set to CreateCalleeSaveMethod. The\nsecond stage of the \"test\" are preprocessor tests with \"#error\" in the\ncase that the constants are not the expected value.\n\nOptimally I\u0027d like to change that to an actual runtime test exercising\nthe assembly code, which would also allow to check whether the right\nregisters are stored.\n\nAlso added missing assembly code for ARM64 for the callee-save macros.\n\nAlso fix X86_64 compilation for Clang 3.5.\n\nChange-Id: I018e6433dffd3d31ba3bfcd75661653f4c7b6552\n"
    },
    {
      "commit": "525cde2dd7cc7ad4212765ad3975cf260a934d3e",
      "tree": "bd2b4c1d34414708be60e560666d24f56311df05",
      "parents": [
        "1b4e3d5bc1e2d604adeda4ebbd137f20ee041138"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 22 15:44:50 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 07:38:19 2014 -0700"
      },
      "message": "Add a GTest for Assembly Stubs, Add some ARM64 and X86-64 Stubs\n\nThis GTest adds some runtime testing for the stubs that does not\nrely on the compiler. This should allow to add or update the stubs\nand do testing, especially on architectures without working compiler.\n\nThis test is a bit dangerous: if it doesn\u0027t know how to handle an\narchitecture, it will only log a warning. This is so that testing\ndoes not break at the moment. The warning is forced to stdout, too,\nso that it is always visible.\n\nAdd art_quick_check_cast to ARM64 and X86-64. Add art_quick_memcpy\nto X86-64. The latter should be removed in a good compiler, as it is\npractically only overhead. Add minor CFI information in ARM.\n\nChange-Id: Ia9c6d0f4035eb1527c12b5f6067dece59e25528d\n"
    },
    {
      "commit": "2fe07927610177e9b83809e5bdb6d2b3d835a076",
      "tree": "f873d2314a800c4bb5400f17701058fbd2c259b4",
      "parents": [
        "9b3335e3503724dbcb492e159789adf98ae3958b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 21 07:50:39 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 21 09:29:39 2014 -0700"
      },
      "message": "Fix dependencies in the test suite for multi-target tests\n\nChange-Id: I94dd767490a7cd8cceddc158d90f56f5bd3fef26\n"
    },
    {
      "commit": "bd5ea6a2f7c61c4cd7b66fead1bedd96e938369d",
      "tree": "1c1dde0d817303e669c413a919c192e2f3463bb0",
      "parents": [
        "5e17616b7386159cef8f2fb6ffe3cbc4fb1373e4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 16 16:34:44 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 16 16:35:44 2014 -0700"
      },
      "message": "Preparation for transition to libc++.\n\nMove the dependency on libc++ to its own makefile so that we can switch in a\nsingle place between libc++ and stlport.\n\nChange-Id: Ie61e7d054dcd049e36d5e7298c27d8a4abe6edf7\n"
    },
    {
      "commit": "2faf284e072230d4fd447955fa72ac4d9a3b51a0",
      "tree": "e306b4c53447ee4b290d0962d0d107df2b0dcc25",
      "parents": [
        "a3eaf66b968270b938a2795fe55e778c55f1c24b",
        "01bc96d007b67fdb7fe349232a83e4b354ce3d08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 16 13:22:37 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 16 13:22:38 2014 +0000"
      },
      "message": "Merge \"Long support in optimizing compiler.\""
    },
    {
      "commit": "01bc96d007b67fdb7fe349232a83e4b354ce3d08",
      "tree": "1ed36c2d7c0fb204e6f276bd9853153d9350ad1d",
      "parents": [
        "2be6fc74bce10ac68d3d1b39a5019f520ad170ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 11 17:43:50 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 16 14:21:12 2014 +0100"
      },
      "message": "Long support in optimizing compiler.\n\n- Add stack locations to the Location class.\n- Change logic of parameter passing/setup by setting the\n  location of such instructions the ones for the calling\n  convention.\n\nChange-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799\n"
    },
    {
      "commit": "135016a1feee5576014f377e8006057837ee73a2",
      "tree": "900578418eea8094513d6e22ab0bb9f616334fd7",
      "parents": [
        "22839a631bb3591a1c0037c388d51a4f18b5fb5e"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Apr 03 14:35:54 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 10 09:20:42 2014 -0700"
      },
      "message": "art: Use SIRT::GetAlignedSirtSizeTarget in calling convention\n\nCalculate frame size based on SIRT::GetAlignedSirtSizeTarget existing method.\n\nMake offset functions pointer-size-dependent for cross-compiling. Add\na test to check whether our computations are correct.\n\nChange-Id: Ic66daf6f9908890eda906bdcbbc4444c4fef614f\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "15523731549152276f23dcf94d81b1a9ce9c5038",
      "tree": "9f95472502db9cf879a6281e089bec9013d8be7b",
      "parents": [
        "427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Wed Apr 02 13:18:05 2014 +0100"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Mon Apr 07 17:33:04 2014 +0100"
      },
      "message": "AArch64: Fix Managed Register unit tests\n\nFixes the XZR change introduced by one of the previous patches. It\nalso adds extra testing for VIXL register integration.\n\nChange-Id: I4935f06726e25829613ef7bb6ac052d82056812c\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "afbaa1aab02cfe519d00336870b1bcd24b61378d",
      "tree": "ec33583d52a42ee49082f4bce404e8c434cfd8f5",
      "parents": [
        "8ce67ac16abcd25b376be622cbd20a34aec4a59d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 25 18:09:32 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 01 13:58:32 2014 -0700"
      },
      "message": "Build changes to build multilib tests\n\nTest files will be emitted into directories for both first and second\ntarget architectures. Going with the naming scheme for binaries,\nsingle-architecture and 32b cases have the standard name, and\n64b goes into a directory with \"64\" suffix.\n\nIn multi-architecture setups, the default concrete test targets are\nextended with a \"32\" and \"64\" suffix, e.g., test-art-target-oat-JniTest64.\nThe suffix-less form is linked to the primary architecture target (usually 64).\nThat means running combined targets, e.g., test-art-target-oat, will only\ntest the primary architecture right now.\n\nFixed target run tests calling the right dalvikvm. Fixed library search\npath for tests derived from CommonRuntimeTest.\n\nMissing in this work-in-progress is correct handling of dex2oat for the\nsecondary architecture. To make it work on 64b, comment out line 101\nin build/Android.executable.mk\n\nChange-Id: I3d260994e6efe8b73b56c71994053cc9392943a9\n"
    },
    {
      "commit": "cae10f73bdad63774a3a8bc67d568b131f9bd591",
      "tree": "ef22215b492817ad0ed8eae0ac180b5cd418c67d",
      "parents": [
        "81ed34e686532cebc1e17a273110decf0dd24e81"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue Apr 01 11:52:01 2014 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue Apr 01 12:53:18 2014 +0800"
      },
      "message": "Add -lpthread -ldl to link executable/tests\n\nThe new binutils-2.23 based linker in\nprebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6\nno longer implicity adds dependencies on *so an executable needs.\neg.\n\n  ld -o barrier_test barrier_test.o common_runtime_test.o ... -lartd\n\nproduces error messages read\n\n  art/runtime/thread-inl.h:43: error: undefined reference to \u0027pthread_getspecific\u0027\n  art/runtime/common_runtime_test.h:219: error: undefined reference to \u0027dlsym\u0027\n  external/gtest/src/../include/gtest/internal/gtest-port.h:1482: error: undefined reference to \u0027pthread_getspecific\u0027\n\nbecause libartd.so DT_NEEDED libdl.so and libpthread.so, and new linker no longer\nimplicitly add both to dependencies.  Explicitly add -lpthread -ldl to fix the issue\n\nChange-Id: Ic29c68480b2ed55d282be949640b9158411f213d\n"
    },
    {
      "commit": "7f2e3da1052132854dcace88af75e2f5c067295d",
      "tree": "c2536895986573007b316fe77b7068f93c505cd3",
      "parents": [
        "c92492fc2565515ac5d68a8443efa91ba189b404"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 25 16:23:56 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 25 16:35:48 2014 -0700"
      },
      "message": "Fix host gtests compiled with gcc\n\n(cherry picked from commit d016e1fab648093706f85cc78b63da0f3f487733)\n\nChange-Id: I5d2b8061278fd5a477ec87395fca435a3da801a3\n"
    },
    {
      "commit": "0ab4461e0cfa4ccb0acd8db25b764ba8fd78289b",
      "tree": "ee6924f9e90f41d33bbab10ac283fb5366951dcc",
      "parents": [
        "4d37218371ff19854e4957b26793309e4669dfbc"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Mar 20 15:20:58 2014 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Mar 20 16:16:36 2014 -0700"
      },
      "message": "Fix missing link line for libgtest_host.\n\nbug 13435344\n\nChange-Id: If4197ddb97b235c731e4c771968eae46483d55b3\n"
    },
    {
      "commit": "bfea9c29e809e04bde4a46591fea64c5a7b922fb",
      "tree": "8c50357e0de293f105affd95941acc08ac33cd04",
      "parents": [
        "341a84af890a328a6c8f719beb3f670dd1a369b4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 17 17:49:33 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 17 14:27:16 2014 +0000"
      },
      "message": "Class initialization check elimination.\n\nAlso, move null check elimination temporaries to the\nScopedArenaAllocator and reuse the same variables in the\nclass initialization check elimination.\n\nChange-Id: Ic746f95427065506fa6016d4931e4cb8b34937af\n"
    },
    {
      "commit": "53b8b09fc80329539585dcf43657bc5f4ecefdff",
      "tree": "cac0f82fbb89bd907104e3fed6c36203e11a3de0",
      "parents": [
        "0dea9872082bc3e576ed6cefed86b0d6c0c45ffd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 23:45:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 11:28:10 2014 -0700"
      },
      "message": "Refactor reflective method invocation.\n\nMove invocation code out of JNI internal into reflection, including ArgArray\ncode. Make reflective invocation use the ArgArray to build arguments rather\nthan allocating a jvalue[] and unboxing arguments into that.\nMove reflection part of jni_internal_test into reflection_test.\nMake greater use of fast JNI.\n\nChange-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057\n"
    },
    {
      "commit": "b7054baf28d4d652fbd98a94b089344a31898d53",
      "tree": "54d2548fab1faa859d6e610d03881e71074b1cb7",
      "parents": [
        "37d4c1db4d705f5a28001f65afdd68d0527948d8"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Mar 13 11:52:31 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Mar 13 15:11:19 2014 +0100"
      },
      "message": "Fix debugger crashes in presence of proxy objects.\n\nFix ClassHelper::NumDirectInterfaces to use IfTable::Count instead of the\niftable array\u0027s length (which is twice the interface count). This happens when\nprocessing ReferenceType::Interfaces command and was causing a crash.\n\nReturn ABSENT_INFORMATION error code when we\u0027re asked for the source file of a\nproxy class. Otherwise we call ClassHelper::GetSourceFile which expect the\nclass has a corresponding ClassDef item in the DEX file which is not true for\nproxy classes.\n\nAdd new proxy_test to check ClassHelper works correctly with proxy classes.\n\nBug: 13426918\nChange-Id: I5c1212b1a697dd7dc1ab18e99552ee113c533a5a\n"
    },
    {
      "commit": "e0dcd46314d07eeb332edea292f5110178e4e3d2",
      "tree": "d1060bc54e1ad26bad69a6e06662e643e75ce484",
      "parents": [
        "80a250f8862096b72e7357c12b40dc9d5310a475"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 08 15:21:04 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 09 02:17:46 2014 +0000"
      },
      "message": "JNI down call fixes.\n\nEnsure SIRT isn\u0027t accessed via quick callee save frame.\nSome tidying of code.\n\nChange-Id: I8fec3e89aa6d2e86789c60a07550db2e92478ca7\n"
    },
    {
      "commit": "ed8dd492e43cbaaa435c4892447072c84dbaf2dc",
      "tree": "e93e3d1e7dd6770ec8e2a3ed7105a7305eb2bc4d",
      "parents": [
        "511472b9110d15cf30a205bb514eb98f6afce651"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Feb 11 14:15:10 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 12:14:43 2014 -0800"
      },
      "message": "AArch64: Add ARM64 Assembler\n\nThis patch adds the ARM64 Assembler and ManagedRegister backend.\nThe implementation of the Arm64Assembler class is based on VIXL (a\nprogrammatic A64 Assembler - see external/vixl ).\n\nChange-Id: I842fd574637a953c19631eedf26f6c70d9ed7f9e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "2fecd65be4ce930e15a9d20358d32a650a2442b9",
      "tree": "fbcd2e0d71b0b4577553ff93bb890f31bf2e8f42",
      "parents": [
        "83f56a43d85dfdadb07cd6b057c03f4df45af647",
        "d4dd255db1d110ceb5551f6d95ff31fb57420994"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 05 15:42:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 05 15:42:51 2014 +0000"
      },
      "message": "Merge \"Add codegen support to the optimizing compiler.\""
    },
    {
      "commit": "d4dd255db1d110ceb5551f6d95ff31fb57420994",
      "tree": "93c9dfff8d16f2b9675c35477cc4bcd8ea3f630c",
      "parents": [
        "b565506a63e75dac4a8bb9dd54dabf5259e5b95f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 10:23:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 16:19:11 2014 +0000"
      },
      "message": "Add codegen support to the optimizing compiler.\n\nChange-Id: I9aae76908ff1d6e64fb71a6718fc1426b67a5c28\n"
    },
    {
      "commit": "491ca9e75fad381468dd7f5fdbff56d1a9738dd7",
      "tree": "4a88d05188aebbcbe868a27b58fc1a932f914ce2",
      "parents": [
        "82e3a8ef9cd776d7026b45fe7fb6c72bcfd61394"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 02 18:24:38 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 03 13:31:40 2014 -0800"
      },
      "message": "Add ART -help and -showversion\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d62149\nChange-Id: I5c21c0433f5f341f94e7d977e8d2d69cc46d6fe3\n"
    },
    {
      "commit": "24651ecef33eac8ea155ce36681ca7331340547a",
      "tree": "c911fc3bacd0cc90ba90fed117d413e1bb26ecbb",
      "parents": [
        "4e9b9be18bd3e8dd5b144869ee7142d672a1d6e5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 13:26:16 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 19:08:41 2014 +0000"
      },
      "message": "Further split of the space tests\n\nSplit the random-size allocations from the static-size allocation tests\nHave all tests have distinguished names\n\nBug: 13117676\nChange-Id: I40130b04d11715b9bd1d1ea8d76720f83af6ba82\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "504e6997501aa19c7e7973e70f187314af95602c",
      "tree": "7314b38ad594ac1360861a62c574ee8e5d892233",
      "parents": [
        "ef2cc5a9c6e508a3e8b24d04ca35f7422f27e112",
        "be9a92aa804c0d210f80966b74ef8ed3987f335a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 26 14:01:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 26 14:01:06 2014 +0000"
      },
      "message": "Merge \"Add conditional branches, and build dominator tree.\""
    },
    {
      "commit": "be9a92aa804c0d210f80966b74ef8ed3987f335a",
      "tree": "10d58622f626f03156e0dec1f1fc00616554b336",
      "parents": [
        "3188d117d6f1ba5f3a30d0ff231d816ebb59a7f7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 25 14:22:56 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 26 13:24:04 2014 +0000"
      },
      "message": "Add conditional branches, and build dominator tree.\n\nChange-Id: I4b151a07b72692961235a1419b54b6b45cf54e63\n"
    },
    {
      "commit": "a7433515114ae725c3427cd510f76b84107170a1",
      "tree": "ce114ff84d6a8e14d16b4bf3620a3bef550fd290",
      "parents": [
        "19c0b23fca2bf30172b3437af84d0426376358f1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 21 13:19:23 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 21 17:17:46 2014 -0800"
      },
      "message": "Split space_test into separate checks\n\nSplit space_test by space type: dlmalloc, rosalloc and large object space to facilitate parallelized testing.\n\nBug: 13117676\nChange-Id: I152dc03717c26dfcf14e93ba2b39f83612a5f560\n"
    },
    {
      "commit": "f59f18b2bd5432bb083205680c69fe64aaf60f39",
      "tree": "5d8d614f3afd80e75731d07dfef68ff3e9e70d9a",
      "parents": [
        "4dc23380cd99967d65c4f3b3f540cb0c78e9f546"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 17 15:53:57 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 21 14:08:35 2014 +0000"
      },
      "message": "Fix and rewrite local value numbering.\n\nFix memory versioning to take aliasing and method calls\ninto account. Use more instructions for the null check\nelimination. Return the local value name of the register\ndefined by the instruction if applicable.\n\nChange-Id: I4560bc680ae1ad553a7a00fa092c937e3da9fbbe\n"
    }
  ],
  "next": "c4a2ee4958c1abe17973233b154874ade01d0a99"
}
