)]}'
{
  "log": [
    {
      "commit": "af38d89634edbef394b3ef2cb3390d08dfb8d939",
      "tree": "d201eb23ef8bdef663a7580289cece348903adba",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7",
        "7e7e0f47628fb358da70c5e2766545c4f0596235"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "message": "Merge \"ART: Use enums in Trace\""
    },
    {
      "commit": "7e7e0f47628fb358da70c5e2766545c4f0596235",
      "tree": "5f1473cb0aa149fee476966ffb23ec8f8941b208",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "message": "ART: Use enums in Trace\n\nMove away from booleans. Will make introduction of streaming mode\na bit easier / obvious.\n\nChange-Id: Id7ae92f6b97f627e848510d473931537d7db0db8\n"
    },
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "e48856666e2e959687660f3b708e0c6da210ecb2",
      "tree": "303ee0f92f331008abcad400cf5da36845b1e945",
      "parents": [
        "86787d0bc2c5ad3b9c3b880b0fe2325d2b8bd672"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:18:07 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:18:07 2015 -0700"
      },
      "message": "ART: Use instrumented Alloc in Class-Linker\n\nTo support Valgrind over dex2oat and gtests, CreatePathClassLoader\nmust use instrumented allocation.\n\nChange-Id: I9dc2d009d37bec598c5de67688ebf9810da6e899\n"
    },
    {
      "commit": "86787d0bc2c5ad3b9c3b880b0fe2325d2b8bd672",
      "tree": "6de43fc1c1336d18a72f5c205e142e1c6ca1ef5e",
      "parents": [
        "5c7acfc0b5acc50c60c57934341750f7c776d57e",
        "81c6f8db12b203878a7d72444ead2bc7cf5c47ad"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Mar 28 04:44:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 28 04:44:37 2015 +0000"
      },
      "message": "Merge \"ART: PathClassLoader for compiler\""
    },
    {
      "commit": "81c6f8db12b203878a7d72444ead2bc7cf5c47ad",
      "tree": "11caae30b75b700ac648356fd30759a6154be997",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 25 17:19:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 21:43:21 2015 -0700"
      },
      "message": "ART: PathClassLoader for compiler\n\nUse an actual PathClassLoader when compiling apps, instead of a\nside structure and cutout.\n\nThis CL sets up a minimal object \u0027cluster\u0027 that recreates the Java\nside of a regular ClassLoader such that the Class-Linker will\nrecognize it and use the internal native fast-path.\n\nThis CL removes the now unnecessary compile-time-classpath and\nreplaces it with a single \u0027compiling-the-boot-image\u0027 flag in the\ncompiler callbacks.\n\nNote: This functionality is *only* intended for the compiler, as\nthe objects have not been completely initialized.\n\nBug: 19781184\n\nChange-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d\n"
    },
    {
      "commit": "d0056ceab8a78d5cfc0b4e06bce548b2d1cf1fef",
      "tree": "20894b04ba592ed0ebb1c097d440602b3f9c0d5e",
      "parents": [
        "92baf2c03f155df3ead6d7f55f3a605e120eb11e",
        "0624a27b9a2951bfcf23321a714543e137836904"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 27 14:13:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 27 14:13:35 2015 +0000"
      },
      "message": "Merge \"Include pid in trace metadata\""
    },
    {
      "commit": "0624a27b9a2951bfcf23321a714543e137836904",
      "tree": "c97c0627b7d564881e18d4d66ccd66221fc72a30",
      "parents": [
        "03910065cd025ecb07781b85c2240be69c202d75"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 26 15:47:54 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 27 07:06:59 2015 -0700"
      },
      "message": "Include pid in trace metadata\n\nChange-Id: I5d23fc7da94c1a344850833dfbbaa330fdbe28a7\n"
    },
    {
      "commit": "f6468109a49aff6e4a1d28787de625bfb214a761",
      "tree": "a662906fca20ace8fb42ebe4872822d00015596c",
      "parents": [
        "03910065cd025ecb07781b85c2240be69c202d75"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 27 10:31:38 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 27 11:02:20 2015 +0000"
      },
      "message": "ART: Fix IsInt when N\u003d\u003d32, add tests\n\nImplicit type conversion caused IsInt to always return true for N\u003d\u003d32\non 32-bit platforms. This patch templetizes the function to avoid\nthe conversion and adds tests of this and similar functions.\n\nChange-Id: Ie526b68b7c3e7cb7b658253d51840794224785fe\n"
    },
    {
      "commit": "03910065cd025ecb07781b85c2240be69c202d75",
      "tree": "ad6f14345c5a8265f78de11cccb737642a6da539",
      "parents": [
        "83aae275268b021d23d2dc6708bd9cef3d7e4b50",
        "16f149c2cb43a14d8f33d7d0fa36cd784e900f07"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 26 22:44:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 22:44:04 2015 +0000"
      },
      "message": "Merge \"ART: Change RETURN_OBJECT verification for arrays\""
    },
    {
      "commit": "16f149c2cb43a14d8f33d7d0fa36cd784e900f07",
      "tree": "299d484c007d373c68e22008ddedfacbd0c044f2",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 23 10:10:20 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 26 15:03:46 2015 -0700"
      },
      "message": "ART: Change RETURN_OBJECT verification for arrays\n\nArrays appear to be valid (as according to spec), even if their\ncomponents are erroneous. If a component is erroneous, it may not\nhave loaded superclass or interface information, and so fail a\ndirect check for assignability.\n\nAdd a cutout that checks whether the declared return-type or the\nactual return-type are arrays with erroneous components (and if so,\nhave the same \u0027depth\u0027). In that case, generate a soft instead of a\nhard error.\n\nAlso includes a fix to DumpClass.\n\nBug: 19683465\nChange-Id: Ie73de03adeb0af7e939370d7363684fe125d7994\n"
    },
    {
      "commit": "d8565456d29f4ad05f11cf84d2d2dac488508e06",
      "tree": "8c5eca4c2604e0edc1606ea151d78538098dc040",
      "parents": [
        "81adb4f8fd261be11d399d210029189e94888a9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 26 09:41:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 26 13:34:27 2015 -0700"
      },
      "message": "Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT\n\nCurrently, we don\u0027t know if another method has a direct code\npointer or not. This should fix the case where breakpoints\noccasionally don\u0027t work with JIT.\n\nThe JIT now also checks that a method doesn\u0027t have any breakpoints\nbefore starting to compile it.\n\nBug: 17950037\n\nChange-Id: I17cfe874fe4825beba23903a5053d5cb27e106cb\n"
    },
    {
      "commit": "cac51526bbd03947676a8d49700425b19a57e447",
      "tree": "40d7fd63d527286a82c6e6d0a288c0a8a840d0b3",
      "parents": [
        "aa23b169f8c996380bcee3a7032da2599c6211ec",
        "74fc513982fa74b1120f7b8546fc825fc406e1b1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 26 15:18:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 15:18:58 2015 +0000"
      },
      "message": "Merge \"ART: Define IsInt when N\u003d\u003dkBitsPerIntPtrT\""
    },
    {
      "commit": "74fc513982fa74b1120f7b8546fc825fc406e1b1",
      "tree": "bb6d78e147eb0eb6f4134c2ee1c7aa24b51f7644",
      "parents": [
        "5eae0b6112aef6b1bc3a24427e80f1ef96e513dc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 26 15:11:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 26 15:11:45 2015 +0000"
      },
      "message": "ART: Define IsInt when N\u003d\u003dkBitsPerIntPtrT\n\n\u0027utils.h\u0027 contains two implementations of the IsInt query, one of\nwhich is defined for bit sizes \u003c\u003d kBitsPerIntPtrT, while the other\nonly for sizes \u003c kBitsPerIntPtrT. This patch unifies the behaviour\nand fixes the breakage caused by it.\n\nChange-Id: I4f5589b1a36b6c24926e50574fbca528c33d701f\n"
    },
    {
      "commit": "aa23b169f8c996380bcee3a7032da2599c6211ec",
      "tree": "c0122239bf0be80b0f1734c32cc5b7f9593c2bd6",
      "parents": [
        "5eae0b6112aef6b1bc3a24427e80f1ef96e513dc",
        "6343411e52d2a59cd716cb47a85ebd0d68e61a3c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Mar 26 14:57:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 14:57:38 2015 +0000"
      },
      "message": "Merge \"Store odex files in oat/\u003cisa\u003e/ directory.\""
    },
    {
      "commit": "8d5b8b295930aaa43255c4f0b74ece3ee8b43a47",
      "tree": "c26fc49bbc74615e7f0b9657aaf3757a8282d7a9",
      "parents": [
        "c8924c6ea9e83ba3832dd5551df38ab06f4aaca9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 10:51:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 26 14:10:03 2015 +0000"
      },
      "message": "ART: Force constants into the entry block\n\nOptimizations such as GVN and BCE make the assumption that all\nconstants are located in the entry block of the CFG, but not all\npasses adhere to this rule.\n\nThis patch makes constructors of constants private and only accessible\nto friend classes - HGraph for int/long constants and SsaBuilder for\nfloat/double - which ensure that they are placed correctly and not\nduplicated.\n\nNote that the ArenaAllocatorAdapter was modified to not increment\nthe ArenaAllocator\u0027s internal reference counter in order to allow\nfor use of ArenaSafeMap inside an arena-allocated objects. Because\ntheir destructor is not called, the counter does not get decremented.\n\nChange-Id: I36a4fa29ae34fb905cdefd482ccbf386cff14166\n"
    },
    {
      "commit": "6343411e52d2a59cd716cb47a85ebd0d68e61a3c",
      "tree": "64f9be60771f0e40fcea0706ab14afffc95f9d3a",
      "parents": [
        "19c1c124fb92a13c5f59dfde8f638b7bf9b73abb"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 16 14:32:16 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 25 14:44:44 2015 -0700"
      },
      "message": "Store odex files in oat/\u003cisa\u003e/ directory.\n\nPreviously odex files were stored alongside the dex location as:\n  dex location: /foo/bar/base.apk\n  odex location: /foo/bar/\u003cisa\u003e/base.odex\n\nThis changes where odex files are stored, adding an \"oat\" directory:\n  dex location: /foo/bar/base.apk\n  odex location: /foo/bar/oat/\u003cisa\u003e/base.odex\n\nSee also the corresponding change in platform/build and\nplatform/frameworks/native.\n\nBug: 19550105\nChange-Id: I4c6be4f0c41ff175904846db8e360c4af815b265\n"
    },
    {
      "commit": "3679a47027b40290018d0ccc50b996a15645dfef",
      "tree": "92c6fcbb8fe5c647eb06bb63277c90f36c319101",
      "parents": [
        "139cec015abd195727d5410dc313b483babeda10",
        "e5fed03772144595c0904faf3d6974cc55214c8c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 25 17:10:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 17:10:12 2015 +0000"
      },
      "message": "Merge \"Support relative encoded dex locations in oat files.\""
    },
    {
      "commit": "139cec015abd195727d5410dc313b483babeda10",
      "tree": "4ac5501a8f66730eb176b93533cf80c920605d1d",
      "parents": [
        "410f5cfe4ff70bc8a151216afae4e204f51aff37",
        "6ae70962089e4af9718cc9b7c2b79a0c501c1844"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 25 14:10:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 14:10:12 2015 +0000"
      },
      "message": "Merge \"Share dex register maps between stack maps when possible.\""
    },
    {
      "commit": "6ae70962089e4af9718cc9b7c2b79a0c501c1844",
      "tree": "3b7cd46ed7c7bab95dc258a29883297738138f6c",
      "parents": [
        "2f5904383a7b7ffb741c8839ec3c60762860bad3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 18 16:31:28 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 25 13:50:23 2015 +0000"
      },
      "message": "Share dex register maps between stack maps when possible.\n\nIf two stack maps have the same dex register map then one of them will\nreference the register map from the other instead of owning an\nindependent copy.\n\nThis saves around 1.5% of space.\n\nChange-Id: Ic2c2c81210c6c45a5c5f650f7ba82a46ff6f45e4\n"
    },
    {
      "commit": "b2bd1c5f9171f35fa5b71ada42d1a9e11189428d",
      "tree": "db9165b3daa18d1d430b690b78c2d125bade3021",
      "parents": [
        "11e99b19f48576f1bb6d0993635b34b6e09c9832"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 25 11:17:37 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 25 12:30:26 2015 +0000"
      },
      "message": "ART: Formatting and comments in BooleanSimplifier\n\nChange-Id: I9a5aa3f2aa8b0a29d7b0f1e5e247397cf8e9e379\n"
    },
    {
      "commit": "e16dad1d6388b0305f13e2171308a77f42e7c682",
      "tree": "a56d002ba622ecce7f1310e8fac56adca6547d5a",
      "parents": [
        "ebfd062af849a915bd75eebd81c6fdea15b1d8d5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 13 11:49:22 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 25 08:46:51 2015 +0000"
      },
      "message": "Emit 4 byte UTF-sequences in place of encoded surrogate pairs.\n\nSymmetric with a5afcfc73141e5e378d79a326d0 which converts 4 byte UTF-8\nsequences to surrogate pairs.\n\nbug: 18848397\n\nChange-Id: I42adc275b7e0df0cbbd9d8a799e8b0447d8f5cae\n"
    },
    {
      "commit": "e5fed03772144595c0904faf3d6974cc55214c8c",
      "tree": "27c242e48cabd2543f472930d1ad7e2ab86557fe",
      "parents": [
        "b93581f857e36a62f690e26e78167f2abea0f033"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 18 08:21:11 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 24 12:48:09 2015 -0700"
      },
      "message": "Support relative encoded dex locations in oat files.\n\nNow when opening an oat file, the caller can pass an absolute dex\nlocation used to resolve the absolute path for any relative\nencoded dex locations in the oat file.\n\nBug: 19550105\nChange-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7\n"
    },
    {
      "commit": "b64b782f9ae7a94ecbbf64c83cbcdc7d716ba560",
      "tree": "df3aa814ff7762d681c50781c413fd510440ae61",
      "parents": [
        "2c2d00e8ca841aa2f57fa2f852e896378ef67144",
        "46e2a3915aa68c77426b71e95b9f3658250646b7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 17:31:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 17:31:31 2015 +0000"
      },
      "message": "Merge \"ART: Boolean simplifier\""
    },
    {
      "commit": "46e2a3915aa68c77426b71e95b9f3658250646b7",
      "tree": "2b0a4470b05291894db73c631fe94f0fdff8c46b",
      "parents": [
        "bce0855ca1dbb1fa226c5b6a81760272ce0b64ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 16 17:31:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 17:28:37 2015 +0000"
      },
      "message": "ART: Boolean simplifier\n\nThe optimization recognizes the negation pattern generated by \u0027javac\u0027\nand replaces it with a single condition. To this end, boolean values\nare now consistently assumed to be represented by an integer.\n\nThis is a first optimization which deletes blocks from the HGraph and\ndoes so by replacing the corresponding entries with null. Hence,\nexisting code can continue indexing the list of blocks with the block\nID, but must check for null when iterating over the list.\n\nChange-Id: I7779da69cfa925c6521938ad0bcc11bc52335583\n"
    },
    {
      "commit": "da4d79bc9a4aeb9da7c6259ce4c9c1c3bf545eb8",
      "tree": "151dd61c4b6a8fd512ea4c2c862af28b02f4ed9c",
      "parents": [
        "af87659f462ac650009fce295097cae3dabce171"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 24 14:36:11 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 24 16:02:21 2015 +0000"
      },
      "message": "Unify ART\u0027s various implementations of bit_cast.\n\nART had several implementations of art::bit_cast:\n\n1. one in runtime/base/casts.h, declared as:\n\n   template \u003cclass Dest, class Source\u003e\n   inline Dest bit_cast(const Source\u0026 source);\n\n2. another one in runtime/utils.h, declared as:\n\n   template\u003ctypename U, typename V\u003e\n   static inline V bit_cast(U in);\n\n3. and a third local version, in runtime/memory_region.h,\n   similar to the previous one:\n\n   template\u003ctypename Source, typename Destination\u003e\n   static Destination MemoryRegion::local_bit_cast(Source in);\n\nThis CL removes versions 2. and 3. and changes their callers\nto use 1. instead.  That version was chosen over the others\nas:\n- it was the oldest one in the code base; and\n- its syntax was closer to the standard C++ cast operators,\n  as it supports the following use:\n\n    bit_cast\u003cDestination\u003e(source)\n\n  since `Source\u0027 can be deduced from `source\u0027.\n\nChange-Id: I7334fd5d55bf0b8a0c52cb33cfbae6894ff83633\n"
    },
    {
      "commit": "eb07669e9784ccb41d75df180727e57fc4520e28",
      "tree": "bc15da11ee0ce906252a33371f8f59138bc5a38f",
      "parents": [
        "bce0855ca1dbb1fa226c5b6a81760272ce0b64ef"
      ],
      "author": {
        "name": "Daniel Mihalyi",
        "email": "daniel.mihalyi@mattakis.com",
        "time": "Fri Aug 22 17:33:31 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 24 14:43:57 2015 +0100"
      },
      "message": "JDWP: Optimized single step during debugging\n\nFor single stepping full deoptimization and undeoptimizations were\nperformed with significant overhead, because every code will be\nexecuted in interpreted mode during a single step, even if it is not\nstrictly required.\n\nFor example, if we have a computation heavy method call and we would\nlike to step over it, that method (and all the methods called from it)\nwill run in interpreter mode. This can take so long in some cases\n(e.g. multiple minutes) that it makes debugging process unusable.\n\nThe solution for this limitation is not using full deoptimizations for\nsingle steps and force interpreter only for those methods that we are\nabout to step into, and require stack deoptimization before step outs.\n\nBug: 17750566\nBug: 18094282\nBug: https://code.google.com/p/android/issues/detail?id\u003d77984\n\nChange-Id: I683c52465883146c4c84ec47bf96f8efd920527f\nSigned-off-by: Daniel Mihalyi \u003cdaniel.mihalyi@mattakis.com\u003e\n"
    },
    {
      "commit": "bce0855ca1dbb1fa226c5b6a81760272ce0b64ef",
      "tree": "6439e1079e13fff84e98e8ef0a7feaf05ad9546a",
      "parents": [
        "27a40aac557a0ee123471a99dc56fe91b50f2351",
        "0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 24 02:40:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 02:40:56 2015 +0000"
      },
      "message": "Merge \"Revert \"Deoptimization-based bce.\"\""
    },
    {
      "commit": "0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430",
      "tree": "0e1d0813c1d8d1c7239a900c1653296975713df0",
      "parents": [
        "e295e6ec5beaea31be5d7d3c996cd8cfa2053129"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 24 02:39:46 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 24 02:39:46 2015 +0000"
      },
      "message": "Revert \"Deoptimization-based bce.\"\n\nThis breaks compiling the core image:\n\n Error after BCE: art::SSAChecker: Instruction 219 in block 1 does not dominate use 221 in block 1.\n\nThis reverts commit e295e6ec5beaea31be5d7d3c996cd8cfa2053129.\n\nChange-Id: Ieeb48797d451836ed506ccb940872f1443942e4e\n"
    },
    {
      "commit": "27a40aac557a0ee123471a99dc56fe91b50f2351",
      "tree": "fb7fcf5673e3d672b68e7a96aceb3a50b191b467",
      "parents": [
        "075a6090b07ecfe7394fb65d39567596e0b1e3d3",
        "e295e6ec5beaea31be5d7d3c996cd8cfa2053129"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 23 23:56:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 23:56:37 2015 +0000"
      },
      "message": "Merge \"Deoptimization-based bce.\""
    },
    {
      "commit": "e295e6ec5beaea31be5d7d3c996cd8cfa2053129",
      "tree": "4d8a657d23d511743ce35bee596544d7f652efdb",
      "parents": [
        "d24ba2c44c76a2b2dd13aafe8f7981c15be31a98"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Sat Mar 07 06:37:59 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 23 16:39:37 2015 -0700"
      },
      "message": "Deoptimization-based bce.\n\nA mechanism is introduced that a runtime method can be called\nfrom code compiled with optimizing compiler to deoptimize into\ninterpreter. This can be used to establish invariants in the managed code\nIf the invariant does not hold at runtime, we will deoptimize and continue\nexecution in the interpreter. This allows to optimize the managed code as\nif the invariant was proven during compile time. However, the exception\nwill be thrown according to the semantics demanded by the spec.\n\nThe invariant and optimization included in this patch are based on the\nlength of an array. Given a set of array accesses with constant indices\n{c1, ..., cn}, we can optimize away all bounds checks iff all 0 \u003c\u003d min(ci) and\nmax(ci) \u003c array-length. The first can be proven statically. The second can be\nestablished with a deoptimization-based invariant. This replaces n bounds\nchecks with one invariant check (plus slow-path code).\n\nChange-Id: I8c6e34b56c85d25b91074832d13dba1db0a81569\n"
    },
    {
      "commit": "53056722fbbba44bb30e125b4a0be37e6bb878e7",
      "tree": "6439e1079e13fff84e98e8ef0a7feaf05ad9546a",
      "parents": [
        "526e2ab195672ce68de8351e04807063054ef3da"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 13:38:20 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 13:38:20 2015 -0700"
      },
      "message": "RTLD_LAZY is not supported, use RTLD_NOW instead.\n\nChange-Id: I5f4da01778a0df90bf104d868a00f86445d93a2d\n"
    },
    {
      "commit": "bce416f7f22f1e73250f020be1178a1c7db72330",
      "tree": "cb9503e1ca6457468924cf4d50210f894af2b2c3",
      "parents": [
        "fc06816cc25f80cc6c4c5d002e5d3bced242a9ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 23 12:37:35 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 23 13:00:14 2015 -0700"
      },
      "message": "Add code cache test\n\nBug: 17950037\nChange-Id: I13913667517db5bb9b7224f0639c2b39cf3a1973\n"
    },
    {
      "commit": "fc06816cc25f80cc6c4c5d002e5d3bced242a9ee",
      "tree": "05c1a88f5e26fc72a14d70b27dc5413155f1f3f7",
      "parents": [
        "d24ba2c44c76a2b2dd13aafe8f7981c15be31a98",
        "785049f8083e56e88dfeab5ff74fb3817f9854e3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 19:45:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 19:45:32 2015 +0000"
      },
      "message": "Merge \"Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\""
    },
    {
      "commit": "785049f8083e56e88dfeab5ff74fb3817f9854e3",
      "tree": "ab06a7fb4acb2ed73eed4b58327ba485f61560c4",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 18 10:08:57 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 11:38:54 2015 -0700"
      },
      "message": "Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\n\n  Add paths to .apk to LD_LIBRARY_PATH to enable\n  bionic linker\u0027s \"open from zip-file\" feature.\n\nBug: 8076853\nChange-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1\n"
    },
    {
      "commit": "935e01a1e4c0f0ac257c5a9b71bda50a9d441fa3",
      "tree": "9b79b902c9ca4443561aba439122fd0be65900a6",
      "parents": [
        "7aa81a451386350dd03c98adfade2ed7b88f611e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 19:44:35 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 19:44:35 2015 -0700"
      },
      "message": "Fix interpreter to allow 0 size sparse switches.\n\nBug: 19827056\nChange-Id: I12eaf717f1a4b9bd5e0c8e2a508df9da4e61c4ec\n"
    },
    {
      "commit": "7aa81a451386350dd03c98adfade2ed7b88f611e",
      "tree": "83bab1196e677b6b24f96866ab407cdeff69b6c8",
      "parents": [
        "bd891ccdef8d9677f64e26912c0161de31bb42bd",
        "9ccd151d0d27a729f88af9d00285afe4d147981a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Sat Mar 21 01:47:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 21 01:47:17 2015 +0000"
      },
      "message": "Merge \"Fix verifier handling of empty switch as last instruction.\""
    },
    {
      "commit": "9ccd151d0d27a729f88af9d00285afe4d147981a",
      "tree": "edfef268a0ecda957dfaa91ec35dd99c9ad3761f",
      "parents": [
        "3743174267159ec0c39bce1ca28c2081468dda94"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 18:11:45 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 18:40:32 2015 -0700"
      },
      "message": "Fix verifier handling of empty switch as last instruction.\n\nAlso fixes optimizing compiler\u0027s assumption that switch is non-empty and\nadds test case.\n\nBug: 19827056\nChange-Id: I5ac891d5062f528ef3be787b1094cba7b4c0fbd0\n"
    },
    {
      "commit": "bd891ccdef8d9677f64e26912c0161de31bb42bd",
      "tree": "1e548e63b2987f7831416594b974bece210ba64f",
      "parents": [
        "248701ef353ec05dd78b0a1afe6be29612366b55",
        "cd8f6377821370cb471fb21ae095dfaa204e4410"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Mar 21 01:11:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 21 01:11:12 2015 +0000"
      },
      "message": "Merge \"Remove some spammy logging\""
    },
    {
      "commit": "cd8f6377821370cb471fb21ae095dfaa204e4410",
      "tree": "e3d4763b0a253fbfeab368acf714826934aaeb1d",
      "parents": [
        "8c66b5fd8015116cede7a67ebdd1229ff7315f49"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 18:04:02 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 18:08:28 2015 -0700"
      },
      "message": "Remove some spammy logging\n\nDid not provide useful info and or was redundant.\n\nChange-Id: I42da705debc43460cdd3fdf16e9e9ceb2c137001\n"
    },
    {
      "commit": "3d900a7400701be1fb6a1e7fa192bab8aeec5467",
      "tree": "0e1f08a15e5ebfbc92896f979bded31f9b5f3fd1",
      "parents": [
        "8c66b5fd8015116cede7a67ebdd1229ff7315f49"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 17:56:45 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 17:56:45 2015 -0700"
      },
      "message": "Fix the mac build.\n\nUse SYMBOL around a function name in the assembly code.\n\nChange-Id: I624361ff15a00288c834bd90d1b7783138802ea7\n"
    },
    {
      "commit": "3743174267159ec0c39bce1ca28c2081468dda94",
      "tree": "f4e65f94ab6b0f0a823be26edc5108fd5d8862c6",
      "parents": [
        "a5bfefb1042dfd6b1338dba9287e21c7e432a61a",
        "e01a520fe0010f8abd344b5ed7120787d7ed1d71"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 20:49:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 20:49:11 2015 +0000"
      },
      "message": "Merge \"Assembly TLAB allocation fast path for x86_64.\""
    },
    {
      "commit": "a7d38fc6702d2a763e8187b4773d02b63b3229ac",
      "tree": "37d90ef5acad977c8fe1c4049be7316375c58af3",
      "parents": [
        "2a39584820c46c18c3b013e13d758c707e9f363e"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@imgtec.com",
        "time": "Thu Mar 12 15:32:55 2015 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 20 13:13:01 2015 -0700"
      },
      "message": "ART: Fix expectations for instruction-set-features string\n\nOnly check for an empty features vector if we found \"default.\" The\nvector can be empty if this is already handled, e.g., for \"smp.\"\n\nChange-Id: I0d07faf38d0b50f151b5d29e6993d8224034254e\n"
    },
    {
      "commit": "2a39584820c46c18c3b013e13d758c707e9f363e",
      "tree": "693b528462ed70b4d2dfff40e3b022b3c26b0111",
      "parents": [
        "dbd065a8df06e7595a0ed05d3c18e68b6dac9cd1",
        "3d12eadf67e263ebc7e533f8daa65029feb41313"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 20 19:56:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 19:56:22 2015 +0000"
      },
      "message": "Merge \"ART: Change the isa defaults for Mips\""
    },
    {
      "commit": "3d12eadf67e263ebc7e533f8daa65029feb41313",
      "tree": "3d6c19a669df665c09ef6c4bcaf1ca0840a51999",
      "parents": [
        "157fb9e52b8f11daeec5fbd6286853e0b920c215"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Wed Mar 18 11:29:14 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 20 12:54:23 2015 -0700"
      },
      "message": "ART: Change the isa defaults for Mips\n\nSelect the correct cpu variant for ART and select the default\nfeatures based on compile flags for when the variant is not\ndefined.\n\nChange-Id: I13622db85446ed6fbb467a699d8d3e27833f6f88\n"
    },
    {
      "commit": "e01a520fe0010f8abd344b5ed7120787d7ed1d71",
      "tree": "497937fea803b9d5e2e1fd5923b2ccfb76504ff3",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 19 12:35:04 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 11:49:31 2015 -0700"
      },
      "message": "Assembly TLAB allocation fast path for x86_64.\n\nTODO: resolved/initialized cases, other architectures.\n\nBug: 9986565\nChange-Id: If6df3449a3b2f5074d11babdda0fd2791fd54946\n"
    },
    {
      "commit": "dbd065a8df06e7595a0ed05d3c18e68b6dac9cd1",
      "tree": "e581639c893a5db5ac6c5d1e2019e00a3f79035a",
      "parents": [
        "5888026fad2c22d18dc18c134304e62d87c2c972",
        "79bd2bfa8f1602067fd381834206ed6b7e73a9be"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 18:31:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 18:31:33 2015 +0000"
      },
      "message": "Merge \"Make it possible to enable tlab with a build parameter.\""
    },
    {
      "commit": "79bd2bfa8f1602067fd381834206ed6b7e73a9be",
      "tree": "8f2c7da90cb6a867bac53bb0d7e180f46d55adf9",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 10:28:34 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 20 10:28:34 2015 -0700"
      },
      "message": "Make it possible to enable tlab with a build parameter.\n\nFor testing.\n\nChange-Id: I4d06a4db733b7fa09105f068028483cf88db7925\n"
    },
    {
      "commit": "e86deeffad79c00ed2ebede04f4adc348bda790c",
      "tree": "f0952116fe2fa933c8c9827e83caf4432f0339da",
      "parents": [
        "2f5904383a7b7ffb741c8839ec3c60762860bad3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 19 13:43:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 10:26:42 2015 -0700"
      },
      "message": "Add verify-at-runtime compiler filter\n\nVerifies at runtime only, instead of at compilation time.\nAOSP HH boot time after clean-oat: ~30s instead of ~35s if enabled.\nAlso helps install time if enabled there.\n\nTODO: See if there is any possible deadlocks that can result from\nthis.\n\nBug: 19762303\n\nChange-Id: Ibfba77148da9039e8d7d7497c05486bc044eefe7\n"
    },
    {
      "commit": "2f5904383a7b7ffb741c8839ec3c60762860bad3",
      "tree": "747734c0d96390e434f6bd3b811241b89d21feba",
      "parents": [
        "37c22c61890fe779826dfefa3d327daa76dabb30",
        "1412dfa4adcd511902e510fa0c948b168ab5840c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 14:58:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 14:58:46 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use optimizing for apps.\"\"\""
    },
    {
      "commit": "37c22c61890fe779826dfefa3d327daa76dabb30",
      "tree": "a73e8c2d4092efc8bf13692d3ca6919986fead8d",
      "parents": [
        "39374ce1df34164e0060b0621be98d33ba0ff4e6",
        "004c230b4cfc856690c61faabc41864061813c88"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 14:56:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 14:56:13 2015 +0000"
      },
      "message": "Merge \"Compress the StackMaps.\""
    },
    {
      "commit": "004c230b4cfc856690c61faabc41864061813c88",
      "tree": "40d95445eaa2eb248fa639755689c797a5e0c2ae",
      "parents": [
        "735dc87c92bee338d0638b3290c2b93a122429f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 10:06:38 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 14:55:15 2015 +0000"
      },
      "message": "Compress the StackMaps.\n\nFirst step towards the compression of the StackMap (not\nthe DexRegisterMap). Next step will be to just use what is\nneeded (instead of byte -\u003e word).\n\nChange-Id: I4f81b2d05bf5cc508585e16fbbed1bafbc850e2e\n"
    },
    {
      "commit": "1412dfa4adcd511902e510fa0c948b168ab5840c",
      "tree": "3301c7a9c55c3627cba29e14f4bce44d9de31da3",
      "parents": [
        "39374ce1df34164e0060b0621be98d33ba0ff4e6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 14:48:13 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 14:51:15 2015 +0000"
      },
      "message": "Revert \"Revert \"Use optimizing for apps.\"\"\n\nThis reverts commit 706cae36209932f258b2fe2e396f31d2dd7d585e.\n\nChange-Id: I75cc6206ec17ade52a6db0737b62aa37ea2fa300\n"
    },
    {
      "commit": "39374ce1df34164e0060b0621be98d33ba0ff4e6",
      "tree": "9fbe1befaa03a0a12a9c31c43daec9ef622a665b",
      "parents": [
        "157fb9e52b8f11daeec5fbd6286853e0b920c215",
        "c0365b144651c4e586ddc235423b3f0111966f89"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 13:51:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 20 13:51:04 2015 +0000"
      },
      "message": "Merge \"Remember whether a method was worth inlining.\""
    },
    {
      "commit": "c0365b144651c4e586ddc235423b3f0111966f89",
      "tree": "7d996dcd0233f6f26ffd7c72dda331f630cc8309",
      "parents": [
        "a2b02f7bb474549ae356b5edfbb27a76e5460c58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 18:31:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 12:16:25 2015 +0000"
      },
      "message": "Remember whether a method was worth inlining.\n\nChange-Id: I9d8efe312b264739ac6307f966e43c1d7650a3ca\n"
    },
    {
      "commit": "d7cbf8a6629942e7bd315ffae7e1c77b082f3e11",
      "tree": "fc8c3371ed4ddac96bbe90a2f94ef5fb5c5472ee",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 19 12:43:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 19 20:00:50 2015 -0700"
      },
      "message": "Change RETURN_VOID_BARRIER to RETURN_VOID_NO_BARRIER\n\nWe want to default to having a barrier for the case where we don\u0027t\ndex to dex.\n\nBug: 19762303\nChange-Id: I60348d89eaf0b9e1e480298afcecbb5f52e8661b\n"
    },
    {
      "commit": "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6",
      "tree": "06d0ca4fc196f3dda795b5dafa2211025e9bdf8a",
      "parents": [
        "00bb33c8151c05d7e1c89f6b999540c2036c5967",
        "706cae36209932f258b2fe2e396f31d2dd7d585e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 19 18:51:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 19 18:51:08 2015 +0000"
      },
      "message": "Merge \"Revert \"Use optimizing for apps.\"\""
    },
    {
      "commit": "00bb33c8151c05d7e1c89f6b999540c2036c5967",
      "tree": "1d1c7007dad6fa05cdce2aaa2e32000b6ce80164",
      "parents": [
        "735dc87c92bee338d0638b3290c2b93a122429f2",
        "5b783e66b26b7b6ee13d344f4b77f6b7c47c4723"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 19 18:49:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 19 18:49:47 2015 +0000"
      },
      "message": "Merge \"Fix 003-omnibus-opcodes flaky failures with GSS GC.\""
    },
    {
      "commit": "706cae36209932f258b2fe2e396f31d2dd7d585e",
      "tree": "929de094fee7b19458c3d7f645af77b874715ce1",
      "parents": [
        "f3251d12dfa387493dbde4c4148a633802f5f7e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 19 18:49:46 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 19 18:49:46 2015 +0000"
      },
      "message": "Revert \"Use optimizing for apps.\"\n\nThis reverts commit f3251d12dfa387493dbde4c4148a633802f5f7e3.\n\nChange-Id: I32514e10ece55ee7bd7382ce2e956d57c9b621e5\n"
    },
    {
      "commit": "5b783e66b26b7b6ee13d344f4b77f6b7c47c4723",
      "tree": "e1f54fec55617c757813ab11beb9072521427596",
      "parents": [
        "b63ff273375c488fae2555fad4e5873d3613aa5d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 18 17:20:11 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 19 11:48:24 2015 -0700"
      },
      "message": "Fix 003-omnibus-opcodes flaky failures with GSS GC.\n\nFix a moving GC bug in Class::SetStatus().\n\nBug: 19828874\n\nChange-Id: I6bef49a7ce964e8a7e316f282aaf1b8544efe76d\n"
    },
    {
      "commit": "735dc87c92bee338d0638b3290c2b93a122429f2",
      "tree": "e96f26717b0cd2faeadadf6146ce12c8dd1c04bb",
      "parents": [
        "b63ff273375c488fae2555fad4e5873d3613aa5d",
        "455f67c4cf0b4f04e117db3024fd189fa1c7dab9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 19 01:50:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 19 01:50:43 2015 +0000"
      },
      "message": "Merge \"Fix JIT options with late init\""
    },
    {
      "commit": "455f67c4cf0b4f04e117db3024fd189fa1c7dab9",
      "tree": "3f89fdc8ba9b31cc0205945410a75d63e2f25000",
      "parents": [
        "5747266d57445ecdd026a4705d62768faad09b01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 13:48:29 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 18 18:49:28 2015 -0700"
      },
      "message": "Fix JIT options with late init\n\nPreviously we couldn\u0027t create the JIT since we didn\u0027t have any\nJITOptions.\n\nBug: 19735273\n\nChange-Id: I24b8ed131ed8b18f75ec94291e135d8a1c089ebd\n"
    },
    {
      "commit": "b63ff273375c488fae2555fad4e5873d3613aa5d",
      "tree": "331b7c5492238f859b56d53747d458b41f27103a",
      "parents": [
        "5747266d57445ecdd026a4705d62768faad09b01",
        "e84e4f77388ec9c1d63fb4b21605eedca2a2e932"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 18 21:37:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 18 21:37:12 2015 +0000"
      },
      "message": "Merge \"Remove the Android.mk GCC-only source files hackery\""
    },
    {
      "commit": "e84e4f77388ec9c1d63fb4b21605eedca2a2e932",
      "tree": "0e6aca3eeeeb60c504ab998bad57a287544ff7df",
      "parents": [
        "94e480778b0946d1ab405ecf901e5d41ed54cc17"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 18 14:01:19 2015 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@google.com",
        "time": "Wed Mar 18 21:05:14 2015 +0000"
      },
      "message": "Remove the Android.mk GCC-only source files hackery\n\nThe complexity in Android.mk to deal with GCC-only source files is\nunnecessary, use #if !defined(__clang__) around the contents of\ninterpreter/interpreter_goto_table_impl.cc, the same way\ninterpreter/interpreter.cc does around references to it.\n\nBug: 17716550\nChange-Id: I775c23b6790d38b0d73a92529c696a31e6a4ae83\n"
    },
    {
      "commit": "47f867a0ae34d743f6159c2261e5b11e39693e15",
      "tree": "3b9129e77ab3e99b211fccc8ab2eba06d0c12957",
      "parents": [
        "a2b02f7bb474549ae356b5edfbb27a76e5460c58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 18 10:39:00 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 18 13:39:18 2015 -0700"
      },
      "message": "Clean up hash set\n\nAdded vertical whitespace, const iterators, made some functions\nconst.\n\nChange-Id: I188dc0384a98d6dae2822f0ac38b740f2356c23d\n"
    },
    {
      "commit": "aec8f930571ce10d6ce9a4249c45866a7f213397",
      "tree": "6514b8af90323a20282f3afe78812cce7535c7df",
      "parents": [
        "696005b00575fa53c91f3baabd4e85d543df4df8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 10:42:22 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 10:43:37 2015 +0000"
      },
      "message": "StackMap: Always load and store unalign.\n\nNow that we can have a mix of Quick and Optimized code in an .oat\nfile, a CodeInfo object is not necessarily word aligned.\n\nChange-Id: Ic6c5d1a2c6e20363436726a0708b0764b5a76caf\n"
    },
    {
      "commit": "696005b00575fa53c91f3baabd4e85d543df4df8",
      "tree": "48e179c37a79d6329ff8b7570280202d2c5d8b06",
      "parents": [
        "93247e439a758ce83a58198918c3b83c42e8f722",
        "f3251d12dfa387493dbde4c4148a633802f5f7e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 08:27:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 18 08:27:16 2015 +0000"
      },
      "message": "Merge \"Use optimizing for apps.\""
    },
    {
      "commit": "93247e439a758ce83a58198918c3b83c42e8f722",
      "tree": "6bdee1d178ccaf0338cfe942b4a7f7f01dca2fc7",
      "parents": [
        "a7d3e2ddfc47395c0bfd50956e3c550d1a392462",
        "3dbf23412481c4da51f0ebe32bec5d300c36834b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 18 00:06:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 18 00:06:17 2015 +0000"
      },
      "message": "Merge \"Fix oat_file_assistant_test32 flaky failures with GSS collector.\""
    },
    {
      "commit": "3dbf23412481c4da51f0ebe32bec5d300c36834b",
      "tree": "a900023a52b868f7776f6c92ced3201cc691fb8a",
      "parents": [
        "cadf090da2dc91a3d6b842324e85f12ea6fef2ef"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 17 16:01:11 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 17 16:01:11 2015 -0700"
      },
      "message": "Fix oat_file_assistant_test32 flaky failures with GSS collector.\n\nBug: 19800031\nChange-Id: I5146fa4e6a79bad94762102a50956c31251dcd2a\n"
    },
    {
      "commit": "a7d3e2ddfc47395c0bfd50956e3c550d1a392462",
      "tree": "8ce7b32e32a3249d798ae69ffdd982c543763fba",
      "parents": [
        "8c36c1af046ba8ed2c4bad19453e02fd2a5cb5ba",
        "6eff38d6a949c5be1532c1ed881a6c2d7bf0991a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 21:51:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 17 21:51:44 2015 +0000"
      },
      "message": "Merge \"Add JIT zygote hook\""
    },
    {
      "commit": "6eff38d6a949c5be1532c1ed881a6c2d7bf0991a",
      "tree": "7eb1e54cd1345d37364d42c0e8453180cf8363ff",
      "parents": [
        "ea2a45669b807486b0570c66d29a721e684f8d47"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 09:52:22 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 11:40:27 2015 -0700"
      },
      "message": "Add JIT zygote hook\n\nBug: 19735273\nChange-Id: I1983852e80010c344b45e0bb459de47c56adfce8\n"
    },
    {
      "commit": "f3251d12dfa387493dbde4c4148a633802f5f7e3",
      "tree": "9f256cb7f0f79ee9ef7da7927d990c355cf15eb2",
      "parents": [
        "eb46017aaa3906e293d6e975d4db3ba02b9bebe9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 18:41:06 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 17 15:25:42 2015 +0000"
      },
      "message": "Use optimizing for apps.\n\nDoing it in dex2oat, to avoid messing up with our current testing.\n\nChange-Id: I76c58f11f0d4756b894e797fc52712453e35adb1\n"
    },
    {
      "commit": "850cd16a683d724b41687074a49504996d8e8e3e",
      "tree": "3b3913d85f8f3c138b97584ede8b2d490dc54d00",
      "parents": [
        "eb46017aaa3906e293d6e975d4db3ba02b9bebe9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 17 11:05:20 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 17 11:06:36 2015 +0000"
      },
      "message": "ART: Fix build for counting arena allocations.\n\nChange-Id: I1fbb8cc9c4934cc81cb80c5c2107c63fd16a0a05\n"
    },
    {
      "commit": "987ca8b9f054a68eaaeb6ac762dc0d8a07fe180d",
      "tree": "511ce7a411a6c9e4eaf9e47be83d424d173e6c2b",
      "parents": [
        "9d6a575d711912d061c1116a03c390c0b2ce8c20"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 15 14:19:14 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 15 14:24:26 2015 -0700"
      },
      "message": "Add more info to GetSFields DCHECK\n\nSome hprof test 64 bit failures had this DCHECK failing.\n\nChange-Id: Iede7432056f99aa2773ddfd098b359fca5f4371e\n"
    },
    {
      "commit": "6c77292f55ab3220f711407ac9015f01a7f58ad5",
      "tree": "9dbdf2cbc74d3912a5b5fdf8697eebe74a77a7f4",
      "parents": [
        "98759d28dc68ea1a799e1af2beb7c7d4535bb75c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 19:21:08 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 19:29:08 2015 -0700"
      },
      "message": "Revert \"Disable jit for ARM 64 bit\"\n\nBug: 17950037\n\nThis reverts commit bf9026d3e09b5b92b1d94a8e1e3953bf13127bef.\n"
    },
    {
      "commit": "bf9fc581e8870faddbd320a935f9a627da724c48",
      "tree": "0a4a6c21fbd4c771b06fac186d32efa6722605b2",
      "parents": [
        "3d96846b6adedf57be64eb3873de0ca58ec4b827"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 17:21:25 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 17:32:48 2015 -0700"
      },
      "message": "Add more info to who called SuspendAll\n\nHelps diagnose related jank.\n\nChange-Id: I38191cdda723c6f0355d0197c494a3dff2b6653c\n"
    },
    {
      "commit": "3d96846b6adedf57be64eb3873de0ca58ec4b827",
      "tree": "09027316758e990c14501dd359f788b9515d689e",
      "parents": [
        "9bcea85e0ba966950bf87573eca1c9460d40ddb5",
        "8711d1fadb62481cdcb10c829a54b36f6aa16f6f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 13 23:59:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 23:59:01 2015 +0000"
      },
      "message": "Merge \"Fix valgrind heap_test.\""
    },
    {
      "commit": "8711d1fadb62481cdcb10c829a54b36f6aa16f6f",
      "tree": "8ca7b49ed588b4fa02f4d664ddbc5f870a4718e8",
      "parents": [
        "02c0bac34c246c1bd974dbb86d292d4b52ba98e4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 13 16:48:55 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 13 16:53:36 2015 -0700"
      },
      "message": "Fix valgrind heap_test.\n\nCopy the exact object size rather than the aligned size to avoid\nvalgrind errors in the zygote compact collector.\n\nChange-Id: I260b8901f96fb4c0937a1a5237120b56f6858b7a\n"
    },
    {
      "commit": "9bcea85e0ba966950bf87573eca1c9460d40ddb5",
      "tree": "fdb8e672dd4b0cce54c77d0311808c4056653cd2",
      "parents": [
        "02c0bac34c246c1bd974dbb86d292d4b52ba98e4",
        "12d625f87bcd6c4059a205bb39007a255f57f382"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 23:53:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 23:53:16 2015 +0000"
      },
      "message": "Merge \"Change method verifiers to be thread local roots\""
    },
    {
      "commit": "12d625f87bcd6c4059a205bb39007a255f57f382",
      "tree": "b69f6f80f56977c176e0c441869d2f1de06ede70",
      "parents": [
        "b871a15f1f662c8efe10d41199180bd00b6decd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 11:33:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 16:38:25 2015 -0700"
      },
      "message": "Change method verifiers to be thread local roots\n\nBug: 10921004\n\nChange-Id: I3a1425d76cd380587ba67ef6d5ec1227564e55bf\n"
    },
    {
      "commit": "02c0bac34c246c1bd974dbb86d292d4b52ba98e4",
      "tree": "83774758f02a48a0b59e042d2c6f4a4a7edf60a2",
      "parents": [
        "ccac273186a7f624ee20d1a3e19ea34bb3fd305f",
        "fead4e4f397455aa31905b2982d4d861126ab89d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 18:46:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 18:46:44 2015 +0000"
      },
      "message": "Merge \"[optimizing] Don\u0027t record None locations in the stack maps.\""
    },
    {
      "commit": "ccac273186a7f624ee20d1a3e19ea34bb3fd305f",
      "tree": "9d57836a3fc56f0b571778a096c9c1ea5afc9dc1",
      "parents": [
        "c885ee269d2c76e830e1208b6018b70c4a331101",
        "bf9026d3e09b5b92b1d94a8e1e3953bf13127bef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 18:46:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 18:46:07 2015 +0000"
      },
      "message": "Merge \"Disable jit for ARM 64 bit\""
    },
    {
      "commit": "bf9026d3e09b5b92b1d94a8e1e3953bf13127bef",
      "tree": "ba0e893fbdbc2b86f5c491ee2d61d755f7adedeb",
      "parents": [
        "b871a15f1f662c8efe10d41199180bd00b6decd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 11:34:02 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 11:41:42 2015 -0700"
      },
      "message": "Disable jit for ARM 64 bit\n\nUntil issues are fixed.\n\nBug: 17950037\nChange-Id: I4517a1e188adf0a087576423066c348eb6ae81be\n"
    },
    {
      "commit": "fead4e4f397455aa31905b2982d4d861126ab89d",
      "tree": "21e4ccd99472bbf5cf1fac3bc20d0bca6f176022",
      "parents": [
        "cc22e3946baf035c8732e9417ab132bfe663aa45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 14:39:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 18:28:19 2015 +0000"
      },
      "message": "[optimizing] Don\u0027t record None locations in the stack maps.\n\n- moved environment recording from code generator to stack map stream\n- added creation/loading factory methods for the DexRegisterMap (hides\ninternal details)\n- added new tests\n\nChange-Id: Ic8b6d044f0d8255c6759c19a41df332ef37876fe\n"
    },
    {
      "commit": "2f709af007ea67ee8b6b8965a7ce313bcb6089d4",
      "tree": "ada833807a77010b64f7ad8c9eccf649abe4c135",
      "parents": [
        "b871a15f1f662c8efe10d41199180bd00b6decd1",
        "db1c9ac2c28f7c52d4081dc42fc4f10efed953f9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 13 18:02:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 18:02:10 2015 +0000"
      },
      "message": "Merge \"Exercise Heap::PreZygoteFork() in a test.\""
    },
    {
      "commit": "db1c9ac2c28f7c52d4081dc42fc4f10efed953f9",
      "tree": "403b286b6f609fa9cbd97af41357b7d0c26d63b2",
      "parents": [
        "b1e63900ab0637875adcb77eeb7ff5af532293a1"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 12 15:40:53 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 13 10:59:50 2015 -0700"
      },
      "message": "Exercise Heap::PreZygoteFork() in a test.\n\nChange-Id: If41c931ffdbb0310536799b4515557770f2cd4b9\n"
    },
    {
      "commit": "b871a15f1f662c8efe10d41199180bd00b6decd1",
      "tree": "0edabf07dc19a4451cf131144369cd9a6e6e0ce9",
      "parents": [
        "b93581f857e36a62f690e26e78167f2abea0f033",
        "2435a43f6c851c23922d8508fb17c6079248201c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 17:56:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 17:56:46 2015 +0000"
      },
      "message": "Merge \"ART: Add entries_ lock for race condition\""
    },
    {
      "commit": "2435a43f6c851c23922d8508fb17c6079248201c",
      "tree": "a0eea938dfbafc8f8e1546528295005d3a55ecee",
      "parents": [
        "c685bce4e6cfec075cb5b468d06b2fcdeeda2005"
      ],
      "author": {
        "name": "bowen_lai",
        "email": "bowen_lai@htc.com",
        "time": "Fri Mar 13 14:34:40 2015 +0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 10:20:40 2015 -0700"
      },
      "message": "ART: Add entries_ lock for race condition\n\nGCDaemon thread would visit incorrect RegType content when there is\nanother thread initializing classes.\nAdd a lock to protect entries_.\n\nhttps://code.google.com/p/android/issues/detail?id\u003d159849\n\nChange-Id: Iabaa1c7f5cc5106b60a6e3856152e0797e8a5d6d\n"
    },
    {
      "commit": "a98c74e93330e2800677a5d24d7d0d8977481044",
      "tree": "0ce974d49c958b95ffa001d2d9ec3a8351d41ffb",
      "parents": [
        "cc22e3946baf035c8732e9417ab132bfe663aa45",
        "8e6c3fd1cd445b0a248cf1396c16fb1616bc73df"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 13 16:20:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 16:20:21 2015 +0000"
      },
      "message": "Merge \"ART: Fix arraycopy in Unstarted Runtime\""
    },
    {
      "commit": "8e6c3fd1cd445b0a248cf1396c16fb1616bc73df",
      "tree": "404740a8173caaa3ca2eda4d2f9257c22cd9bf68",
      "parents": [
        "90a6adc0f6e55ec02f9443c12e93fea85c1a9393"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 11 18:34:44 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 13 09:16:05 2015 -0700"
      },
      "message": "ART: Fix arraycopy in Unstarted Runtime\n\nAdd null and bounds checks. Add type checks. Implement correct\ncopy in case of overlap.\n\nThe emulation is not complete. Object arrays with different types\nare not supported to simplify the implementation.\n\nChange-Id: I107bed1ce884ca632de3fa648fa7a1c5f592e2a4\n"
    },
    {
      "commit": "ede7bf8a5cef965974e7c1edcf46a41fbe50a49d",
      "tree": "7f99657bd4f8591f7cf463c1a197e1a7575abab6",
      "parents": [
        "63346f57e2327894ce6c1e28e3d00342177538a6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:23:04 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:54:45 2015 +0000"
      },
      "message": "Align CodeInfo regions instead of their inner subregions.\n\nInstead of word-aligning every stack map region, as well as\nthe Dex register maps region of a CodeInfo object, just\nalign the whole CodeInfo region itself.\n\nChange-Id: Ia35d213d2bd184729aa0d048874c76f7bc6da0f6\n"
    },
    {
      "commit": "63346f57e2327894ce6c1e28e3d00342177538a6",
      "tree": "dd3e686f2915a5c1cf37f83c6a9882ae35ff9da2",
      "parents": [
        "faa375ca1409707efaaeeb710b2e933e7668dbe9",
        "29ba1b068fc9f5a8011782c147b1f7732928aac7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:40:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 12:40:16 2015 +0000"
      },
      "message": "Merge \"Fix the computation of the size of the stack maps region.\""
    },
    {
      "commit": "29ba1b068fc9f5a8011782c147b1f7732928aac7",
      "tree": "5b61289b1e135cce6f01e8c9cbcaa747a39f196c",
      "parents": [
        "d9a59ca8f038a0f93a4e1504e0f7f8f388848719"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 11:45:07 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:28:43 2015 +0000"
      },
      "message": "Fix the computation of the size of the stack maps region.\n\nIn art::StackMapStream::ComputeStackMapSize, compute the\nsize of a CodeInfo\u0027s stack maps region using the stack\nmask size, not the maximum element of the stack mask.\nAlso, rename this method as\nart::StackMapStream::ComputeStackMapsSize to make it clear\nit that it covers all the stack maps of the CodeInfo item,\nnot just one stack map.\n\nChange-Id: Icad21946dbca6e1ade2b82c9c2c535fdfed110a9\n"
    },
    {
      "commit": "15b9d5274399736ac09705f0507df24fac4f00c1",
      "tree": "04564a9265f5dccefdd32ea7bdd25adc0267f80b",
      "parents": [
        "8bc616d09f93523f4bc982cc60c377b00161522a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 12 15:05:13 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 10:26:47 2015 +0000"
      },
      "message": "API change in StackVisitor::GetVReg*.\n\n- Remove GetVReg() and SetVReg() that were expecting to always succeed.\n- Change Quick-only methods to take a FromQuickCode suffix.\n- Change deopt to use dead values when GetVReg does not succeed:\n  the optimizing compiler will not have a location for uninitialized\n  Dex registers and potentially dead registers.\n\nChange-Id: Ida05773a97aff8aa69e0caf42ea961f80f854b77\n"
    },
    {
      "commit": "ddd04a64a13bde9551ca1174957e055cd2132cff",
      "tree": "cfee62d10e81752ec3af2be1b03dc04a4b176fc9",
      "parents": [
        "90a6adc0f6e55ec02f9443c12e93fea85c1a9393",
        "915b9d0c13bb5091875d868fbfa551d7b65d7477"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 08:45:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 08:45:12 2015 +0000"
      },
      "message": "Merge \"Tweak liveness when instructions are used in environments.\""
    },
    {
      "commit": "6eb987dd8afd001898f262263203a1a3ff3fcf83",
      "tree": "0115f8aace42392f6d0112f75f7bcd9a0a090b9e",
      "parents": [
        "c685bce4e6cfec075cb5b468d06b2fcdeeda2005"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 12 17:26:05 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 12 17:26:05 2015 -0700"
      },
      "message": "Fix copy/paste documentation error.\n\nChange-Id: I153a8fdb3644c7178895ce0cc6c1c3f6ce3c6876\n"
    },
    {
      "commit": "c685bce4e6cfec075cb5b468d06b2fcdeeda2005",
      "tree": "df0066973ff62cd8c034d7bedea167ba9c2253b5",
      "parents": [
        "003e7aad9a6e57032dfc7b4677dc815c6aa462ea",
        "dd9d055ddfe4bd66fcf58fde4e8066670acce011"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 12 23:17:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 12 23:19:15 2015 +0000"
      },
      "message": "Merge \"ART: More cutouts for unstarted runtime\""
    },
    {
      "commit": "dd9d055ddfe4bd66fcf58fde4e8066670acce011",
      "tree": "a88253b45ce6c9292ab6dfab16452fa7c1b4c8fb",
      "parents": [
        "510abc71bd8a5ba42079a851783aba31036c54ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 09 12:57:41 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 12 16:09:38 2015 -0700"
      },
      "message": "ART: More cutouts for unstarted runtime\n\nDex objects keep byte buffers to mapped dex files. For annotation\naccess we create them when compiling, but they must be cleared before\nwriting an image.\n\nAdd some Memory functions.\n\nBug: 19542228\nChange-Id: I995791b43f2b09192d88645821d9e55b45f1b606\n"
    },
    {
      "commit": "b1e63900ab0637875adcb77eeb7ff5af532293a1",
      "tree": "b44c2ab05d4df7e5387c588e95ab45cd8380edff",
      "parents": [
        "26584ca6cee6891cf96434400b469e83a4256e84",
        "d7f8d05987e08723de008ba6dbbf66acb7db0f24"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 12 22:37:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 12 22:37:16 2015 +0000"
      },
      "message": "Merge \"ART: Save work-line for pending runtime failure\""
    }
  ],
  "next": "9ac0e4d4ed1b45cf8767ef1d339afcdd205bf55a"
}
