)]}'
{
  "log": [
    {
      "commit": "db51efb3617d15f1cd9e5ff0cc2d934777014e9a",
      "tree": "fa70acb9f8d090def2cae550db8c2e1f630f31c4",
      "parents": [
        "2649cba0fb7cdbd8fa60cb4f2fb320fb2b18ee37"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 06 01:36:20 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 09 10:27:08 2015 +0000"
      },
      "message": "ART: Fix critical edge splitting under try/catch\n\nA critical edge would not be split if the predecessor ends with\nTryBoundary. This would eventually trip liveness analysis because\na back edge block would have smaller liveness position than a nested\nloop.\n\nAnother implication of this change is that an edge between a loop\u0027s\npre-header ending with TryBoundary and the header will be split,\nguaranteeing that a pre-header always has just one successor.\n\nBug: 25493695\nBug: 25454012\nChange-Id: I5a13b8bb74509b48f5d628906f7158af007f99ae\n"
    },
    {
      "commit": "2264f624e41acf09b17c3961bd52966e43f2b58f",
      "tree": "b946c5ffdca5399408fc0769edb12762980087b8",
      "parents": [
        "4202a2ff49d77eda813052d091675bf53c46cb0f",
        "5c75ffad3aaf9d62ea3ac4cf2c0a2fd699368f83"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 07 14:15:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 07 14:15:46 2015 +0000"
      },
      "message": "Merge \"MIPS64: small improvements in code generation\""
    },
    {
      "commit": "5c75ffad3aaf9d62ea3ac4cf2c0a2fd699368f83",
      "tree": "15da165b06f99c55849e5431d8b405c2014883dc",
      "parents": [
        "b203aad7a0db904efa8429d48b53e56583f61ec2"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Sep 24 14:41:59 2015 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Nov 06 13:13:47 2015 -0800"
      },
      "message": "MIPS64: small improvements in code generation\n\nSpecifically:\n- More efficient load/store of constant 0 (and +0.0)\n- Improved swapping of floats/doubles in registers\n- Use kNoOutputOverlap wherever possible\n- More efficient 64-bit integer comparison with 0\n- More efficient load of integer constants of the form (2**n)-1\n\nChange-Id: Ic2914d8865aa6616b9a0b21b3cc173d4477eb8c7\n"
    },
    {
      "commit": "c857c746707dfd45d74b75cb7fa84484ca68cc2a",
      "tree": "0c223c9cb4999ffe9b04b3e264f5fea4c91d949a",
      "parents": [
        "b203aad7a0db904efa8429d48b53e56583f61ec2"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Sep 23 15:12:39 2015 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Nov 06 13:03:43 2015 -0800"
      },
      "message": "MIPS64: Improve integer division by constants\n\nThis also removes some unused instructions and instructions not\navailable on MIPS64R6.\n\nChange-Id: I44bfe12c60344312c88c45e97b6b07dcd5bdc630\n"
    },
    {
      "commit": "9bc436160b4af99067973affb0b1008de9a2b04c",
      "tree": "160fba56aa8ba53a5db624c42c1936dd15a3cdf7",
      "parents": [
        "ef7ef4ce04a46405e15cd91115c6e657235adf83"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 05 21:25:24 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 06 19:20:46 2015 +0000"
      },
      "message": "ART: Fix simplification of catch blocks in the presence of dead code\n\nSimplification of catch blocks transforms the code so that catch\nblocks have only exceptional predecessors. However, it is invoked\nbefore trivially dead code is eliminated which breaks simple\nassumptions such as the fact that a catch block cannot start with\nmove-exception if it has non-exceptional predecessors. This patch\nfixes the algorithm to work under these relaxed conditions.\n\nBug: 25494450\nBug: 25492628\nChange-Id: Idc8d010102a4b8b9a6cd918b98d6e11d1838db0c\n"
    },
    {
      "commit": "17656eb32a08f81384d4afda8b19b71f0736abd4",
      "tree": "05b5556881ae1e0ec5af234bddfc3dc7ab41a988",
      "parents": [
        "97e740166a0687ddca6a51deee64b61c1bd17868",
        "16ba2b4726cafc2d83cae4a65132aac15f372689"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 06 17:33:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 17:33:17 2015 +0000"
      },
      "message": "Merge \"MIPS32: java.lang.String.equals\""
    },
    {
      "commit": "16ba2b4726cafc2d83cae4a65132aac15f372689",
      "tree": "60e849e3c8f58e3b49984e9907b633b7a32bb33d",
      "parents": [
        "ae0441907596ff5d7d3ebba6e12ed25e3ec11e21"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Nov 02 10:58:31 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 06 09:31:46 2015 -0800"
      },
      "message": "MIPS32: java.lang.String.equals\n\nAdd intrinsic support for String.equals on MIPS32.\n\nChange-Id: I2d184aa4d5dae7cdd4a89c2c902535692c9e7393\n"
    },
    {
      "commit": "814893712135ada93d60776e2677b80fa6dfa7a8",
      "tree": "9d96264e89c2b3341dc78e07cb2bbb676d9e3f77",
      "parents": [
        "5348137d15483f7aeaf03f5116b8d6e01b5c1bac"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Nov 04 11:30:41 2015 -0500"
      },
      "committer": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Nov 06 13:39:23 2015 +0000"
      },
      "message": "Improve X86 handling of constants to Field/Array Set\n\nAnTuTu 5.6 f.v.b() function on X86 showed several places where FP\nconstants were created using the stack, one in an inner loop.\n\nChange ArraySet and *FieldSet to allow constants, and then generate\ninteger constant moves, rather than forcing the constant to be\nmaterialized into a register. This will also help with register\npressure.\n\nChange-Id: Ibebe2fed748a1bbeca47c36e9536b9b2357fc3cb\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "2704896d3aa2902f46eebd722095b06331f548be",
      "tree": "0376c827f4ecabf1a0d6dd194d7c7a18f4451587",
      "parents": [
        "9c3cd19d85a1366fdd9a617562d4966d6844d9f7",
        "53afca191ace3d7447b09097f9ea82a513075c52"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 06 09:38:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 09:38:03 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement virtual intrinsic slow path\""
    },
    {
      "commit": "53afca191ace3d7447b09097f9ea82a513075c52",
      "tree": "f037ef8007bcbe4632b5d06fab0a7aea5550ce61",
      "parents": [
        "a930832a4ef0a2ef0835c5db4650750018ab0765"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Nov 05 16:34:23 2015 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Nov 05 16:53:19 2015 -0800"
      },
      "message": "MIPS64: Implement virtual intrinsic slow path\n\nThis fixes a crash in dex2oat while compiling boot.oat.\n\nChange-Id: I44fc92809902d7fc226c88b3e3f081b72cc19ce5\n"
    },
    {
      "commit": "d93223d7966bee1ae91a9e224c1dd56de1aa3f50",
      "tree": "c26470258961ad9775c8f8ebec9ad102f08d1f55",
      "parents": [
        "f2a93f4d824d6ea0f5858c774ba03f1c002a6aaa",
        "389b3dbf5c5390056ff4dacac464219853dd3cda"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Nov 05 17:15:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 17:15:05 2015 +0000"
      },
      "message": "Merge \"Finalized all components of range analysis needed for dynamic bce.\""
    },
    {
      "commit": "f2a93f4d824d6ea0f5858c774ba03f1c002a6aaa",
      "tree": "5a7043988f84b6127a56f2054d7a80fb1d07b6c8",
      "parents": [
        "3f96f42b3788f9b9b243822212ec686e599279ef",
        "ea5af68d6dda832bdfb5978a0c5d6f86a3f67e80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 16:27:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 16:27:58 2015 +0000"
      },
      "message": "Merge \"X86-64: Split long/double constant array/field set\""
    },
    {
      "commit": "ea5af68d6dda832bdfb5978a0c5d6f86a3f67e80",
      "tree": "01fbfdc1b686cafad2d545815980e3d0b0451e0a",
      "parents": [
        "b24301b06b31b463f7e92ebc9a8f75839e54b746"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Oct 22 17:35:49 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Nov 05 10:56:59 2015 -0500"
      },
      "message": "X86-64: Split long/double constant array/field set\n\nA long constant needs to be in a register to store to memory.\nBy allowing stores of constants that are outside of the range of\nint32_t, we reduce register usage.\n\nAlso support sets of float/double constants by using integer stores.\n\nRename RegisterOrInt32LongConstant to RegisterOrInt32Constant as it\nnow handles any type of constant.\n\nChange-Id: I025d9ef889a5a433e45aa03b376bae40f14197d2\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b8b97695d178337736b61609220613b92f344d45",
      "tree": "8b412373d1f21cac78168e284e36977a7fab0875",
      "parents": [
        "b24301b06b31b463f7e92ebc9a8f75839e54b746"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri May 22 16:58:19 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Nov 05 10:44:24 2015 -0500"
      },
      "message": "Fix conditional jump over jmp (X86/X86-64/ARM32)\n\nOptimize the code generation for \u0027if\u0027 statements to jump to the\n\u0027false\u0027 block if the next block to be generated is the \u0027true\u0027 block.\n\nAdd an X86-64 test for this case.\n\nNote that ARM64 \u0026 MIPS64 have not been updated.\n\nChange-Id: Iebb1352feb9d3bd0142d8b0621a2e3069a708ea7\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b24301b06b31b463f7e92ebc9a8f75839e54b746",
      "tree": "16071bd91ba5f5fc4739479b1c1ede0691ca2b8d",
      "parents": [
        "2b13eaa50065346d4a1345b05fe2e1455df6d71d",
        "d28b969c273ab777ca9b147b87fcef671b4f695f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 12:53:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 12:53:57 2015 +0000"
      },
      "message": "Merge \"Code cleanup to avoid CompilerDriver abstractions in JIT.\""
    },
    {
      "commit": "d28b969c273ab777ca9b147b87fcef671b4f695f",
      "tree": "ca66ecfd809afdcd31443bbe50bf38a836302cc5",
      "parents": [
        "6bf6e438cd4746effce0b26d504c54100191c988"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 04 14:36:55 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 10:37:48 2015 +0000"
      },
      "message": "Code cleanup to avoid CompilerDriver abstractions in JIT.\n\nAvoids allocating a CompiledMethod.\n\nChange-Id: I35b4aa0d7c74daba68e827a01e71c300fce3b3bf\n"
    },
    {
      "commit": "2bd4c5c1b704be8a81d9b7a94b3e828afa2b0963",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 22:48:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 22:48:45 2015 +0000"
      },
      "message": "Revert \"ART: Implement DeadPhiHandling in PrimitiveTypePropagation\"\n\nCrashes on YouTube, need to investigate\n\nThis reverts commit 1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75.\n\nChange-Id: If5f133d55dcc26b8db79a670a48fbd4af7807556\n"
    },
    {
      "commit": "1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75",
      "tree": "57ab54c48a7404abf0c9f2c919e8a6c805d98587",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 28 13:49:59 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 18:13:45 2015 +0000"
      },
      "message": "ART: Implement DeadPhiHandling in PrimitiveTypePropagation\n\nDeadPhiHandling revives non-conflicting phis with environment uses\nbut does not properly merge types. To not duplicate code, this patch\nmodifies PrimitiveTypePropagation to deal with conflicts and thus\nreplaces DeadPhiHandling altogether.\n\nBug: 24252151\nBug: 24252100\n\nChange-Id: I198c71d1b8167fc05783a5a24aa9f1e3804acafe\n"
    },
    {
      "commit": "389b3dbf5c5390056ff4dacac464219853dd3cda",
      "tree": "85013c1eaf6aaba9ab839f17b978eb689f30e998",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 14:23:40 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 04 09:48:26 2015 -0800"
      },
      "message": "Finalized all components of range analysis needed for dynamic bce.\n\nRationale: added ability to generate taken-test, prompt back need\n           for finite-test; cleaned up the API now that bounds\n           check needs are all known.\n\nChange-Id: I3d09b249965d1a980c09381240de175ca4b2e455\n"
    },
    {
      "commit": "c8894ab5021aecd0fa5eba94af47f732914af33b",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "b178e11d9eb44fc0ac666049f3aa14f7f14ffd64",
        "10ef6941648aad04d54527d4a7a6070bf7065e88"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 04 16:27:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 04 16:27:44 2015 +0000"
      },
      "message": "Merge \"Delay emitting CFI PC adjustments until after Thumb2/Mips fixup.\""
    },
    {
      "commit": "10ef6941648aad04d54527d4a7a6070bf7065e88",
      "tree": "50fe6b50a3020ec7d25fbd5e4393db1c04452ce7",
      "parents": [
        "c74e69f831608964f89ac7a641fbcc09156eefaa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 22 15:25:54 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 04 14:54:23 2015 +0000"
      },
      "message": "Delay emitting CFI PC adjustments until after Thumb2/Mips fixup.\n\nOn Mips also take into account out-of-order CFI data emitted\nfrom EmitBranches().\n\nChange-Id: I03b0b0b4c2b1ea31a02699ef5fa1c55aa42c23c3\n"
    },
    {
      "commit": "934808feba1a56114cb48ee71c4ad1b9a63a3f84",
      "tree": "242caa3275a0f191f21bbdb71430e140a79d9b94",
      "parents": [
        "f33ea7911dadab2e49c4634cb1763f0526047e89"
      ],
      "author": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Tue Nov 03 13:23:54 2015 +0100"
      },
      "committer": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Nov 04 09:37:09 2015 +0100"
      },
      "message": "Fix mips32oc ArraySet null constant assignment\n\nFix assigning a null constant to an array index. Previously this\nwould unnecessarily invoke pAputObject.\n\nThis commit fixes previous test failure: 521-checker-array-set-null.\n\nChange-Id: I02ff5296fa3a48b021c0dfd9bb10628ba6e5d5e5\n"
    },
    {
      "commit": "fb552d7061746f7a90fdd5002696e255e2e15c35",
      "tree": "6ac0a1698ef53c7bb7258d471816b4edf6fb9212",
      "parents": [
        "ce52901e2c8377fc1c331ae0faf7fbcb46b9da97"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 20:24:24 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 20:24:24 2015 +0000"
      },
      "message": "Revert \"ART: Update DCE to work with try/catch\"\n\nThis reverts commit ce52901e2c8377fc1c331ae0faf7fbcb46b9da97.\n\nChange-Id: I6b3a1f2a3dc036030b089b0df2005ecefa66b949\n"
    },
    {
      "commit": "ce52901e2c8377fc1c331ae0faf7fbcb46b9da97",
      "tree": "19dca428a4e5e30d70c9e96d85acc99ae01ba8e4",
      "parents": [
        "49560fcce5b9a07108f7cc75a3fb0fa265e5fa0e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 28 19:25:55 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 13:22:19 2015 -0600"
      },
      "message": "ART: Update DCE to work with try/catch\n\nDead block elimination was previously disabled because it needed\nto be updated. With this patch, try/catch blocks can be removed\nas a result of a dead if/switch branch.\n\nChange-Id: I3261060bf24fd5fe7bb0f989247f0ef62ec5fd7b\n"
    },
    {
      "commit": "816b2b3f704d61ba608ad2c3513d4697e7fb5dfe",
      "tree": "c13905f7fcf31612d5ff60662371c8c642cd5fc7",
      "parents": [
        "43c6d31c43c05d97511bb9658964fd3d2f32b915",
        "d930929be93798d790c91dd05adf2c038508f1b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 13:52:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 02 13:52:48 2015 +0000"
      },
      "message": "Merge \"Fix inlining and lse bugs with unresolved access.\""
    },
    {
      "commit": "d930929be93798d790c91dd05adf2c038508f1b0",
      "tree": "ef7a9b70e2e8f14ae2b49a07ca04b2fa1cee8496",
      "parents": [
        "289c4e3a10acb6d0250dc25dd42465ca4d08c762"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Oct 31 22:21:31 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 13:45:30 2015 +0000"
      },
      "message": "Fix inlining and lse bugs with unresolved access.\n\nbug:25414532\n\nChange-Id: I48b6660754774ea3e8a62a74175b1aa3728e0151\n"
    },
    {
      "commit": "3e0597facd506073fcf91db2d81ae2ffdce6b701",
      "tree": "05e6e5bb0a0a1f8dcadbf2c0939f363f4622970c",
      "parents": [
        "c74e69f831608964f89ac7a641fbcc09156eefaa",
        "951779839f0d35ed5336f399c8f521fd9a6b7c27"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 20:05:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 20:05:29 2015 +0000"
      },
      "message": "Merge \"ART: Enable inlining under try/catch\""
    },
    {
      "commit": "951779839f0d35ed5336f399c8f521fd9a6b7c27",
      "tree": "eb678f58590287e04585bc92202c45b4120c9a0e",
      "parents": [
        "34e38c43d4728fb1d3a011f8c142bff94927f6fb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 12:56:58 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 15:02:37 2015 -0500"
      },
      "message": "ART: Enable inlining under try/catch\n\nThis patch updates the inliner to set try/catch information\nwhen inlining into a method with try/catch. It does not yet\nallow inlining of methods with try/catch because that will\nrequire generating catch stack maps with inline info.\n\nChange-Id: I7d57e1454e7da537d75c5c7eda60b22f3a30fa60\n"
    },
    {
      "commit": "c74e69f831608964f89ac7a641fbcc09156eefaa",
      "tree": "284112345185cd3ef21feaeaa6060606cfbbbda8",
      "parents": [
        "564420bc5b37572d45067fd71ed64d818ef3030d",
        "7cffc3b0004d32faffc552c0a59286f369b21504"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 18:17:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 18:17:00 2015 +0000"
      },
      "message": "Merge \"ART: Arm32 packed-switch jump tables\""
    },
    {
      "commit": "7cffc3b0004d32faffc552c0a59286f369b21504",
      "tree": "e3838b8ba2a782ed91ef8faa381362b7a686a32a",
      "parents": [
        "9e1b56f0e77aa5b6c72374b86d0cef58484ddcaa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 21:31:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 11:15:26 2015 -0700"
      },
      "message": "ART: Arm32 packed-switch jump tables\n\nAdd jump table support to the thumb2 assembler. Jump tables are\na collection of labels for the case targets, and an anchor label\ndenoting the position of the jump.\n\nUse the jump table support to implement packed-switch support for\narm32.\n\nAdd tests for BindTrackedLabel and JumpTable to the thumb2 assembler\ntest.\n\nBug: 24092914\nChange-Id: I5c84f193dfebf9e07f48678efc8bd151bb1410dd\n"
    },
    {
      "commit": "469e9c4515cb68509f02def2fe6c0465ffb55628",
      "tree": "d71e88ac9b0862dc04a25325ff950ea91179ae93",
      "parents": [
        "289c4e3a10acb6d0250dc25dd42465ca4d08c762",
        "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "message": "Merge \"Keep list of dex files for oat file in CompilerDriver.\""
    },
    {
      "commit": "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3",
      "tree": "335509fbc92becce5cb08e23361e2cae86756729",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 29 12:18:29 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 15:38:39 2015 +0000"
      },
      "message": "Keep list of dex files for oat file in CompilerDriver.\n\nUse this list to improve invoke-static/-direct dispatch for\nintra-oat calls.\n\nAlso fix a latent ArmBaseRelativePatcher::ReserveSpaceEnd()\nbug exposed by a buggy early version of this CL: when we\nhave unresolved patches at the end of all code, we need to\nemit a final thunk. Though the OatWriter will try to patch\nthe unresolved call to a trampoline at the beginning of the\noat file, that trampoline may be too far and the relative\npatcher doesn\u0027t know about it anyway, so it needs to assume\nthat a thunk is needed.\n\nThis reduces the overall size of oat files present in dalvik\ncache on Nexus 9 after first boot by over 1MiB, AOSP ToT,\naosp_flounder-userdebug build.\n\nChange-Id: I98604b70cb17377eed057c1c23971865cf344e43\n"
    },
    {
      "commit": "70d95b4cabcabff7eda37e9e8348744891008e65",
      "tree": "b652f21fa0bebaf6c290501636adc1b07f591932",
      "parents": [
        "56c8c9ec60a1a887bd39302fa8e2a422cb86fc80",
        "701566aaae098d5aab9d912e2003a18d44fb850d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 03:12:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 03:12:15 2015 +0000"
      },
      "message": "Merge \"MIPS32: Create infrastructure to support intrinsics\""
    },
    {
      "commit": "701566aaae098d5aab9d912e2003a18d44fb850d",
      "tree": "80dc26543cf557528b5765307a16256a126c2cc1",
      "parents": [
        "c65d1f3d26a47e2fce3c3f8872e7942fec23f9b9"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Oct 27 15:29:13 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 20:06:28 2015 -0700"
      },
      "message": "MIPS32: Create infrastructure to support intrinsics\n\nAdd an empty intrinisics implementation for MIPS32.\n\nChange-Id: I3f46ade1c548e6453f094ce200e66232348ef467\n"
    },
    {
      "commit": "d13f2b35546d421f570c64654ad8479caf1165d6",
      "tree": "535c21c9a181b87d15839151b26f65266c418a9f",
      "parents": [
        "8cb0bc28b1161dad0d2c2c1e75318b7e504faa46",
        "771e5cc519665ce0cc76985bb4803f0dd50c3b40"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 22:47:59 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Enable more passes under try/catch\"\""
    },
    {
      "commit": "771e5cc519665ce0cc76985bb4803f0dd50c3b40",
      "tree": "2f6934bc6cb0286d327b7a653be410cf8df43c00",
      "parents": [
        "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:39 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:39 2015 +0000"
      },
      "message": "Revert \"ART: Enable more passes under try/catch\"\n\nBCE does not set TryCatchInformation when creating new blocks.\nWill be fixed with DynamicBCE CL.\n\nThis reverts commit 39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8.\n\nChange-Id: I76ae707ac132bb1a4a9f64f4916ffcd786ef730c\n"
    },
    {
      "commit": "c65d1f3d26a47e2fce3c3f8872e7942fec23f9b9",
      "tree": "1b81ca0d711ca0561e933563aee255b516a4191f",
      "parents": [
        "5ad27592e2317b4c7932885eff702099f7cbe0f1",
        "73f1f3be46652d3f6df61b4234c366ebbf81274a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 21:00:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 21:00:17 2015 +0000"
      },
      "message": "Merge \"Move loop invariant utility to more general place.\""
    },
    {
      "commit": "5ad27592e2317b4c7932885eff702099f7cbe0f1",
      "tree": "0288a1fad8a283a3fb896459bfd1a0c8d8dfa6bf",
      "parents": [
        "e22d85249e6e3985edf5e17a9c28ec26e0e6df3e",
        "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 20:30:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 20:30:29 2015 +0000"
      },
      "message": "Merge \"ART: Enable more passes under try/catch\""
    },
    {
      "commit": "73f1f3be46652d3f6df61b4234c366ebbf81274a",
      "tree": "0d6c2f9eb2331fd5de5aa4c43ebcb45e857a4682",
      "parents": [
        "f7b7f9984da66149e5fe05713845961d7b069a23"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 15:28:08 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 13:29:50 2015 -0700"
      },
      "message": "Move loop invariant utility to more general place.\n\nChange-Id: I15ebfbf9684f0fcce9e63d078ff8dc1381fd1ca3\n"
    },
    {
      "commit": "2118d3d673f6874a593024308facde336b3302e7",
      "tree": "426e3fb09e7d0874c63eaa1680ae57d5ba1e13c3",
      "parents": [
        "0b654bce0f8d7c596d4115848b7e4c4dbeadafd5",
        "96709f17347cb7a6aae15816244d2200ca95a649"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 18:17:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 18:17:17 2015 +0000"
      },
      "message": "Merge \"Simplify unsigned comparisons against zero (with unit tests).\""
    },
    {
      "commit": "96709f17347cb7a6aae15816244d2200ca95a649",
      "tree": "c193a1378acb0968318a47ade5eb63121e6c9b3d",
      "parents": [
        "f7b7f9984da66149e5fe05713845961d7b069a23"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 17:49:07 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 11:04:13 2015 -0700"
      },
      "message": "Simplify unsigned comparisons against zero (with unit tests).\n\nRationale: Such cases occurs a lot after dynamic\n           bound check optimization (where the lower bound\n           is test against upper bound). Removing this\n           unnecessary test improves quality of code.\n\nChange-Id: I3e4dc9f9d799aad342e1c344013ac60fcc3073ac\n"
    },
    {
      "commit": "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8",
      "tree": "09d20062204dedd87c7a7a1163bcdf6d549b39a7",
      "parents": [
        "59cc4e8306879ee7066d51dad4cba140e58c7292"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Oct 26 14:34:30 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 12:07:27 2015 -0500"
      },
      "message": "ART: Enable more passes under try/catch\n\nLICM, BCE, LSE are all safe under try/catch. Inliner and DCE\nneed updating and will be enabled in follow-up CLs.\n\nChange-Id: I86db5f811257d5e765fea91666a2a2af0fb24ec3\n"
    },
    {
      "commit": "6f42850562048169374f3bbaec5bb31441ccc062",
      "tree": "6abe1ae23119a88bdb04298ced79407eb828cb94",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a",
        "36427494be5700bc8adba514b5c67dc3ac429176"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 15:48:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 15:48:50 2015 +0000"
      },
      "message": "Merge \"MIPS64: Add \"Compare and Swap\" intrinsic support.\""
    },
    {
      "commit": "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a",
      "tree": "d2c5cefb419cd0f9bdad2bba939235fbe2c5fbfd",
      "parents": [
        "5f2e628b280dfc5f8385e489d44cc0960fcea484",
        "55d02cf056f993aeafebd54e7b7c68c7a48507c9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 03:57:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 03:57:27 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable store elimination for singleton objects.\"\""
    },
    {
      "commit": "55d02cf056f993aeafebd54e7b7c68c7a48507c9",
      "tree": "bcdd800831f98a896b2b712932e769f46fbeefab",
      "parents": [
        "7f43a3d48fc29045875d50e10bbc5d6ffc25d61e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 02:59:50 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 02:59:50 2015 +0000"
      },
      "message": "Revert \"Enable store elimination for singleton objects.\"\n\nThis reverts commit 7f43a3d48fc29045875d50e10bbc5d6ffc25d61e.\n\nFails booting.\n\nBug: 25357772\nChange-Id: Ied19536f3ce8d81e76885cb6baed4853e2ed6714\n"
    },
    {
      "commit": "f7b7f9984da66149e5fe05713845961d7b069a23",
      "tree": "61a0cbb99d5b4b280cce8a5acca3cfe0ceb73047",
      "parents": [
        "d2b29d69a2c301da31a9875c36a599f4bf817816",
        "22f058726d35dd8f40b3763649e61740b3d22535"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 21:19:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 28 21:19:21 2015 +0000"
      },
      "message": "Merge \"Generate taken-test during trip-count analysis.\""
    },
    {
      "commit": "d2b29d69a2c301da31a9875c36a599f4bf817816",
      "tree": "51141f0dab2f32ae36a8b6d18c334d6b1a4955fc",
      "parents": [
        "b058de905d73f489c5d24b2833f7d5d4401f513c",
        "7f43a3d48fc29045875d50e10bbc5d6ffc25d61e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 28 21:01:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 28 21:01:33 2015 +0000"
      },
      "message": "Merge \"Enable store elimination for singleton objects.\""
    },
    {
      "commit": "22f058726d35dd8f40b3763649e61740b3d22535",
      "tree": "987dd5df7627c2c3e8c798089083cb797627daed",
      "parents": [
        "3dca4c04170bb4c7b26609e55f3f4966d46b681a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 27 15:56:28 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 13:57:14 2015 -0700"
      },
      "message": "Generate taken-test during trip-count analysis.\n\nRationale: for loops that may not be taken, this taken-test\n           can be used by clients of the induction variable\n           analysis to ensure trip-count evaluation is valid.\n\nChange-Id: Ia64749e2389b7224e69d6a49bb604b1964c11068\n"
    },
    {
      "commit": "7b829f6b8390535172bba3496b8bf6275d3c26a6",
      "tree": "917eb0365a737291a8034f97894cba78b6e75dbf",
      "parents": [
        "a0d26f64287cf71e68eacd67d236f8805c01248f",
        "c89715ccaf4c8a8ce298ce2c0c1da479de4c63e7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 28 13:40:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 28 13:40:41 2015 +0000"
      },
      "message": "Merge \"Do not assume the dex cache is already populated.\""
    },
    {
      "commit": "c89715ccaf4c8a8ce298ce2c0c1da479de4c63e7",
      "tree": "556e87ce41af09f5c7839caaddbd3fbbeeebd64a",
      "parents": [
        "3dca4c04170bb4c7b26609e55f3f4966d46b681a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 28 12:06:25 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 28 12:47:50 2015 +0000"
      },
      "message": "Do not assume the dex cache is already populated.\n\nIn JIT mode, it isn\u0027t.\n\nChange-Id: I665cab8142db64996b6ae3d7d7c1e68deba8dfb9\n"
    },
    {
      "commit": "e87a718fe4a41e5c204c6422c0e835e14d3d2d9e",
      "tree": "762d099d4457faee4ab0707915cbbd2d85f3987e",
      "parents": [
        "6fcb8b95e2ba60efde91e3558cb5a71e052919f7"
      ],
      "author": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Oct 28 13:10:42 2015 +0100"
      },
      "committer": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Oct 28 13:15:22 2015 +0100"
      },
      "message": "MIPS32: added support for unresolved classes\n\nRefer to change: https://android-review.googlesource.com/#/c/173570\n\nThis will fix the following test fails:\n\n024-illegal-access\n536-checker-needs-access-check\n\nChange-Id: I07ecb0ab90700f0ca7da28601c6e3755ba1658c0\n"
    },
    {
      "commit": "7f43a3d48fc29045875d50e10bbc5d6ffc25d61e",
      "tree": "3be4590986faae499384f564acafa5fe04eb68b4",
      "parents": [
        "3dca4c04170bb4c7b26609e55f3f4966d46b681a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Oct 27 16:38:33 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Oct 27 16:43:45 2015 -0700"
      },
      "message": "Enable store elimination for singleton objects.\n\nEnable store elimination for singleton objects. However for finalizable object,\ndon\u0027t eliminate stores. Also added a testcase.\n\nChange-Id: Icf991e7ded5b490f55f580ef928ece5c45e89902\n"
    },
    {
      "commit": "7a16bdbcce562a39a6a7defde5e191ca74327f3b",
      "tree": "08aa651a9b18ccabe11083ceed413b9ed2cd13f5",
      "parents": [
        "1a7b13394775c363d8f8facf748d188d1c225aac",
        "35831e8bfa1c0944d4c978d99c4c5b9577945170"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "message": "Merge \"Reduce memory used by CompiledMethods.\""
    },
    {
      "commit": "35831e8bfa1c0944d4c978d99c4c5b9577945170",
      "tree": "a347ecaf4265a1713c86d528392e162d5edfaebc",
      "parents": [
        "171b12e8060f63cf900ffc43d6db35125f6b8c83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 11 11:59:18 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 15:13:37 2015 +0000"
      },
      "message": "Reduce memory used by CompiledMethods.\n\nUse LengthPrefixedArray\u003c\u003es instead of SwapVector\u003c\u003es to store\nCompiledMethod data and get rid of the unnecessary members\nof CompiledMethod to reduce dex2oat memory usage. Refactor\nthe deduplication from CompilerDriver to a new class.\n\nUse HashSet\u003c\u003e instead of std::set\u003c\u003e for the DedupeSet\u003c\u003e to\nfurther decrease the memory usage and improve performance.\n\nThis reduces the dex2oat memory usage when compiling boot\nimage on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).\nThis also reduces the compile time by ~2.2% (~1.6% dex2oat\ntime; with Optimizing, without -j).\n\nChange-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea\n"
    },
    {
      "commit": "cbf3c0f4e8335b460ce2faba3877d4b24fe492a1",
      "tree": "2118db00ced221b5fe55e5bb37738a8535cfa574",
      "parents": [
        "1af35996afc82bfecb501fc5ecdc0d3350d8a532",
        "dc151b2346bb8a4fdeed0c06e54c2fca21d59b5d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 15:02:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 15:02:06 2015 +0000"
      },
      "message": "Merge \"Optimizing: Determine invoke-static/-direct dispatch early.\""
    },
    {
      "commit": "36427494be5700bc8adba514b5c67dc3ac429176",
      "tree": "7b996df97c142836633bada4edc9dca91869d2f5",
      "parents": [
        "525b665cef9d85a6cfe56994561a24e10dac7f0f"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Oct 23 02:19:38 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Oct 26 16:27:13 2015 -0700"
      },
      "message": "MIPS64: Add \"Compare and Swap\" intrinsic support.\n\nAdd following functions from sun.misc.Unsafe:\n\n- boolean compareAndSwapInt(Object, long, int expected, int)\n- boolean compareAndSwapLong(Object, long, long expected, long)\n- boolean compareAndSwapObject(Object, long, Object expected, Object)\n\nChange-Id: Iea0bf486ce1fc0d77ce349dfd6c089c9835fbe92\n"
    },
    {
      "commit": "c9e94f3792443a3ebf541fa81c96dd885723c112",
      "tree": "5fa7b131a5e00b1930053230f13ae69f33fc9603",
      "parents": [
        "525b665cef9d85a6cfe56994561a24e10dac7f0f"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Oct 26 16:11:39 2015 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Oct 26 16:11:39 2015 -0700"
      },
      "message": "MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp().\n\nChange-Id: I8584c150cae27353b57f3dccc78a68d6cd6fc2c1\n"
    },
    {
      "commit": "525b665cef9d85a6cfe56994561a24e10dac7f0f",
      "tree": "36aa78dd0992046dc49b72e7fad2aff080001dfe",
      "parents": [
        "065f51919001bbad2ce8ddbc1b6273f480b3f898",
        "8128437353f34648fc11c5501800cd2ce7156dce"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 26 21:23:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 26 21:23:47 2015 +0000"
      },
      "message": "Merge \"MIPS64: Clean-up intrinsics code\""
    },
    {
      "commit": "1a87837c07a6ef075fa973acaa8d846da3448728",
      "tree": "f0408c69c0838cc4249afa7025fc451620c7a94d",
      "parents": [
        "1839d3c7557a48358dcdb78934aac8f62d0916bc"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 26 14:28:52 2015 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 26 14:28:52 2015 +0100"
      },
      "message": "MIPS32: Fix loading address in GenerateStaticOrDirectCall\n\nLoad word instead of doubleword.\n\nChange-Id: I496278c87577ee23c8dd4c4be7b64214efcdd1f6\n"
    },
    {
      "commit": "1839d3c7557a48358dcdb78934aac8f62d0916bc",
      "tree": "983e7803dbb3c3362f4bedfb81d2f3fb47744a3b",
      "parents": [
        "605f27d8719c8238679038b452b4665f47a6916a",
        "271743601650308c7ac5c7a3ec35025d8130a298"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 26 12:39:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 26 12:39:04 2015 +0000"
      },
      "message": "Merge \"Revert \"Run type propagation after inliner only when needed.\"\""
    },
    {
      "commit": "271743601650308c7ac5c7a3ec35025d8130a298",
      "tree": "cd75b95462144f35835a64e442541e778ea24fe7",
      "parents": [
        "4e5dd521063beae1706410419f19c7e224db50fe"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 26 12:38:43 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 26 12:38:43 2015 +0000"
      },
      "message": "Revert \"Run type propagation after inliner only when needed.\"\n\nThis reverts commit 4e5dd521063beae1706410419f19c7e224db50fe.\n\nChange-Id: I0de261d14dd3f71abe05f9bc71744820cf23b937\n"
    },
    {
      "commit": "605f27d8719c8238679038b452b4665f47a6916a",
      "tree": "b238228478a8546e0722c7555027c7f34f373367",
      "parents": [
        "a643cfd2b68135b9a052daa776fa00710c4c2ff4",
        "4e5dd521063beae1706410419f19c7e224db50fe"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 26 12:06:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 26 12:06:24 2015 +0000"
      },
      "message": "Merge \"Run type propagation after inliner only when needed.\""
    },
    {
      "commit": "e9d6e6083e845194548e0705fdf9e172c7a043e5",
      "tree": "53d917afc88d97a5ccae881720075aacf573e1c5",
      "parents": [
        "b5172e8e8c4a5cfff5a0bdb0a7f1810ee9c7bbd1"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Oct 23 17:08:42 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Oct 23 17:40:26 2015 -0700"
      },
      "message": "Disable store elimination on singleton object.\n\nStores into singleton objects that are finalizable need to be kept.\nDisable those store eliminations before we have the finalizable info available.\n\nChange-Id: I281e0c442588ec291b1002fdc9b59a144c15dc8e\n"
    },
    {
      "commit": "e5d80f83ae53792bc1eebd4e33e4e99f7c031b0c",
      "tree": "cc21ac068a5d02349c5b1aaa8c7f61ae777f6cea",
      "parents": [
        "a815f17cc82f4f238d8bdec1bd5b70fec720541e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 17:47:48 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 23 11:21:11 2015 -0700"
      },
      "message": "Move ArenaBitVector into the runtime\n\nMotivation is using arenas in the verifier.\n\nBug: 10921004\nChange-Id: I3c7ed369194b2309a47b12a621e897e0f2f65fcf\n"
    },
    {
      "commit": "a815f17cc82f4f238d8bdec1bd5b70fec720541e",
      "tree": "1863cd4bc431c28fe4e42b163bd067953968ae2f",
      "parents": [
        "fbcafbc81694438020bbf642400a265b60abaef9",
        "8df69d42a9e3ccd9456ff72fac8dbd1999f98755"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Oct 23 17:45:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 23 17:45:57 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"load store elimination.\"\"\""
    },
    {
      "commit": "4e5dd521063beae1706410419f19c7e224db50fe",
      "tree": "734842d330aca6b97ec2e042d54d32ac004288a3",
      "parents": [
        "9926d886573d13ab3f97befae4c526b936de8a53"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 19 16:19:23 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 23 17:18:35 2015 +0100"
      },
      "message": "Run type propagation after inliner only when needed.\n\nCurrently we run a type propagation pass unconditionally after the\ninliner. This change looks at the returned value (if any) and runs a\nminimal type propagation only if its type has changed.\n\nChange-Id: I0dd72bd481219081e8a978d2632426afc980d73a\n"
    },
    {
      "commit": "31f0e753a0a45a7085e55bfbbccc422e8989a787",
      "tree": "3e610720882ae20a5af51ee449ffb1e53d6df287",
      "parents": [
        "fe97bfeabcf99d470e7d974a68ec6b6641648396",
        "e6dbf48d7a549e58a3d798bbbdc391e4d091b432"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 23 15:00:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 23 15:00:57 2015 +0000"
      },
      "message": "Merge \"ARM64: Instruction simplification for array accesses.\""
    },
    {
      "commit": "dc151b2346bb8a4fdeed0c06e54c2fca21d59b5d",
      "tree": "391d8ccb44ff9e6fc1c8fa8975e534e20cc002ff",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 15 18:02:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 23 14:45:32 2015 +0100"
      },
      "message": "Optimizing: Determine invoke-static/-direct dispatch early.\n\nDetermine the dispatch type of invoke-static/-direct in a\nspecial pass right after the type inference. This allows the\ninliner to pass the \"needs dex cache\" check and inline more.\nIt also allows the code generator to avoid requesting a\nregister location for the ArtMethod* for kDexCachePcRelative\nand direct methods.\n\nThe supported dispatch check handles also situations that\nthe CompilerDriver currently doesn\u0027t allow. The cleanup of\nthe CompilerDriver and required changes to Quick will come\nin a separate change.\n\nChange-Id: I3f8e903a119949e95871d8ab0a995f4731a13a07\n"
    },
    {
      "commit": "985ff70d3dbd954f75749fb7109a71fa0e9d8838",
      "tree": "bc5e53618edee91ee94a53325eb594103430a18d",
      "parents": [
        "68561a1ca6adbd759af6c8171646f2db1cb1e2dc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 23 13:25:35 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 23 13:25:35 2015 +0100"
      },
      "message": "Disable the ARM \u0026 ARM64 UnsafeCASObject intrinsic with heap poisoning.\n\nThe current heap poisoning instrumentation of this intrinsic\ndoes not always work properly when heap poisoning in\nenabled, hence this quick fix to let the build \u0026 test\ninfrastructure turn green again.\n\nBug: 12687968\nChange-Id: I546a392a61e429cd13209261f806d0aed8d1cd86\n"
    },
    {
      "commit": "68561a1ca6adbd759af6c8171646f2db1cb1e2dc",
      "tree": "2d57470ab6c22cfb603ea7bf736dc0ff9ef4480c",
      "parents": [
        "b9f3e6d973ea9569fe0671380217eabe2cc96e59",
        "b488b7864b7bf9cade82d45c8bdda2372f48a10c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 23 10:09:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 23 10:09:28 2015 +0000"
      },
      "message": "Merge \"Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.\""
    },
    {
      "commit": "8df69d42a9e3ccd9456ff72fac8dbd1999f98755",
      "tree": "b2d7617d4d2e1ae80ab7024b47802dafbaee3b3a",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 22 15:40:58 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 22 16:37:46 2015 -0700"
      },
      "message": "Revert \"Revert \"load store elimination.\"\"\n\nThis reverts commit 8030c4100d2586fac39ed4007c61ee91d4ea4f25.\n\nChange-Id: I79558d85484be5f5d04e4a44bea7201fece440f0\n"
    },
    {
      "commit": "f652cecb984c104d44a0223c3c98400ef8ed8ce2",
      "tree": "ec0cc193eccdd11a79f42f957a856d2ba57699e1",
      "parents": [
        "b8b44983f861cfeeca66c624dd0f2a3fa71b4992"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Aug 25 16:11:42 2015 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Oct 22 18:51:13 2015 +0200"
      },
      "message": "MIPS: Initial version of optimizing compiler for MIPS32\n\nChange-Id: I370388e8d5de52c7001552b513877ef5833aa621\n"
    },
    {
      "commit": "b488b7864b7bf9cade82d45c8bdda2372f48a10c",
      "tree": "84b273034863075fbac2fbe0bd4d64fad95728e3",
      "parents": [
        "534a9b68ec5e8dda8f6e0a07bf0fdbaeb0cedbfe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 22 11:38:49 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 22 11:38:49 2015 +0100"
      },
      "message": "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.\n\nProperly handle the case when the same object is passed to\nsun.misc.Unsafe.compareAndSwapObject for the `obj` and\n`newValue` arguments (named `base` and `value` in the\nintrinsic implementation) and re-enable this intrinsic.\n\nAlso convert some reinterpret_casts to down_casts.\n\nBug: 12687968\nChange-Id: I82167cfa77840ae2cdb45b9f19f5f530858fe7e8\n"
    },
    {
      "commit": "8128437353f34648fc11c5501800cd2ce7156dce",
      "tree": "9d61c60808d694b823719ffc328396df5a109956",
      "parents": [
        "e033ea69bcd1f343c3cf944d78beec726faf348f"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Wed Oct 21 15:28:53 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Wed Oct 21 15:54:35 2015 -0700"
      },
      "message": "MIPS64: Clean-up intrinsics code\n\n- Wrap lines longer that 100 characters.\n- Fix return type in comments for various Long intrinsics.\n- Add Location::OutputOverlap parameter to CreateFPToFP() function;\n  wrong value was being used for floor()/ceil() intrinsics.\n\nChange-Id: I998b647e1c20521a72da89cfe2d5a4c27e3ab85c\n"
    },
    {
      "commit": "9926d886573d13ab3f97befae4c526b936de8a53",
      "tree": "cd75b95462144f35835a64e442541e778ea24fe7",
      "parents": [
        "66e33f1906be899f140d5fe2a657db4e3993106e",
        "214bbcd1d7454197427c13cc082860619357d847"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 21 10:15:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 21 10:15:20 2015 +0000"
      },
      "message": "Merge \"Inliner: make sure the returned value is in the outer graph.\""
    },
    {
      "commit": "66e33f1906be899f140d5fe2a657db4e3993106e",
      "tree": "eaef317e550fb4aa0612ba5d7a56ea42bc32f227",
      "parents": [
        "31e913fbea3d669b2067248f2163332940d8ec45",
        "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "message": "Merge \"Use DlMallocSpace for the JIT code cache.\""
    },
    {
      "commit": "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4",
      "tree": "92e8e49ed1b4d5442f20721858c476ed5769d0ea",
      "parents": [
        "7edef7441d28db1403fbc5641b56a26ecf355879"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 13:53:04 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:59:27 2015 +0100"
      },
      "message": "Use DlMallocSpace for the JIT code cache.\n\n- Also tidy up some code in the JIT compiler.\n- And mprotect code space to be writable only when allocating.\n\nChange-Id: I46ea5c029aec489f2af63452de31db3736aebc20\n"
    },
    {
      "commit": "58554b7de4b437ddef7ff550e62c8ec0b16f9264",
      "tree": "4f728d96635f4fbd1165e780e460b1d3dd95fd62",
      "parents": [
        "1d7d0ce2d6c9a7e30d311aadc7d8aa9bbd351cb8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 20 21:08:52 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 20 21:51:19 2015 -0700"
      },
      "message": "ART: Fix left-shift of negative numbers\n\nShifting negative numbers is undefined.\n\nChange-Id: I0c32a3fcf372eae74507a5f2383edbfaf5c6830c\n"
    },
    {
      "commit": "214bbcd1d7454197427c13cc082860619357d847",
      "tree": "ec08d244ae002d85b7537ca9921618be1b4a387d",
      "parents": [
        "a5903e622c0c11c1513a62e128a26d3cefd16c6f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 20 14:54:07 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 20 20:06:44 2015 +0100"
      },
      "message": "Inliner: make sure the returned value is in the outer graph.\n\nThe returned value may be a constant or a parameter value. If so, it\nwill be in the inlined entry_block and (before this CL) we would not\nupdate its block or graph. This CL fixes this and makes sure that the\nreturned value belongs to the outer graph.\n\nChange-Id: Ie296f0d5a320c33f39eb187df6d328371ccf6500\n"
    },
    {
      "commit": "cfea7d54dc8902d93c3fd535294d6c364f823887",
      "tree": "93e5a68f94305c406993adca93fdc1531c301b90",
      "parents": [
        "94e24ac0e9e2bad74e9beecbd068f2b87798b815"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 20 17:55:06 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 20 17:55:06 2015 +0100"
      },
      "message": "Disable the x86 \u0026 x86-64 UnsafeCASObject intrinsic with heap poisoning.\n\nThe current heap poisoning instrumentation of this intrinsic\ndoes not always work properly when heap poisoning in\nenabled, hence this quick fix to let the build \u0026 test\ninfrastructure turn green again.\n\nBug: 12687968\nChange-Id: I03702a057fb6f07134e926e2c1c2780f47e3a50a\n"
    },
    {
      "commit": "27cfad0d14669ea00333f74bbde9ad923fee70ff",
      "tree": "385620303715298c4f3f73d4e64ac96f6e99e59d",
      "parents": [
        "7cf979b02fa0f2546f3f1b648487ac8df359acf7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 20 11:29:36 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 20 11:32:02 2015 +0100"
      },
      "message": "Fix induction_var_range_test.\n\nChange-Id: I43101c5e35f4c516ea4ba3137631508f12703412\n"
    },
    {
      "commit": "7cf979b02fa0f2546f3f1b648487ac8df359acf7",
      "tree": "bc6ede4d4e8278e21ea451fe26af47446bdbe3f0",
      "parents": [
        "e033ea69bcd1f343c3cf944d78beec726faf348f",
        "e6e3beaf2d35d18a79f5e7b60a21e75fac9fd15d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 20 09:38:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 20 09:38:07 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"optimizing: propagate type information of arguments\"\"\""
    },
    {
      "commit": "e033ea69bcd1f343c3cf944d78beec726faf348f",
      "tree": "d470f7cd69e86a9287da947970a8f519de8ec6b9",
      "parents": [
        "25cf8c412f966563a3f1a6ab629be74faf61e915",
        "0f8f8643bc10160a9034b9e3ccfd81e9e6ed8e74"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 22:06:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 19 22:06:00 2015 +0000"
      },
      "message": "Merge \"MIPS64: Add intrinsic support for bit rotation\""
    },
    {
      "commit": "0f8f8643bc10160a9034b9e3ccfd81e9e6ed8e74",
      "tree": "dfe6bcfac59d0f44be3a2c2c6b88896e0bfd6712",
      "parents": [
        "aeae32f846a04c9472fd3bdbbee92c0e1ace9b6c"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Oct 02 17:25:58 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 15:04:59 2015 -0700"
      },
      "message": "MIPS64: Add intrinsic support for bit rotation\n\n- int java.lang.Integer.rotateLeft(int i, int distance)\n- int java.lang.Long.rotateLeft(long i, int distance)\n\nChange-Id: I048ebf310265c6b20a80108673a7931cbeee0513\n"
    },
    {
      "commit": "aec3cce52009afe436a6db0280d6d5aee9b8d4d4",
      "tree": "9fa409750d89871863b10396a2278ebd48f0b5b9",
      "parents": [
        "f69f56e7d4a1e31dfce2a77558c9b7047f82092b"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 14 17:44:55 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 19 12:44:55 2015 -0700"
      },
      "message": "Added ability to generate induction range code.\n\nRationale: used by dynamic BCE (done in another CL).\n\nChange-Id: Ia6ce75da57b5298fba74622822ae0bae69c74188\n"
    },
    {
      "commit": "f69f56e7d4a1e31dfce2a77558c9b7047f82092b",
      "tree": "30c394773a7544bf5296138f8e923b5d73dc5cb8",
      "parents": [
        "a31e53f83cf7c773bd506bb4b7d28f73e92a391a",
        "bb245d199a5240b4c520263fd2c8c10dba79eadc"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 19 18:42:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 19 18:42:59 2015 +0000"
      },
      "message": "Merge \"Generalize codegen and simplification of deopt.\""
    },
    {
      "commit": "bb245d199a5240b4c520263fd2c8c10dba79eadc",
      "tree": "e16b37485e3e0e34c24e35a71cc8e6986d1e2e70",
      "parents": [
        "d5a69fc429f57bf528aa061618d3ae94ee8deb24"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 19 11:05:03 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 19 11:12:11 2015 -0700"
      },
      "message": "Generalize codegen and simplification of deopt.\n\nRationale: the de-opt instruction is very similar to an if,\n           so the existing assumption that it always has a\n           conditional \"under the hood\" is very unsafe, since\n           optimizations may have replaced conditionals with\n           actual values; this CL generalizes handling of deopt.\n\nChange-Id: I1c6cb71fdad2af869fa4714b38417dceed676459\n"
    },
    {
      "commit": "9aebff2f19b605bff864308be51b604b7191163e",
      "tree": "78a49ebd0052617c3bd7d0bc17ec0b9d3fd206a0",
      "parents": [
        "a5903e622c0c11c1513a62e128a26d3cefd16c6f"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Sep 22 17:54:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 08:14:04 2015 -0700"
      },
      "message": "MIPS64: Add intrinsic support for bit rotation\n\n- int java.lang.Integer.rotateRight(int i, int distance)\n- int java.lang.Long.rotateRight(long i, int distance)\n\nAssembler tests for new MIPS instructions will be provided in a\nseparate patch.\n\nChange-Id: I6dd4786e2d5f674bf56ff3d5afd321bb1bef589e\n"
    },
    {
      "commit": "0646da7c04e4744c84d1b0a03df33ccae1d6d477",
      "tree": "bde7904026208c57da81a205c3cbb499cfbf82d2",
      "parents": [
        "45513eb694fe55cf02ca6e8f0884621a6c3f6268"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Sep 22 16:02:40 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 08:11:56 2015 -0700"
      },
      "message": "MIPS64: Add intrinsics support for trailing zeros\n\n- int java.lang.Integer.numberOfTrailingZeros(int i)\n- int java.lang.Long.numberOfTrailingZeros(long i)\n\nChange-Id: I0fc1c2629738de9047313b6511b490639eef68f3\n"
    },
    {
      "commit": "e6dbf48d7a549e58a3d798bbbdc391e4d091b432",
      "tree": "e9edbb884c0143a38e0b32350119999bc11b4dee",
      "parents": [
        "45513eb694fe55cf02ca6e8f0884621a6c3f6268"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Oct 19 10:10:41 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Oct 19 10:10:41 2015 +0100"
      },
      "message": "ARM64: Instruction simplification for array accesses.\n\nHArrayGet and HArraySet with variable indexes generate two\ninstructions on arm64, like\n\n    add temp, obj, #data_offset\n    ldr out, [temp, index LSL #shift_amount]\n\nWhen we have multiple accesses to the same array, the initial `add`\ninstruction is redundant.\n\nThis patch introduces the first instruction simplification in the\narm64-specific instruction simplification pass. It splits HArrayGet\nand HArraySet using the new arm64-specific IR HIntermediateAddress.\nAfter that we run GVN again to squash the multiple occurrences of\nHIntermediateAddress.\n\nChange-Id: I2e3d12fbb07fed07b2cb2f3f47f99f5a032f8312\n"
    },
    {
      "commit": "1360adac0b8f523e3de7da58f6b85f724ec6e42e",
      "tree": "aaf2b9580210df7149829d6e6f983ff3a3972740",
      "parents": [
        "c4daa0a06cf0b7c1e7b0440fb7e9a06b018b52ff"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 04 23:38:16 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 16 17:16:28 2015 -0700"
      },
      "message": "MIPS64: Implement intrinsics from sun.misc.Unsafe:\n\n- int getInt(Object, long)\n- int getIntVolatile(Object, long)\n- long getLong(Object, long)\n- long getLongVolatile(Object, long)\n- Object getObject(Object, long)\n- Object getObjectVolatile(Object, long)\n- void putInt(Object, long, int)\n- void putOrderedInt(Object, long, int)\n- void putIntVolatile(Object, long, int)\n- void putObject(Object, long, Object)\n- void putOrderedObject(Object, long, Object)\n- void putObjectVolatile(Object, long, Object)\n- void putLong(Object, long, long)\n- void putOrderedLong(Object, long, long)\n- void putLongVolatile(Object, long, long)\n\nThe compareAndSwap*() functions will be delivered in a separate patch.\n\nChange-Id: I94238254b2f9df017d58fa9a4bb38632f6479472\n"
    },
    {
      "commit": "4b0ef9c9246435da48203e9f273717d81a1ffe2a",
      "tree": "a382ae74334580159e7ec9f5ccdd7a2431f6f887",
      "parents": [
        "7cabeca7b86b1d5b6c1cafb6d4bfbb877ddd26b2",
        "9701c2ee2dde033e2269dcfc592a09f21151e97e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 16 21:42:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 21:42:10 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement intrinsics from java.lang.String:\""
    },
    {
      "commit": "12617599757b625bd59e6c62e022c30735073622",
      "tree": "6fe164e1b7c1907e06c400013f71e6c121b0660c",
      "parents": [
        "e8939d20602ec88c314d50e201215a264666828a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 16 16:28:46 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 16 17:28:16 2015 +0100"
      },
      "message": "Fix in reference type propagation\n\nWe miss updating the type of objects if their nullability gets updated\nfirst.\n\nBug: 25008765\nChange-Id: Id1a753d7d5b7b0d5ed708c325bd00a36240925fb\n"
    },
    {
      "commit": "b69fbfb5e43e404270e63b7a35dc5645b29b759c",
      "tree": "b41c69a226238e75bbb497930f86d5463dda31a5",
      "parents": [
        "28c34f886521f422424768fe245b98b7b83c6bd7"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Oct 16 09:08:46 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Oct 16 09:08:46 2015 +0100"
      },
      "message": "ARM64: Better recognition of constants encodable as immediates.\n\nWhen the right-hand side input is a constant, VIXL will automatically\nswitch between add and sub (or between similar pairs of instructions).\n\nChange-Id: Icf05237b8653c409618f44e45049df87baf0f4c6\n"
    },
    {
      "commit": "4b8f1ecd3aa5a29ec1463ff88fee9db365f257dc",
      "tree": "d113f8a5c6b61c078256cf15c7cbb9f7c8de0390",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 26 18:34:03 2015 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 15 12:22:39 2015 -0700"
      },
      "message": "Use ATTRIBUTE_UNUSED more.\n\nUse it in lieu of UNUSED(), which had some incorrect uses.\n\nChange-Id: If247dce58b72056f6eea84968e7196f0b5bef4da\n"
    },
    {
      "commit": "d5a69fc429f57bf528aa061618d3ae94ee8deb24",
      "tree": "1a00f22b320afe53c7c02320e78f1a0e538ee5d0",
      "parents": [
        "bdbce4e321b16a14425659fabaa5648f52853d51",
        "e9f37600e98ba21308ad4f70d9d68cf6c057bdbe"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 15 16:18:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 16:18:05 2015 +0000"
      },
      "message": "Merge \"Added support for unsigned comparisons\""
    },
    {
      "commit": "e9f37600e98ba21308ad4f70d9d68cf6c057bdbe",
      "tree": "ad7953f41a35eeee68a31b4b567a08c650647bba",
      "parents": [
        "793e6fbdefb092d1dab50bca5618aed110c7e037"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 09 11:15:55 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 14 13:38:22 2015 -0700"
      },
      "message": "Added support for unsigned comparisons\n\nRationale: even though not directly supported in input graph,\n           having the ability to express unsigned comparisons\n           in HIR is useful for all sorts of optimizations.\n\nChange-Id: I4543c96a8c1895c3d33aaf85685afbf80fe27d72\n"
    },
    {
      "commit": "94991077ed66e3c329e8bf6f594ad6d30992b092",
      "tree": "119ed0e9109cbcb39140b3949ffc3192b1a98a0d",
      "parents": [
        "943e89e4000189473d1e82e1e395875ea9452431"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Oct 06 14:58:32 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Oct 14 13:55:16 2015 -0400"
      },
      "message": "Move x86 constant area code to its own file\n\nMove the logic to constant_area_fixups_x86.cc to keep the graph\nmodifications out of the code generation file.\n\nChange-Id: I476f1fce80cb4ad38ae872b620ae58f6e52fe664\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "943e89e4000189473d1e82e1e395875ea9452431",
      "tree": "57c352acb5cb11b056e301e5615f59c56802c870",
      "parents": [
        "392835deba1c62fd8858333db55ea2b5e6f53ceb",
        "805b3b56c6eb542298db33e0181f135dc9fed3d9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 14 17:21:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 14 17:21:56 2015 +0000"
      },
      "message": "Merge \"X86 jump tables for PackedSwitch\""
    },
    {
      "commit": "392835deba1c62fd8858333db55ea2b5e6f53ceb",
      "tree": "b58656f612addadebd4ae1294e9281073e423247",
      "parents": [
        "644044333f5f6d7ba7e327619ac0d0ce4e2609d3",
        "9c86b485bc6169eadf846dd5f7cdf0958fe1eb23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 14 17:19:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 14 17:19:09 2015 +0000"
      },
      "message": "Merge \"X86_64 jump tables for PackedSwitch\""
    }
  ],
  "next": "805b3b56c6eb542298db33e0181f135dc9fed3d9"
}
