)]}'
{
  "log": [
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\n"
    },
    {
      "commit": "a29d93b380c9aeb8270e281aefbdd0c77a430d43",
      "tree": "22fb9344bd5495cf6a093913e9cf71967b42ab4f",
      "parents": [
        "1e7e85a40744ddd0c36b206d0960fc3cf24a7e62",
        "c2bcafe225d672611284ef247b777b9b19817c7d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 19:14:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 19:14:25 2015 +0000"
      },
      "message": "Merge \"ART: Refactor CompileOptimized\""
    },
    {
      "commit": "c2bcafe225d672611284ef247b777b9b19817c7d",
      "tree": "c9414f0b526523df2e380bff2165e7f0cc1009ed",
      "parents": [
        "6d80318c382a3490ab605b46fa7cb22c5e823fec"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 10:49:32 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 11:06:16 2015 -0700"
      },
      "message": "ART: Refactor CompileOptimized\n\nFactor out register allocation. Both Clang and GCC inline the\nfunction, but it changes how Clang stack-allocates enough so\nthat the resulting frame size is below our limit.\n\nBug: 20139216\nChange-Id: I2cf393aed70f2ce0556252b61ae639aacab6f3a7\n"
    },
    {
      "commit": "6977899440206c7b0a9a3e38650338fd052666f9",
      "tree": "f8275a45d82630449b0c9450853efe21d2026075",
      "parents": [
        "8e5fc53bd2f9ab5a46547959a176eba176ee115f",
        "3773cd046b1c34569f4711666788bf8a389c7857"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 16:47:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 16:47:49 2015 +0000"
      },
      "message": "Merge \"ART: Remove WriteElf from Compiler\""
    },
    {
      "commit": "3773cd046b1c34569f4711666788bf8a389c7857",
      "tree": "4fda463949679cfe434e0d5559919a5f01b4d1ac",
      "parents": [
        "6d80318c382a3490ab605b46fa7cb22c5e823fec"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 09:28:22 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 09:28:22 2015 -0700"
      },
      "message": "ART: Remove WriteElf from Compiler\n\nAs Portable is gone, we only have one elf_writer left. It also\nallows to put the decision for 32b vs 64b ELF into a central\npoint.\n\nChange-Id: Iae67d06df85268b3f0ee5725abc65edd23eb2499\n"
    },
    {
      "commit": "188d4316a880ae24aed315aa52dc503c4fcb1ec7",
      "tree": "a480bdc4a80f63d46abcde2ef7a36e1ad072d624",
      "parents": [
        "27ef3177fb164b5e1a3b8a6fd43d25f3074e586d"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Apr 09 18:30:21 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 10 16:19:55 2015 +0000"
      },
      "message": "Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub.\n\nUnder assumptions for the \u0027cost\u0027 of each IR (eg. neither HAdd nor HSub\nare faster than the other), transformations are only applied if they\n(locally) cannot degrade the quality of the graph. The code could be\nextended to look at uses of the IRs and detect more opportunities for\noptimisations.  The optimisations in this patch do not look at other\nuses for their inputs.\n\nChange-Id: Ib60dab007af30f43421ef5bb55db2ec32fb8fc0c\n"
    },
    {
      "commit": "27ef3177fb164b5e1a3b8a6fd43d25f3074e586d",
      "tree": "3717202ea300f60f6df3aa29922b98579b7958d5",
      "parents": [
        "47317b430ee4f0094e58df45b557fe754b29b63b",
        "b19930c5cba3cf662dce5ee057fcc9829b4cbb9c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 10 16:15:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 16:15:07 2015 +0000"
      },
      "message": "Merge \"Follow up of \"div/rem on x86 and x86_64\", to tidy up the code a little.\""
    },
    {
      "commit": "a5c19ce8d200d68a528f2ce0ebff989106c4a933",
      "tree": "4638a8d8e5b1562ec5ed05967490fec1ef7f0d17",
      "parents": [
        "6d80318c382a3490ab605b46fa7cb22c5e823fec"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 01 12:51:05 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 10 12:08:31 2015 -0400"
      },
      "message": "[optimizing] Improve x86 parallel moves/swaps\n\nAdd a new constructor to ScratchRegisterScope that will supply a\nregister if there is a free one, but not spill to force one.  Use this\nto generated alternate code that doesn\u0027t use a temporary, as the\nspill/restore of a register generates extra instructions that aren\u0027t\nnecessary on x86.\n\nHere is the benefit for a 32 bit memory-to-memory exchange with no\nfree registers:\n\u003c        50    \t       push eax\n\u003c        53    \t       push ebx\n\u003c  8B44244C    \t       mov eax, [esp + 76]\n\u003c  8B5C246C    \t       mov ebx, [esp + 108]\n\u003c  8944246C    \t       mov [esp + 108], eax\n\u003c  895C244C    \t       mov [esp + 76], ebx\n\u003c        5B    \t       pop ebx\n\u003c        58    \t       pop eax\n---\n\u003e  FF742444    \t       push [esp + 68]\n\u003e  FF742468    \t       push [esp + 104]\n\u003e  8F44244C    \t       pop [esp + 72]\n\u003e  8F442468    \t       pop [esp + 100]\n\nAvoid using xchg instruction, as it is slow on smaller processors.\n\nChange-Id: Id29ee3abd998577baaee552d55d23e60ae0c7871\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "6d80318c382a3490ab605b46fa7cb22c5e823fec",
      "tree": "1fe89a424c91dae7adc07ebd620dce8297a0854e",
      "parents": [
        "07d1f0d6c15f78e107c7b77e993b4d4d08ae1ad8",
        "222fcf96c9b73bbb739012575e7e413caf9348ec"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 10 15:39:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 15:39:16 2015 +0000"
      },
      "message": "Merge \"[optimizing] Improve x86 shifts\""
    },
    {
      "commit": "07d1f0d6c15f78e107c7b77e993b4d4d08ae1ad8",
      "tree": "34a48e22719bec06356788bd904b425dbe84284e",
      "parents": [
        "4df30d988105f988dbcdb4f28263654e9ce20687",
        "55501ce0db57bccfa23b0226faffc964203701f9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 10 14:15:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 14:15:38 2015 +0000"
      },
      "message": "Merge \"Optimizing x86: Fix VisitArraySet for FP value\""
    },
    {
      "commit": "222fcf96c9b73bbb739012575e7e413caf9348ec",
      "tree": "e0441bc484cc8f441685de49c931a030730a3701",
      "parents": [
        "fcfea6324b2913621d5cb642d4315f22c4901368"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Mar 30 14:13:30 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 10 09:33:52 2015 -0400"
      },
      "message": "[optimizing] Improve x86 shifts\n\nSupport memory operands for integer shifts.  Generate better code for\nlong shifts by constants.\n\nChange-Id: Icc92fa1b59cc280d4894af6f054e19b01977d5ce\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "39dcf55a56da746e04f477f89e7b00ba1de03880",
      "tree": "97bbd68fa538cf76ac26cfeb7a101b5ceb330028",
      "parents": [
        "fcfea6324b2913621d5cb642d4315f22c4901368"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Apr 09 20:42:42 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 10 08:50:40 2015 -0400"
      },
      "message": "[optimizing] Address x86_64 RIP patch comments\n\nNicolas had some comments after the patch\nhttps://android-review.googlesource.com/#/c/144100 had merged.  Fix the\nproblems that he found.\n\nChange-Id: I40e8a4273997860db7511dc8f1986281b72bead2\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b19930c5cba3cf662dce5ee057fcc9829b4cbb9c",
      "tree": "c226f8fffc4522b273072c516507083e2a77c505",
      "parents": [
        "0f88e87085b7cf6544dadff3f555773966a6853e"
      ],
      "author": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Thu Apr 09 21:12:15 2015 +0100"
      },
      "committer": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Fri Apr 10 10:28:02 2015 +0100"
      },
      "message": "Follow up of \"div/rem on x86 and x86_64\", to tidy up the code a little.\n\nChange-Id: Ibf39cbc8ac1d773599d70be2cb1e941674b60f1d\n"
    },
    {
      "commit": "55501ce0db57bccfa23b0226faffc964203701f9",
      "tree": "b9abd5dcbfd1ec5aff448e4a5d0ce051b27f0466",
      "parents": [
        "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Wed Apr 08 13:26:09 2015 +0600"
      },
      "committer": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Fri Apr 10 14:50:43 2015 +0600"
      },
      "message": "Optimizing x86: Fix VisitArraySet for FP value\n\nInstruction generator expects to see FP value in XMM register,\nso update location builder to follow this.\n\nChange-Id: Idca4bb5cdb59249c77fcc6f76cdfcaba47222b3d\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "e8888c83786d1f2bddbffd1dd6f37b95b7d2425d",
      "tree": "53f628e428f544b2cc391f2cfdff10c053268d3e",
      "parents": [
        "7b4d93ec90c80457121f0c8e56f0e82ae60923f3",
        "97e2f26524f4d08796a0a224b17e082734cceb5f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 10 08:46:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 08:46:20 2015 +0000"
      },
      "message": "Merge \"Refine erratum 843419 check for linker workaround.\""
    },
    {
      "commit": "3b9d57ab580a0593635a7dbe3dd2e2c76274f9fa",
      "tree": "bd33d5cbdebab7b8a55f782a06d09de48d407542",
      "parents": [
        "b536247b1ce5de640eec81dddac47802cd074363"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 10 00:22:14 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 10 04:44:05 2015 +0100"
      },
      "message": "Move DWARF related code in ElfWriter to its own file.\n\nThis is purely for organisation.  The DWARF related code\nis becoming more complex and I do not want to keep mixing\nit with the ElfWriter.  The ElfWriter probably should not\nbe dealing with the fine details of DWARF generation.\n\nI intend to do much more work on DWARF in the future so\nthis situatuion would only get worse as the code grows.\n\nThe code could also use some refactoring and splitting.\nHowever, I have mostly just moved it in this CL.\n\nChange-Id: I6e3401a2b745ddf991b440ad7899ad7d4b921be6\n"
    },
    {
      "commit": "b536247b1ce5de640eec81dddac47802cd074363",
      "tree": "22568fd953bfc92deb3378c3d5b31fb04b9948cc",
      "parents": [
        "8b3c1b6526ff6b44dd724826b8e9e6d0a2067f6e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 08 19:37:39 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 23:55:05 2015 +0100"
      },
      "message": "Extend the DWARF library to support .debug_info section.\n\nChange-Id: I9916abd8db227e7a73a3311294e675be5222a709\n"
    },
    {
      "commit": "8b3c1b6526ff6b44dd724826b8e9e6d0a2067f6e",
      "tree": "b208a62aa1977460ce397548b75f80076f24e3ad",
      "parents": [
        "5c9bb1fb851145c124d2bedc82c7effb586ab506",
        "0df9e1faed9b095b084c4eca6ee59d24fba21c9f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 22:39:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 22:39:33 2015 +0000"
      },
      "message": "Merge \"Remove duplicate of DexFile::DecodeDebugInfo.\""
    },
    {
      "commit": "5c9bb1fb851145c124d2bedc82c7effb586ab506",
      "tree": "72d9d20adc54405fc3f312eaf7e8bd2108a48e53",
      "parents": [
        "2f35609f41916e5b814b25d93594e674ceb55ebe",
        "46325a0fae06ccbf5e0d7a7dd34d6cfe49226a40"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 22:39:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 22:39:21 2015 +0000"
      },
      "message": "Merge \"Fix memory leaks in the CFI tests.\""
    },
    {
      "commit": "46325a0fae06ccbf5e0d7a7dd34d6cfe49226a40",
      "tree": "a2d440d13bc317fc104bbf9b6634d8fc6886fad4",
      "parents": [
        "66bae2f3039061775c9d39bae95287078423cf20"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 22:51:56 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 23:33:28 2015 +0100"
      },
      "message": "Fix memory leaks in the CFI tests.\n\nChange-Id: Icb98e4995731c7ac5f99d1be20b447161ea4c4bd\n"
    },
    {
      "commit": "8f486f3d3f0215a468323f68d1ae30bc283e9bf6",
      "tree": "0f5ea7b11910fc1f7ecd315e31e67f0f31359fde",
      "parents": [
        "1751f38a8fca421b0d527dbaea3559b940451218"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 15:30:51 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 15:30:51 2015 -0700"
      },
      "message": "ART: Fix indent in Mips backend\n\nChange-Id: Ib8bc6f6bf36079e0b6e4b65ceab8af7dedc60efc\n"
    },
    {
      "commit": "0df9e1faed9b095b084c4eca6ee59d24fba21c9f",
      "tree": "6fe7c439881a9e549b8fa85023071e8f0fadee93",
      "parents": [
        "1751f38a8fca421b0d527dbaea3559b940451218"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 19:02:58 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 23:30:43 2015 +0100"
      },
      "message": "Remove duplicate of DexFile::DecodeDebugInfo.\n\nCall DexFile::DecodeDebugInfo instead of having a local copy.\n\nChange-Id: I4f94fd56a81fea1a2d10d5a26b9650d6d7ff9448\n"
    },
    {
      "commit": "1751f38a8fca421b0d527dbaea3559b940451218",
      "tree": "360ba19654ecd5158925dfe5f54328b82eb47891",
      "parents": [
        "66bae2f3039061775c9d39bae95287078423cf20",
        "7fa6e279dfda5b2f21e4c234f562a49a5fe5d218"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 22:09:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 22:09:29 2015 +0000"
      },
      "message": "Merge \"Fix GenDivRemLit() for Mips.\""
    },
    {
      "commit": "66bae2f3039061775c9d39bae95287078423cf20",
      "tree": "e2d97e02b408ec1d7a9f3037f797ba2040fed49d",
      "parents": [
        "9f28d79082c85ea91ce96af97fa3206f1c0d97f7",
        "691184dd9667b2dbb49b36b6d71053161983ecd0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 20:13:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 20:13:23 2015 +0000"
      },
      "message": "Merge \"Fix build - the stack frame is too large.\""
    },
    {
      "commit": "691184dd9667b2dbb49b36b6d71053161983ecd0",
      "tree": "5a93a9b39753ad94a7b339e698340cc1de9dd760",
      "parents": [
        "b952ac3874ec19e6d4278795e86aa0e2161857c5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 21:00:58 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 21:00:58 2015 +0100"
      },
      "message": "Fix build - the stack frame is too large.\n\nChange-Id: Icabad2e3ccbaa4783df6c18c60a206357398edc5\n"
    },
    {
      "commit": "9f28d79082c85ea91ce96af97fa3206f1c0d97f7",
      "tree": "450c2f7d055c9239d048f042f065c97a42a8439c",
      "parents": [
        "3b7b6cc6f26f1fffbad47a7279525198f4e22652",
        "b952ac3874ec19e6d4278795e86aa0e2161857c5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 19:00:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 19:00:45 2015 +0000"
      },
      "message": "Merge \"Fix Mac compile error in debug_frame_writer.h\""
    },
    {
      "commit": "97e2f26524f4d08796a0a224b17e082734cceb5f",
      "tree": "b5f43aa34b3b419c0197f04ebe7f80ded592faa8",
      "parents": [
        "a528e850b0444419e709e4151c992efafcf512fe"
      ],
      "author": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Thu Apr 02 15:49:06 2015 +0100"
      },
      "committer": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Thu Apr 09 19:51:08 2015 +0100"
      },
      "message": "Refine erratum 843419 check for linker workaround.\n\nThe check is extended to avoid patching sequences where the adrp\nis followed by a load which can easily be proved to be aligned.\n\nChange-Id: Ia5741e3d73bc143c29bf0e301f767012d7598171\n"
    },
    {
      "commit": "3b7b6cc6f26f1fffbad47a7279525198f4e22652",
      "tree": "810a65e131f5772d4dd17ef4a1fa89d3104cc910",
      "parents": [
        "917f0866f66d3465fa41ddcf9ab09eba2fa78dd3",
        "1961b609bfefaedb71cee3651c4f931cc3e7393d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 09 18:40:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 18:40:38 2015 +0000"
      },
      "message": "Merge \"Quick: PC-relative loads from dex cache arrays on x86.\""
    },
    {
      "commit": "b952ac3874ec19e6d4278795e86aa0e2161857c5",
      "tree": "df7e0796c9028e5a23ba04abb09f0efd35249818",
      "parents": [
        "917f0866f66d3465fa41ddcf9ab09eba2fa78dd3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 19:39:53 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 19:39:53 2015 +0100"
      },
      "message": "Fix Mac compile error in debug_frame_writer.h\n\nChange-Id: I1c5723348011570425cbe5cc1627cd9872020beb\n"
    },
    {
      "commit": "917f0866f66d3465fa41ddcf9ab09eba2fa78dd3",
      "tree": "08bc03c6ac1a3d06672edaf4b74ce89db4c28da5",
      "parents": [
        "467e33616472fe92051c75b65327aad87a639f3f",
        "c6b4dd8980350aaf250f0185f73e9c42ec17cd57"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 17:27:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 17:27:31 2015 +0000"
      },
      "message": "Merge \"Implement CFI for Optimizing.\""
    },
    {
      "commit": "467e33616472fe92051c75b65327aad87a639f3f",
      "tree": "0dbd7a486916b929592cc8f5b3b696fe8aafedcf",
      "parents": [
        "4ab74e8b26b8f860f6c39f04ed0a5830bf9823d4",
        "f55c3e0825cdfc4c5a27730031177d1a0198ec5a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 09 17:25:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 17:25:03 2015 +0000"
      },
      "message": "Merge \"[optimizing] Add RIP support for x86_64\""
    },
    {
      "commit": "b33b6502523d67180ce7e8044714d1e85dcabfa9",
      "tree": "b8196576d7be1bb82efa72aec71e1b5fc2cdb38f",
      "parents": [
        "c2981e84b1a0292cc910a22a8b11f52226987d2a",
        "dd97393aca1a3ff2abec4dc4f78d7724300971bc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 16:47:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 16:47:16 2015 +0000"
      },
      "message": "Merge \"Implement CFI for JNI.\""
    },
    {
      "commit": "c2981e84b1a0292cc910a22a8b11f52226987d2a",
      "tree": "25d33842eb0ff378c9537d318abf10f5976ecd95",
      "parents": [
        "03fe9c80f514de61d52b65f6972d66b464a3d2fd",
        "d23840d3ed900c6072d71e6599b3568b68de6b7c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 16:41:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 16:41:55 2015 +0000"
      },
      "message": "Merge \"x86_64: Fix the rex prefix for movzxb, movsxb, movb\""
    },
    {
      "commit": "ba9715a8657e5a0b6cd201b2aa003685cacbb896",
      "tree": "cda005d489efe39261eb4e2f8f724af06f6c040b",
      "parents": [
        "a528e850b0444419e709e4151c992efafcf512fe",
        "1109fb3cacc8bb667979780c2b4b12ce5bb64549"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 15:52:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 15:52:21 2015 +0000"
      },
      "message": "Merge \"Implement CFI for Quick.\""
    },
    {
      "commit": "c6b4dd8980350aaf250f0185f73e9c42ec17cd57",
      "tree": "ef8d73e37abc04aecb430072a8bc463c73398fee",
      "parents": [
        "dd97393aca1a3ff2abec4dc4f78d7724300971bc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 20:32:43 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 16:47:50 2015 +0100"
      },
      "message": "Implement CFI for Optimizing.\n\nCFI is necessary for stack unwinding in gdb, lldb, and libunwind.\n\nChange-Id: I1a3480e3a4a99f48bf7e6e63c4e83a80cfee40a2\n"
    },
    {
      "commit": "f55c3e0825cdfc4c5a27730031177d1a0198ec5a",
      "tree": "500a596838d0ec2bfb3f84ea3c4d87b35d5ca22f",
      "parents": [
        "96159860fc6c4bf68a51a8a57941971f122685d6"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Mar 26 21:07:46 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Apr 09 10:47:11 2015 -0400"
      },
      "message": "[optimizing] Add RIP support for x86_64\n\nSupport a constant area addressed using RIP on x86_64. Use it for FP\noperations to avoid loading constants into a CPU register and moving\nto a XMM register.\n\nChange-Id: I58421759ef2a8475538876c20e696ec787015a72\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "96159860fc6c4bf68a51a8a57941971f122685d6",
      "tree": "ef2465ab2d84b9076ab57ad239333910f68abd2b",
      "parents": [
        "0c51da5db821493bcef4617ccab04ea367ecc444",
        "0f88e87085b7cf6544dadff3f555773966a6853e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 09 12:46:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 12:46:59 2015 +0000"
      },
      "message": "Merge \"Speedup div/rem by constants on x86 and x86_64\""
    },
    {
      "commit": "0f88e87085b7cf6544dadff3f555773966a6853e",
      "tree": "ea0ae17c712b995e258f1f749a1b8cd98b1fa34b",
      "parents": [
        "c4bd0e6a7f4839ea99222f06979cc2369cb9bf10"
      ],
      "author": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Mon Mar 30 17:55:45 2015 +0100"
      },
      "committer": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Thu Apr 09 12:24:10 2015 +0100"
      },
      "message": "Speedup div/rem by constants on x86 and x86_64\n\nThis is done using the algorithms in Hacker\u0027s Delight chapter 10.\n\nChange-Id: I7bacefe10067569769ed31a1f7834f796fb41119\n"
    },
    {
      "commit": "0c51da5db821493bcef4617ccab04ea367ecc444",
      "tree": "7e2503ee243a18531c44d62431feb47466a3277d",
      "parents": [
        "10042c1b378392572539aaa6818cf00800df79fe",
        "4388dcc30e2a8aa6897a57c44e6865960712a007"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 09 11:14:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 11:14:46 2015 +0000"
      },
      "message": "Merge \"Opt compiler: ARM64: Use TBZ and TBNZ in VisitIf.\""
    },
    {
      "commit": "10042c1b378392572539aaa6818cf00800df79fe",
      "tree": "452d86cc51f134791df45d734b672b9e953229e9",
      "parents": [
        "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a",
        "4af147eb3296a26eea566f53a7f687194638d46b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 09 10:59:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 10:59:37 2015 +0000"
      },
      "message": "Merge \"Exercise art::arm::Thumb2Assembler::StoreToOffset for word pairs.\""
    },
    {
      "commit": "1961b609bfefaedb71cee3651c4f931cc3e7393d",
      "tree": "16e98169664ea3cca7f317c1cece67d440dacb6f",
      "parents": [
        "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 08 20:51:48 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 09 10:10:39 2015 +0100"
      },
      "message": "Quick: PC-relative loads from dex cache arrays on x86.\n\nRewrite all PC-relative addressing on x86 and implement\nPC-relative loads from dex cache arrays. Don\u0027t adjust the\nbase to point to the start of the method, let it point to\nthe anchor, i.e. the target of the \"call +0\" insn.\n\nChange-Id: Ic22544a8bc0c5e49eb00a75154dc8f3ead816989\n"
    },
    {
      "commit": "d23840d3ed900c6072d71e6599b3568b68de6b7c",
      "tree": "c21634a4f0150913ab7b18017a1848ad7ca0224c",
      "parents": [
        "fa09d442dc74ade81806fce5f1c256f4ddc13004"
      ],
      "author": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Tue Apr 07 16:03:04 2015 -0700"
      },
      "committer": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Wed Apr 08 18:10:26 2015 -0700"
      },
      "message": "x86_64: Fix the rex prefix for movzxb, movsxb, movb\n\nThis patch sets the rex prefix for the source byte register of\nmovzxb, movsxb, and movb that has the destination memory operand,\nwhen the register is SPL, BPL, SIL, DIL.\n\nThis patch adds tests for movzxb and movsxb via Repeatrb(),\nand adds the tertiary and quaternary register views for word and\nbyte registers on x86_64.\nTODO: Support tests with memory operands.\n\nChange-Id: I0c5c727f3dd4a75af039b87f7e57d0741e689038\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a",
      "tree": "e350441be38017d6e7555d9e13ca8b975d61451d",
      "parents": [
        "a2d40be3e64b339c6c39d59655507c597251e506",
        "87b7c52ac660119b8dea46967974b76c86d0750b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 08 17:08:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 17:08:05 2015 +0000"
      },
      "message": "Merge \"Quick: Clean up temp use counting.\""
    },
    {
      "commit": "9d0ab6f0a2f08c3fa9a59e0b8742cf366d7d0feb",
      "tree": "5b05ed14a1aa514a1887dd4268f61209087716e1",
      "parents": [
        "cde8e5da3e774a2494b051043130c0495eca09ef",
        "58d25fd052e999a24734b0cf856a1563e3d1b2d0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 08 16:07:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 16:07:41 2015 +0000"
      },
      "message": "Merge \"[optimizing] Implement more x86/x86_64 intrinsics\""
    },
    {
      "commit": "dd97393aca1a3ff2abec4dc4f78d7724300971bc",
      "tree": "eed7360a80b7543ec7962b47feb7df0d1a8d438e",
      "parents": [
        "1109fb3cacc8bb667979780c2b4b12ce5bb64549"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 20:29:48 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 08 16:36:27 2015 +0100"
      },
      "message": "Implement CFI for JNI.\n\nCFI is necessary for stack unwinding in gdb, lldb, and libunwind.\n\nChange-Id: I37eb7973f99a6975034cf0e699e138c3a9aba10f\n"
    },
    {
      "commit": "87b7c52ac660119b8dea46967974b76c86d0750b",
      "tree": "9f80325934dd7568b8288224a155284fea97bd9a",
      "parents": [
        "8635e1886f3624154c076cf40cbf182c74e2e0e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 08 10:01:01 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 08 16:36:19 2015 +0100"
      },
      "message": "Quick: Clean up temp use counting.\n\nFor the boot image on arm64 and x86-64 we\u0027re using true\nPC-relative addressing, so pc_rel_temp_ is nullptr and\nCanUsePcRelDexCacheArrayLoad() returns true, but we\u0027re not\nactually using the ArtMethod* so fix the AnalyzeMIR() to\ntake it into account.\n\nAlso don\u0027t count intrinsic invokes towards ArtMethod* uses.\nTo avoid repeated method inliner inquiries about whether a\nmethod is intrinsic or special (requiring lock acquisition),\ncache that information in MirMethodLoweringInfo. As part of\nthat cleanup, take quickened invokes into account for\nsuspend check elimination.\n\nChange-Id: I5b4ec124221c0db1314c8e72675976c110ebe7ca\n"
    },
    {
      "commit": "1109fb3cacc8bb667979780c2b4b12ce5bb64549",
      "tree": "00b38dbb7d7cf173bb376ed0b87d015dc09a6559",
      "parents": [
        "cde8e5da3e774a2494b051043130c0495eca09ef"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 20:21:06 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 08 15:08:07 2015 +0100"
      },
      "message": "Implement CFI for Quick.\n\nCFI is necessary for stack unwinding in gdb, lldb, and libunwind.\n\nChange-Id: Ic3b84c9dc91c4bae80e27cda02190f3274e95ae8\n"
    },
    {
      "commit": "cde8e5da3e774a2494b051043130c0495eca09ef",
      "tree": "634d8ae50583df30fd743ee1e1e6c97591e95484",
      "parents": [
        "8635e1886f3624154c076cf40cbf182c74e2e0e3",
        "8c57831b2b07185ee1986b9af68a351e1ca584c3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 08 12:30:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 12:30:19 2015 +0000"
      },
      "message": "Merge \"Remove the old CFI infrastructure.\""
    },
    {
      "commit": "4388dcc30e2a8aa6897a57c44e6865960712a007",
      "tree": "defbd28425cb5fabfc15fcc365181cd216f6f132",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Tue Feb 03 10:28:33 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Wed Apr 08 10:39:16 2015 +0100"
      },
      "message": "Opt compiler: ARM64: Use TBZ and TBNZ in VisitIf.\n\nTBZ and TBNZ have a short range. Now that VIXL supports\nveneers, we can use them safely without the danger of\nrunning out of range.\n\nChange-Id: Iaf77a441ccf86282c1793a2213a69a2091ca829a\n"
    },
    {
      "commit": "8635e1886f3624154c076cf40cbf182c74e2e0e3",
      "tree": "dcc267e8e27839b91a668ed39530fb5fa743356d",
      "parents": [
        "605e014b3512cdd7c766660f88b30d458693bcce",
        "c5a5ac641eb4b32fa6737c390813ce78c66a12d3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 08 08:50:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 08:50:49 2015 +0000"
      },
      "message": "Merge \"Exercise art::arm::Thumb2Assembler::StoreToOffset for words.\""
    },
    {
      "commit": "c7399c82c27f85a2df2653e1eb8c0b60f2cfd934",
      "tree": "77c7df80503c8737931102a94350c1bb7d2d0a9e",
      "parents": [
        "40f65560b5ecd79aeaadc16b03834d11aea1e0a5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 19:58:03 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 19:58:03 2015 -0700"
      },
      "message": "ART: Remove LLVM cruft\n\nChange-Id: I133ebed6101bf12a0642ed71e13f332c0c4f14e7\n"
    },
    {
      "commit": "7fa6e279dfda5b2f21e4c234f562a49a5fe5d218",
      "tree": "99adc4db98960c636d9f8fe2fa7afb16c4caeaa6",
      "parents": [
        "d2b9c0ca73a01cc31482a54cbcae1b3ac85379b8"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Apr 07 13:25:56 2015 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Tue Apr 07 18:32:05 2015 -0700"
      },
      "message": "Fix GenDivRemLit() for Mips.\n\nThis bug was reported by Ingenic where the result is incorrect if\nwe divide a number by an unsigned 16-bit constant with its\nMSB bit (bit 15) set.\n\nChange-Id: I53d2599918cc47b1a9809160310716dca67ef243\n"
    },
    {
      "commit": "40f65560b5ecd79aeaadc16b03834d11aea1e0a5",
      "tree": "b93fb2f045a4f47f8b6e3c8541a07781dcce2c77",
      "parents": [
        "d2b9c0ca73a01cc31482a54cbcae1b3ac85379b8",
        "3c54b0023fca579aae006dfa607fb14de5846c42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 08 00:37:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 00:37:25 2015 +0000"
      },
      "message": "Merge \"ART: Fix 64-bit ELF file support\""
    },
    {
      "commit": "3c54b0023fca579aae006dfa607fb14de5846c42",
      "tree": "7b996231875fdfd54855a9aa86fe2494cdee1ec5",
      "parents": [
        "425ee0e1103b52bb72132df64f503725d1a15300"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:09:30 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:43:08 2015 -0700"
      },
      "message": "ART: Fix 64-bit ELF file support\n\nThe API wasn\u0027t cross-compile-safe, 32-bit patchoat would fail for\nnegative delta applied to a 64-bit ELF file.\n\nAdd 64-bit ELF file output to the compilers, behind a flag, currently\noff by default (preserving current behavior).\n\nBug: 20095017\nChange-Id: I2cde7b4c7cc83413c76692d7b745868d644a604c\n"
    },
    {
      "commit": "d2b9c0ca73a01cc31482a54cbcae1b3ac85379b8",
      "tree": "13b54fcbae30821f34497319a7a5b789e5ca3b31",
      "parents": [
        "44b03484c4012bcb9b8cc14cbff33381b67b7355",
        "cc23481b66fd1f2b459d82da4852073e32f033aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:34:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 19:34:41 2015 +0000"
      },
      "message": "Merge \"Promote pointer to dex cache arrays on arm.\""
    },
    {
      "commit": "44b03484c4012bcb9b8cc14cbff33381b67b7355",
      "tree": "9cee58c7a9faea98ed3122c01411c22c6c5bf707",
      "parents": [
        "a9a5cc8080f4ec101e61d7c0e934c6856d3ff7d2",
        "e5c76c515a481074aaa6b869aa16490a47ba98bc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:34:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 19:34:01 2015 +0000"
      },
      "message": "Merge \"PC-relative loads from dex cache arrays for arm.\""
    },
    {
      "commit": "8c57831b2b07185ee1986b9af68a351e1ca584c3",
      "tree": "862c57e602dff367ca141d3a86235b48bf47bf17",
      "parents": [
        "caff30245889729f102af87e79705893401251ef"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 19:46:22 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 20:07:58 2015 +0100"
      },
      "message": "Remove the old CFI infrastructure.\n\nChange-Id: I12a17a8a1c39ffccaa499c328ebac36e4d74dc4e\n"
    },
    {
      "commit": "a9a5cc8080f4ec101e61d7c0e934c6856d3ff7d2",
      "tree": "5db1593b2fd41355a9ba00771cd44c3576e511d7",
      "parents": [
        "fa09d442dc74ade81806fce5f1c256f4ddc13004",
        "3477307fdf93a1ef9a80d4e096125705c47e8024"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:01:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 19:01:33 2015 +0000"
      },
      "message": "Merge \"Quick: Use PC-relative dex cache array loads for SGET/SPUT.\""
    },
    {
      "commit": "cc23481b66fd1f2b459d82da4852073e32f033aa",
      "tree": "f2192d5fff8591e4e5b87d04fa6fce770f7e7f08",
      "parents": [
        "e5c76c515a481074aaa6b869aa16490a47ba98bc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 09:36:09 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:13:40 2015 +0100"
      },
      "message": "Promote pointer to dex cache arrays on arm.\n\nDo the use-count analysis on temps (ArtMethod* and the new\nPC-relative temp) in Mir2Lir, rather than MIRGraph. MIRGraph\nisn\u0027t really supposed to know how the ArtMethod* is used by\nthe backend.\n\nChange-Id: Iaf56a46ae203eca86281b02b54f39a80fe5cc2dd\n"
    },
    {
      "commit": "e5c76c515a481074aaa6b869aa16490a47ba98bc",
      "tree": "4297274a9fa46201b399ce7568ecb4a89293f9e7",
      "parents": [
        "3477307fdf93a1ef9a80d4e096125705c47e8024"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 06 12:10:19 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:13:39 2015 +0100"
      },
      "message": "PC-relative loads from dex cache arrays for arm.\n\nChange-Id: Ic25df4b51a901ff1d2ca356b5eec71d4acc5d9b7\n"
    },
    {
      "commit": "3477307fdf93a1ef9a80d4e096125705c47e8024",
      "tree": "f5dc12edb9286a3addb3a5d6866829829d3f03d5",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 09:56:48 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 07 19:06:15 2015 +0100"
      },
      "message": "Quick: Use PC-relative dex cache array loads for SGET/SPUT.\n\nChange-Id: I890284b73f69120ada5cf9b9ef4a717af3273cd2\n"
    },
    {
      "commit": "63a99fce3ceac3c9de1f47b88a75094e3e1ffba3",
      "tree": "7d530101b2ef119af5dc912c9e934ac4069145f4",
      "parents": [
        "c14b71235da51ab0ffc84bcedd6d543021b26db7",
        "62e074f0d1a18f0f5aa6716f000825704f55e81b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 07 17:33:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 17:33:43 2015 +0000"
      },
      "message": "Merge \"ART: Print C1vis header only if visualizer enabled\""
    },
    {
      "commit": "62e074f0d1a18f0f5aa6716f000825704f55e81b",
      "tree": "bad5f57aad20c4303c717240f2dc879d14c19453",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 07 18:09:37 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 07 18:22:40 2015 +0100"
      },
      "message": "ART: Print C1vis header only if visualizer enabled\n\nSetting kStringFilter currently suppresses graph dumps of non-matching\nmethods but their headers are still printed. This fixes the issue.\n\nChange-Id: Ib33fb20fcca2bf409534a824e7f76f1feb85724d\n"
    },
    {
      "commit": "4af147eb3296a26eea566f53a7f687194638d46b",
      "tree": "1152dedc18b1b2f4c3f3d2d118720f8054b76f3d",
      "parents": [
        "c5a5ac641eb4b32fa6737c390813ce78c66a12d3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 07 13:54:49 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 07 13:54:49 2015 +0100"
      },
      "message": "Exercise art::arm::Thumb2Assembler::StoreToOffset for word pairs.\n\n- Augment compiler/utils/arm/assembler_thumb2_test.cc.\n- Ensure art::arm::Thumb2Assembler::StoreToOffset properly\n  handles IP as (implicit) second source register.\n- Remove the parity constraint on the first source register\n  for art::arm::Thumb2Assembler::ldrd and\n  art::arm::Thumb2Assembler::strd (as they are not required\n  by the Thumb-2 encoding).\n- Introduce additional versions of\n  art::arm::Thumb2Assembler::ldrd and\n  art::arm::Thumb2Assembler::strd accepting a second source\n  register, which is not necessarily the one following the\n  first source register, as it is allowed by the Thumb-2\n  encoding.\n\nChange-Id: I7dba168437a96a5cbb117058e9c547fb1ff5c295\n"
    },
    {
      "commit": "47cf461b1b4125aedfef42aa5b4162f63aa8b8f3",
      "tree": "50ddb48a919ef749cde5d17a0234ec4d5244b7b5",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5",
        "189ae8251dfb0cace95a6c21d7f8132ecb486778"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 12:36:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 12:36:41 2015 +0000"
      },
      "message": "Merge \"Proper fix for issue 20051601 - arm actually means thumb2.\""
    },
    {
      "commit": "58d25fd052e999a24734b0cf856a1563e3d1b2d0",
      "tree": "b1dbeae13a24e3f7ec325698a3724b5d90df2ef9",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 03 14:52:31 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Apr 06 23:05:13 2015 -0400"
      },
      "message": "[optimizing] Implement more x86/x86_64 intrinsics\n\nImplement CAS and bit reverse and byte reverse intrinsics that were\nmissing from x86 and x86_64 implementations.\n\nAdd assembler tests and compareAndSwapLong test.\n\nChange-Id: Iabb2ff46036645df0a91f640288ef06090a64ee3\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "425ee0e1103b52bb72132df64f503725d1a15300",
      "tree": "15b1628b1d68abf2f4a44dce941715df438eb15f",
      "parents": [
        "a728627be3fad188a50f24e8d2032c78a8d58aca",
        "48699fb0b0662d9a4fa593d0bd2a7d5ace83e34e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 06 23:08:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 23:08:42 2015 +0000"
      },
      "message": "Merge \"Prevent verified method from being deleted by compiler driver.\""
    },
    {
      "commit": "48699fb0b0662d9a4fa593d0bd2a7d5ace83e34e",
      "tree": "9c223e2f545500c3ea29a0943c2f17b491938c3a",
      "parents": [
        "fb9131bd25b5a90e49da5e0f44b23e106558e7e0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 06 14:21:37 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 06 15:46:29 2015 -0700"
      },
      "message": "Prevent verified method from being deleted by compiler driver.\n\nThe results of it will be needed by future optimizing compiler changes.\n\nChange-Id: Ifbdf47e7564906b74193f80a4ba0459eed87c0f7\n"
    },
    {
      "commit": "75c40d419b621342ac834e5b61abcdcd84537063",
      "tree": "2066ed8e4c6bad6221d2512132444696bdde89b1",
      "parents": [
        "9104503b4053231d518c3e796033ee01f02bcdf1"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Apr 03 15:45:21 2015 +0200"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 15:43:02 2015 -0700"
      },
      "message": "Fix JNI compiler for mips64\n\nFix assembly instructions in JNI stub to store the right size. Fix\ncallee-saves in JNI calling convention to reflect return registers.\nFix pointer size in mips64 assembler.\n\nChange-Id: I4eccd1f56f62fa9119918192ec424e9073398bc7\n"
    },
    {
      "commit": "65b798ea10dd716c1bb3dda029f9bf255435af72",
      "tree": "774e9901b6917989a63f07f927c3b4d8b921a013",
      "parents": [
        "c411c6cc327d3f2b3b4d1987b07dd442205d9454"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 09:35:22 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:05:07 2015 -0700"
      },
      "message": "ART: Enable more Clang warnings\n\nChange-Id: Ie6aba02f4223b1de02530e1515c63505f37e184c\n"
    },
    {
      "commit": "758a801b66c134361a7b43f7e83f85d1fb800c4c",
      "tree": "35b060c780fcf6e7c268fec47df40c74b5ab8b05",
      "parents": [
        "e8aae00fa400efbb8f998a5dbf68eb42810889c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 21:28:42 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:03:17 2015 -0700"
      },
      "message": "ART: Enable Clang\u0027s -Wdeprecated\n\nReplace throw() with noexcept.\n\nAdd default copy constructors and copy assignment constructors for\ncases with destructors, as the implicit definition is deprecated.\n\nChange-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d\n"
    },
    {
      "commit": "e8aae00fa400efbb8f998a5dbf68eb42810889c1",
      "tree": "f14ec179e84f7b122fadd6e4abaf066d1843634a",
      "parents": [
        "81aedc7b2f2e8b990d74d6dfa5303ab2447327a1",
        "ca71458862be8505330b7fd5649a062f31d143dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "message": "Merge \"ART: Add Clang\u0027s -Wused-but-marked-unused\""
    },
    {
      "commit": "dfae5e62f917b9a9ec38ebd536813a884c508eac",
      "tree": "902dc5081b10af7a91b164806141ba718d48f3a9",
      "parents": [
        "e57fc0f0260fcb1d08cbb720ec95c04c0f394b91",
        "b207e1473dda1730604a28db2b4fa52f2998aeae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 06 09:01:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 09:01:35 2015 +0000"
      },
      "message": "Merge \"Pass linker patches around as const.\""
    },
    {
      "commit": "189ae8251dfb0cace95a6c21d7f8132ecb486778",
      "tree": "2fcbdb3289c316abba9a7d33cd5f630f38a4c3d9",
      "parents": [
        "934d754a53acff144273bd7fc42f4272628bb944"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Apr 04 10:15:17 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Apr 04 10:15:17 2015 +0100"
      },
      "message": "Proper fix for issue 20051601 - arm actually means thumb2.\n\nChange-Id: I38e81868cbebdccec6ecbba40494612f7c1d8092\n"
    },
    {
      "commit": "ca71458862be8505330b7fd5649a062f31d143dc",
      "tree": "7bc749056ab65906a147cc8e1d92e8be3ffea2cc",
      "parents": [
        "9d231cc422b7b32d00bd43ca6993b2dd7e9989ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 19:41:34 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 20:14:40 2015 -0700"
      },
      "message": "ART: Add Clang\u0027s -Wused-but-marked-unused\n\nAdd detection of wrong unused annotations. Fix our codebase.\n\nChange-Id: I85cc20f2eac71c1ec6c5c7cd6efb08454a629634\n"
    },
    {
      "commit": "e90db127277823e92398e112c9c23f2005554f95",
      "tree": "91c0c3f972a7e85d027ee158c815daf25c43664b",
      "parents": [
        "9c53fa5adb33fb853c6a8b70bacbae1e5a3218aa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 03 17:56:54 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 03 18:26:20 2015 -0700"
      },
      "message": "Add missing RecordPcInfo\u0027s for intrinsics_x86.\n\nChange-Id: I5ad856e57f63e2bd350f62e7023911c276427edd\n"
    },
    {
      "commit": "698385411e5db8c7ac9bd4471f152b8c6ea7f7bf",
      "tree": "75aa1f2479f5ad681e954669fc4e6134b8ba9121",
      "parents": [
        "2c18b956e9b501cc21af6c1a1c20baba2f635a32",
        "3dcd58cd54a922b864494fb7fff4a7f7a8562db9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 03 17:08:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 17:08:53 2015 +0000"
      },
      "message": "Merge \"Fix a bug when creating a HDeoptimization instruction.\""
    },
    {
      "commit": "3dcd58cd54a922b864494fb7fff4a7f7a8562db9",
      "tree": "1e7b416de3dd46b0301f835632f8b3d0392beb97",
      "parents": [
        "d43f160dc294655885a2c273307d34585c4ce97b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 03 11:02:38 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 03 12:36:38 2015 +0100"
      },
      "message": "Fix a bug when creating a HDeoptimization instruction.\n\nWe need to copy the environment, instead of just pointing\nto an existing one. Otherwise, if the instruction that initially\nholds the environemnt gets removed from the graph, any update\nto an instruction in that environment will not be reflected in it.\n\nbug:20058506\n\nChange-Id: I2a62476d0851ecbc3707c0da395d8502ee437422\n"
    },
    {
      "commit": "7bf5a266719af47439c36128bf20fa14fe1e45e8",
      "tree": "5c78e3db7852381dbfda2588555e1b9078a5379f",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 20:55:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 20:55:07 2015 -0700"
      },
      "message": "Explicitly specify the C libraries that have mallinfo(3).\n\nChange-Id: Ib6d22134cb246e30452a7ed9acabbde42b3ef091\n"
    },
    {
      "commit": "fc2b49a544613a6cfc2328cde30eb1ec3c1a37c5",
      "tree": "c7c1702b65dfda4d70deab73e91fe9661575c50f",
      "parents": [
        "97597c9be7f4eb5263a80e7de4684dbfa1427e9a",
        "fc3ee8f0c1fa0a5a6ca87c0f9c4320c5bc00e062"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 23:48:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 23:48:54 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Valgrind hotfix for VIXL 1.9\"\""
    },
    {
      "commit": "97597c9be7f4eb5263a80e7de4684dbfa1427e9a",
      "tree": "690dc04c72690a056aa84ac0206f96e5f513b3c2",
      "parents": [
        "7775d2c1e48c0bb0880f720f3dfbd4b4d0de7c6e",
        "fb8d279bc011b31d0765dc7ca59afea324fd0d0c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 23:10:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 23:10:46 2015 +0000"
      },
      "message": "Merge \"[optimizing] Implement x86/x86_64 math intrinsics\""
    },
    {
      "commit": "7775d2c1e48c0bb0880f720f3dfbd4b4d0de7c6e",
      "tree": "df4185ae7db09588ab2ca5688f4c9290d6b9aafe",
      "parents": [
        "79ed989a02ece9f75807f05c9e1b01d1b7549e7b",
        "934d754a53acff144273bd7fc42f4272628bb944"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 22:49:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 22:49:38 2015 +0000"
      },
      "message": "Merge \"Fix for issue 20051601 - ARM instruction alignment.\""
    },
    {
      "commit": "b207e1473dda1730604a28db2b4fa52f2998aeae",
      "tree": "f11edd5afaab57f733f18cc6cba66cf84d8a6571",
      "parents": [
        "3795e94a8bd42a1de3a98935f45399f1805a9f6e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 21:25:21 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 21:36:48 2015 +0100"
      },
      "message": "Pass linker patches around as const.\n\nChange-Id: I0eabd713d29475db9eb6e186f331dbfb00e0cf6b\n"
    },
    {
      "commit": "3795e94a8bd42a1de3a98935f45399f1805a9f6e",
      "tree": "8e87fa800ee73791d70e5c2cad87ea8dc09deab6",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230",
        "71b0ddf988208c9f77e7d2c1e75066cc3fe20c61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 19:51:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 19:51:49 2015 +0000"
      },
      "message": "Merge \"Split RelativePatcher::ReserveSpace() into two.\""
    },
    {
      "commit": "934d754a53acff144273bd7fc42f4272628bb944",
      "tree": "29fc032cef2b6f6a3259eb4ed3180667feb29335",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 02 20:38:40 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 02 20:42:03 2015 +0100"
      },
      "message": "Fix for issue 20051601 - ARM instruction alignment.\n\nThe instructions do not have to be 4 byte aligned.\n\nChange-Id: I58078a15190b835601094611ed01a599e2d99563\n"
    },
    {
      "commit": "71b0ddf988208c9f77e7d2c1e75066cc3fe20c61",
      "tree": "fe19c7e7eb0ac905f8e81e6318ddac447a4635eb",
      "parents": [
        "3f311cfa86af18ccbd6f1607f037401244ad4d56"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 19:45:06 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 20:29:07 2015 +0100"
      },
      "message": "Split RelativePatcher::ReserveSpace() into two.\n\nInstead of passing nullptr and MethodReference(nullptr, 0u)\nto ReserveSpace() at the end, call a newly created function\nReserveSpaceEnd().\n\nChange-Id: I38815fe9464b4e1a919878b6e8577614f1058d00\n"
    },
    {
      "commit": "93c65adb3d7bd1d3815715df433d185219045230",
      "tree": "4b16472c8f438bb2048ca2e50d911d7d6d0428a3",
      "parents": [
        "9a5df52b902b24dbf2d7cee88a1610b90a8e1c08",
        "3f311cfa86af18ccbd6f1607f037401244ad4d56"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 19:07:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 19:07:18 2015 +0000"
      },
      "message": "Merge \"Add tests for Arm64RelativePatcher.\""
    },
    {
      "commit": "3f311cfa86af18ccbd6f1607f037401244ad4d56",
      "tree": "4c2c6117abe8d6154531321894df6d354e2b5951",
      "parents": [
        "4d23c9d01b7a609813345eec95167a4dbc4fbae4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 15:28:45 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 19:07:35 2015 +0100"
      },
      "message": "Add tests for Arm64RelativePatcher.\n\nChange-Id: I9d2c21d323137ac143eabb8fdf6ca075bae45c51\n"
    },
    {
      "commit": "fc3ee8f0c1fa0a5a6ca87c0f9c4320c5bc00e062",
      "tree": "b00517ce55d2b24e491695f2be8b5b3dcfdde3b0",
      "parents": [
        "fc67542a93be3381f9c6cf226a6c5a6f30ed6e82"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Apr 02 12:27:30 2015 +0100"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Apr 02 17:25:27 2015 +0100"
      },
      "message": "Revert \"ART: Valgrind hotfix for VIXL 1.9\"\n\nFixed in external/vixl and upstream VIXL.\n\nChange-Id: I7d1901da06a7c1517c88a2583bc668a3e23ef852\n"
    },
    {
      "commit": "c5a5ac641eb4b32fa6737c390813ce78c66a12d3",
      "tree": "bde21fc72f4a006313b2f96db7af630f5de1ad0a",
      "parents": [
        "e28be7d958d44629d01f16ac94eee279bb869e2f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 02 15:49:24 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 02 16:48:29 2015 +0100"
      },
      "message": "Exercise art::arm::Thumb2Assembler::StoreToOffset for words.\n\nChange-Id: Ifa82e69c055eb99e526fc7ab5db54bde988d2caf\n"
    },
    {
      "commit": "e28be7d958d44629d01f16ac94eee279bb869e2f",
      "tree": "affe764a454ba93d6d0321e898f17d5a6a11956b",
      "parents": [
        "e8a339e5058962805c2b428fedb1d6ede5aeb501",
        "4d23c9d01b7a609813345eec95167a4dbc4fbae4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 15:46:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 15:46:31 2015 +0000"
      },
      "message": "Merge \"Add tests for Thumb2RelativePatcher.\""
    },
    {
      "commit": "4d23c9d01b7a609813345eec95167a4dbc4fbae4",
      "tree": "92f76d5016319318064b0c574e8a30145337f876",
      "parents": [
        "b163bb742a099c1808907b513ae39068b63b1692"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 01 23:03:09 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 15:44:42 2015 +0100"
      },
      "message": "Add tests for Thumb2RelativePatcher.\n\nAlso make the thumb2/arm64 thunk allocation precise instead\nof eagerly allocating thunk space. This allows the calls to\nuse the maximum positive offset.\n\nChange-Id: Ifa95b0bb00bd73eeab0c2905d21e2f3078f4b0a8\n"
    },
    {
      "commit": "e8a339e5058962805c2b428fedb1d6ede5aeb501",
      "tree": "9588a6013e17994888bafc216154d786c0e22d51",
      "parents": [
        "fc67542a93be3381f9c6cf226a6c5a6f30ed6e82",
        "6f7158927fee233255f8e96719c374694b10cad3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 02 14:12:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 14:12:03 2015 +0000"
      },
      "message": "Merge \"Write .debug_line section using the new DWARF library.\""
    },
    {
      "commit": "fc67542a93be3381f9c6cf226a6c5a6f30ed6e82",
      "tree": "441dceeef2b274898257298e1bd45c43017664cb",
      "parents": [
        "2486420715b915dae47486d7f82d8e35b7ad6af3",
        "b163bb742a099c1808907b513ae39068b63b1692"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 12:46:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 12:46:16 2015 +0000"
      },
      "message": "Merge \"Refactor RelativePatcher out of OatWriter.\""
    },
    {
      "commit": "2486420715b915dae47486d7f82d8e35b7ad6af3",
      "tree": "be5713d3bef3fc7c6610ede3c8913628ae6e5b83",
      "parents": [
        "28be3fbd155ab31d184d17164c2617f93bc34dda",
        "dc56cc509d8e1718ad321f7a91661dbe85ec8cef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 12:44:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 12:44:49 2015 +0000"
      },
      "message": "Merge \"PC-relative loads from dex cache arrays for x86-64.\""
    },
    {
      "commit": "b163bb742a099c1808907b513ae39068b63b1692",
      "tree": "37f49bab426c894a899e490243ab0e7844a390ea",
      "parents": [
        "dc56cc509d8e1718ad321f7a91661dbe85ec8cef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 21:49:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 12:46:56 2015 +0100"
      },
      "message": "Refactor RelativePatcher out of OatWriter.\n\nMove the relative patcher classes to compiler/linker/ and\ncompiler/linker/\u003carch\u003e/ . Refactor them to avoid OatWriter\ndependency so that they can be unit tested. Add tests for\nx86 and x86-64.\n\nChange-Id: I1b42baa9fc431378e4cce1399bec590c5b5a409f\n"
    },
    {
      "commit": "dc56cc509d8e1718ad321f7a91661dbe85ec8cef",
      "tree": "e261790925acd817ff470c23610ec2cc8be9f32e",
      "parents": [
        "d29c27ff21b8cce7c06a4aff1bd382305df4d381"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 27 18:18:36 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 09:12:07 2015 +0100"
      },
      "message": "PC-relative loads from dex cache arrays for x86-64.\n\nChange-Id: I6cfe22c7e69512b3c0f95b073aaa572db74ec189\n"
    },
    {
      "commit": "e4285226d1d4d7c4feee16a968540fb2e363339f",
      "tree": "835b91c05b39cdb1053c2cd28e0e23c202dc020b",
      "parents": [
        "79bdb47d8c87ca3ee7da4aa2ca56105728257a32",
        "d43b3ac88cd46b8815890188c9c2b9a3f1564648"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 23:15:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 23:15:53 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Deoptimization-based bce.\"\"\""
    },
    {
      "commit": "79bdb47d8c87ca3ee7da4aa2ca56105728257a32",
      "tree": "a288ba00f919fc8687dc8bfba8708756be18ab97",
      "parents": [
        "d11fa65a21fd38dcd6e183cd9993b78d711b9ccf",
        "0c365e674545159fd77b998081207f0685a605e5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 22:08:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 22:08:37 2015 +0000"
      },
      "message": "Merge \"CanThrow() of HNewArray should return true.\""
    },
    {
      "commit": "d11fa65a21fd38dcd6e183cd9993b78d711b9ccf",
      "tree": "de906c7f5cb100628688484f904e053019b6f5d6",
      "parents": [
        "31da5cd387419a8d56671bcc02a194ddec034b4d",
        "2be48692eaa15c1d9f6ca1b3477bb75429843aff"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 22:07:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 22:07:15 2015 +0000"
      },
      "message": "Merge \"Clean up some RecordPcInfo in x86 slow paths.\""
    }
  ],
  "next": "0c365e674545159fd77b998081207f0685a605e5"
}
