)]}'
{
  "log": [
    {
      "commit": "73f21d45a41aaad1a02eecdf3bbdbf78ef599d5e",
      "tree": "88d52c615cd8ec5bd8d2fad44fddeef0911e2458",
      "parents": [
        "d096b3a09f0e7129813fb663fec5b5f131565d71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 02 14:26:50 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 02 17:53:21 2018 -0800"
      },
      "message": "Remove CodeItem accessor functions\n\nThese are replaced by the accessor helpers.\n\nBug: 63756964\nTest: test-art-host\nTest: test/testrunner/testrunner.py --host -j30\n\nChange-Id: Ic93d60b68b684eeb5f69be286b4e15b8f8f97542\n"
    },
    {
      "commit": "dc578c7e47b2db623b382932bfe4dbc6dce41aa4",
      "tree": "409e6dc0c338bf75c1ce55acfae91fe86ef3028e",
      "parents": [
        "1d32a16f93d8bb479523fd237277ecbbff5bf1f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 11:51:45 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 13:24:11 2017 -0800"
      },
      "message": "Move dex exception helpers to their own file and use dex accessor\n\nAlso change the input argument to be a code item accessor\ninstead of a code item pointer. This removes the dependency on\nthe code item layout.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: If75a168d0b5a77d08fa3c6ba38d00705158911db\n"
    },
    {
      "commit": "808c7a57bb913b13c22884f57cdacd59bf1fdb3f",
      "tree": "d7f0d7cabaac5a7646c25bae584a82a9aa279cc0",
      "parents": [
        "64bae9fb677aa0e2406d13ea9f8ebaa92e16f978"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 15 11:19:33 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 22 09:41:17 2017 -0800"
      },
      "message": "Make CodeItem fields private\n\nMake code item fields private and use accessors. Added a hand full of\nfriend classes to reduce the size of the change.\n\nChanged default to be nullable and removed CreateNullable.\nCreateNullable was a bad API since it defaulted to the unsafe, may\nadd a CreateNonNullable if it\u0027s important for performance.\n\nMotivation:\nHave a different layout for code items in cdex.\n\nBug: 63756964\nTest: test-art-host-gtest\nTest: test/testrunner/testrunner.py --host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I42bc7435e20358682075cb6de52713b595f95bf9\n"
    },
    {
      "commit": "5e399b8715f3cb153ddb619a7c47515583799db3",
      "tree": "ff88905149497482b079ab4cb8c2caaec05cc498",
      "parents": [
        "ffc3be6b4a58c1ed172a5c890f8b8583a416998f"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 21 14:28:35 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 21 14:57:31 2017 +0000"
      },
      "message": "ART: Rename cloner_test.\n\nRename cloner_test to superblock_cloner_test to be\nconsistent with the test naming conventioni as a new\nSuperblockCloner file is arriving.\n\nTest: superblock_cloner_test.cc.\nChange-Id: I066a20b4599de6c59b83676bb11295135a512791\n"
    },
    {
      "commit": "df99018e106ee1d3b7601718fa1e444ab0a028da",
      "tree": "d5629ceea96fdaab106e2137c731f0ed7f6a487b",
      "parents": [
        "ee58c02b5959944a2db198a2d58355651ed29d53",
        "09faaea17b75269805b4857ed3c9cd04c7273959"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Dec 18 23:10:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 18 23:10:46 2017 +0000"
      },
      "message": "Merge \"ART: Fix single-preheader transformation.\""
    },
    {
      "commit": "e7de5ec3e4cd1d607b647d98ea64df105479b867",
      "tree": "d692c4d1dee08eea4beffd71bd8cdf1d106c059e",
      "parents": [
        "bee510c94560703102ca553a08ec47119959c204"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Thu Dec 14 10:25:20 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Fri Dec 15 17:33:12 2017 +0100"
      },
      "message": "MIPS: Support swaps between 128-bit locations\n\nAdd support for swaps between two SIMDStackSlots, two\nVectorRegisters (extended FpuRegister) and between a\nSIMDStackSlot and a VectorRegister.\n\nThis fixes test 623-checker-loop-regressions for\nMIPS64R6 and MIPS32R6.\n\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS64R6)\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS32R6)\n\nChange-Id: I36aa209f79790fb6c08b9a171f810769a6b40afc\n"
    },
    {
      "commit": "fe8a8975cd843c9a7922aaf0badae2d47562e9cd",
      "tree": "afaa12ffee3f70785607975c59f47e43111df61c",
      "parents": [
        "c8d910399cfd33550c497cc3e1e05b0396903234",
        "8758454d380a2b0de1f4a99e9623cfac5460ccdf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 15 10:08:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 10:08:11 2017 +0000"
      },
      "message": "Merge changes Ib1381084,Icb2a838f\n\n* changes:\n  Clean up InstanceOf/CheckCast.\n  X86: Clean up interface type check for heap poisoning.\n"
    },
    {
      "commit": "ed416f76ae679d92f0bc648581de2684ff93e29a",
      "tree": "71a162eed854beea4e60e32c6c12a13b90be7cc8",
      "parents": [
        "313bee1a9fa34946c623ae37cfb5d79f8cadaf82",
        "217eb067308cf5aa43065377b66acbbee0f5b7c3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 15 00:48:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 00:48:52 2017 +0000"
      },
      "message": "Merge \"Fix the side effects of clinit check\""
    },
    {
      "commit": "217eb067308cf5aa43065377b66acbbee0f5b7c3",
      "tree": "d98dad64fcd6efe39d1c984d615e4688dfdc75f8",
      "parents": [
        "0f13269734be07b5869005952a3cb91b0b34b73d"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Dec 11 15:20:07 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 14 12:32:52 2017 -0800"
      },
      "message": "Fix the side effects of clinit check\n\nHClinitCheck obviously does reads so it\u0027s side effects should include\nall reads and writes, just like HInvoke. GVN now explicitly allows\nclinit check to be reused, which would otherwise be disallowed based on\nthe dependency introduced by the new side effects. Also make licm\u0027s\nlogic cleaner and treat clinit check as a special case also,\notherwise licm can\u0027t hoist clinit check due to the dependency\nintroduced by the new side effects also.\n\nTest: run-test on host.\nChange-Id: I16886cfe557803d84d84ce68fbb185ebfc0b84dc\n"
    },
    {
      "commit": "ba3a790338725a37ecd4cb314c4a6147e29aef38",
      "tree": "f81b0225fa22d02e9726c743d486d314cde91893",
      "parents": [
        "df6e7fa50734cd052c34e28128a6d2d398790072",
        "04366f382239f4bcf1f9c67bb1ff6975607cd8e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 16:46:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 14 16:46:34 2017 +0000"
      },
      "message": "Merge \"Revert \"ART: Try to statically evaluate some conditions.\"\""
    },
    {
      "commit": "df6e7fa50734cd052c34e28128a6d2d398790072",
      "tree": "b90bd476278b4b02cd3711aa2eb28ed2d70e40d7",
      "parents": [
        "ff789be0c6f829e8c2fe6a769b98e3601ddc71df",
        "cfe50bb5a66251feeb4a16d25eb2f95d7a0f99ce"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Dec 14 16:29:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 14 16:29:02 2017 +0000"
      },
      "message": "Merge \"Implemented missing move/exchange paths for x86\""
    },
    {
      "commit": "8758454d380a2b0de1f4a99e9623cfac5460ccdf",
      "tree": "0c23241949fc3ab94c826a18ffa2185218521bd4",
      "parents": [
        "e619f6c51d0ff99a00c63d3d092e0132522e8fc8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 12 17:47:52 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 14 16:05:15 2017 +0000"
      },
      "message": "Clean up InstanceOf/CheckCast.\n\nAvoid read barriers for boot image class InstanceOf. Boot\nimage classes are non-moveable, so comparing them against\nfrom-space and to-space reference yields the same result.\n\nChange the notion of a \"fatal\" type check slow path to mean\nthat the runtime call shall not return by normal path, i.e.\n\"fatal\" now includes certainly throwing in a try-block. This\navoids unnecessary code to restore registers and jump back.\nFor boot image classes the CheckCast comparisons do not need\nread barriers (for the same reason as for InstanceOf), so we\nshall not have any false negatives and can treat the check\u0027s\nslow paths as final in the same cases as in non-CC configs.\n\nBoot image size for aosp_taimen-userdebug in AOSP master:\n  - before:\n    arm boot*.oat: 37075460\n    arm64 boot*.oat: 43431768\n  - after:\n    arm boot*.oat: 36894292 (-177KiB, -0.5%)\n    arm64 boot*.oat: 43201256 (-225KiB, -0.5%)\n\nAlso remove some obsolete helpers from CodeGenerator.\n\nTest: Additional test in 603-checker-instanceof.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 12687968\nChange-Id: Ib1381084e46a10e70320dcc618f0502ad725f0b8\n"
    },
    {
      "commit": "04366f382239f4bcf1f9c67bb1ff6975607cd8e4",
      "tree": "243c70c2b0317ea52cae27d633d7e68e7aa4db05",
      "parents": [
        "1de1e11ac90db9fad8916ac43d43714ccb8d978f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 14 15:15:19 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 14 15:15:19 2017 +0000"
      },
      "message": "Revert \"ART: Try to statically evaluate some conditions.\"\n\nCL has an unwanted 10-15% compile-time impact.\n\nThis reverts commit 1de1e11ac90db9fad8916ac43d43714ccb8d978f.\n\nChange-Id: I76b45aa95bbd24dd025d2ee6cf37d77fe17b8497\n"
    },
    {
      "commit": "f4886df5e72fa21eddfc4cc7860f4154929b3380",
      "tree": "897e74d9da4e92faae5c24350fa2f999cbfb2b1e",
      "parents": [
        "7eb4333d0b60a13f9d3126eadef9eb16c399662a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Dec 11 16:06:29 2017 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 14 13:52:07 2017 +0000"
      },
      "message": "Add mini-debug-info generation mode for JIT.\n\nThis excludes everything that is not needed for backtraces and\ncompresses the resulting ELF file (wrapped in another ELF file).\n\nThis approximately halves the size of the debug data for JIT.\nThe vast majority of the data is the overhead of ELF header.\nWe could amortize this by storing more methods per ELF file.\n\nIt also adds NOBITS .text section to all debug ELF files,\nas that seems necessary for gdb to find the symbols.\nOn the other hand, it removes .rodata from debug ELF files.\n\nTest: Manually tested that gdb can use this data to unwind.\nTest: m test-art-host-gtest\nTest: testrunner.py --optimizing --host\nTest: testrunner.py -t 137-cfi\n\nChange-Id: Ic0a2dfa953cb79973a7b2ae99d32018599e61171\n"
    },
    {
      "commit": "09faaea17b75269805b4857ed3c9cd04c7273959",
      "tree": "7794d83f6dd20acdcbb4ee7a075d6ea8f4590b42",
      "parents": [
        "03376f4c4de8e419402bf40fdff4135728ffb21e"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 07 14:36:01 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Dec 13 19:18:13 2017 +0000"
      },
      "message": "ART: Fix single-preheader transformation.\n\nOriginal implementation of \"Make sure the loop has only one\npre-header\" had an assumption that the header had no phi\nfunctions since loops with multiple preheaders now only may exist\nduring graph building before ssa construction; all of the\noptimizations preserve the single-preheader invariant. This code is\nused by DCE; DCE was called multiple times but after graph building\npreheader transformation was never executed. However if someone\nintroduces a optimization which might not keep the invariant\n(e.g. loop peeling) the data flow adjustments must be performed.\n\nTest: loop_optimization_test.cc\nTest: test-art-target, test-art-host\nChange-Id: I88bb0aad2dd5241addef7fe9cda474a6868bf532\n"
    },
    {
      "commit": "cfe50bb5a66251feeb4a16d25eb2f95d7a0f99ce",
      "tree": "10149931e81ce53b6947111d66f2178db08b2bbe",
      "parents": [
        "0f13269734be07b5869005952a3cb91b0b34b73d"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 12 14:54:12 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Dec 13 10:45:15 2017 -0800"
      },
      "message": "Implemented missing move/exchange paths for x86\n\nRationale:\nRecent SIMD register spilling bug fix exposed missing\ncases in the x86 and x86_64 code generator for moving\nand exchanging SIMD spill slots.\n\nTest: run-test --host  -Xcompiler-option --instruction-set-features\u003dsse4.1 623-checker-loop-regressions (32/64)\n\nBug: 70559970\nChange-Id: Iae66d6874b93af5b2db80db70bce4b0f4a9b9f3f\n"
    },
    {
      "commit": "e619f6c51d0ff99a00c63d3d092e0132522e8fc8",
      "tree": "f1965e70f0a35b05b328efbdfccd06a20e17a4d2",
      "parents": [
        "d1c3915293412da3ae4898b446d3cdffa3d07058"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 12 16:00:01 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 13 17:51:54 2017 +0000"
      },
      "message": "X86: Clean up interface type check for heap poisoning.\n\nTest: ART_HEAP_POISONING\u003dtrue m test-art-host-gtest\nTest: ART_HEAP_POISONING\u003dtrue testrunner.py --host --optimizing\nBug: 32577579\nChange-Id: Icb2a838fc3a2ddcc2a50b72236afe2cd65f02e01\n"
    },
    {
      "commit": "89ff8b23f7c4189ba82407d95c3100c2f397cf19",
      "tree": "95a49416c9231eea98c927e8777b7721b24974a3",
      "parents": [
        "03376f4c4de8e419402bf40fdff4135728ffb21e"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Nov 20 11:51:05 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Dec 13 15:33:29 2017 +0000"
      },
      "message": "ARM64: Workaround for the callee saved FP registers and SIMD.\n\nTreat as scheduling barriers those vector instructions whose live\nranges exceed the vectorized loop boundaries. This is a workaround\nfor the lack of notion of SIMD register in the compiler; around a\ncall we have to save/restore all live SIMD\u0026FP registers (only\nlower 64 bits of SIMD\u0026FP registers are callee saved) so don\u0027t\nreorder such vector instructions.\n\nTest: 706-checker-scheduler, test-art-host, test-art-target\nBug: 69667779\n\nChange-Id: I31e57518339d41545a0c519f7299afe381a8286c\n"
    },
    {
      "commit": "03376f4c4de8e419402bf40fdff4135728ffb21e",
      "tree": "5d55cc893e2c445f6d181830bd6ae446010fbf8f",
      "parents": [
        "3f74ea478d755453a2fe5789ce155e80be3e7c7f",
        "1de1e11ac90db9fad8916ac43d43714ccb8d978f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 11:06:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 13 11:06:54 2017 +0000"
      },
      "message": "Merge \"ART: Try to statically evaluate some conditions.\""
    },
    {
      "commit": "702f6f276d2b81ae27bce51c2e78b04aa45a5796",
      "tree": "84e1e493074878447cf1fe01ece97b9eff8b5f52",
      "parents": [
        "6f05cca7f37eba9f831c811af044bfe735acb8cd",
        "31f4c9f86522061d682fd0e2c6003043cec496dc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 12 21:37:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 12 21:37:59 2017 +0000"
      },
      "message": "Merge \"Add CodeItemDebugInfoAccessor\""
    },
    {
      "commit": "1de1e11ac90db9fad8916ac43d43714ccb8d978f",
      "tree": "6653892be4d2372a189c4b82e8c3c8b0be064979",
      "parents": [
        "986005c955860a69d788f7ff7d7f28964eb684ad"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Jul 20 16:33:59 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Dec 12 18:13:10 2017 +0000"
      },
      "message": "ART: Try to statically evaluate some conditions.\n\nIf a condition \u0027cond\u0027 is evaluated in an HIf instruction then in\nthe successors of the this HIF_BLOCK we statically know the value\nof the condition (TRUE in TRUE_SUCC, FALSE in FALSE_SUCC). Using\nthat we could replace another evaluation (use) EVAL of the same\n\u0027cond\u0027 with TRUE value (FALSE value) if every path from the\nENTRY_BLOCK to EVAL_BLOCK contains the edge HIF_BLOCK-\u003eTRUE_SUCC\n(HIF_BLOCK-\u003eFALSE_SUCC).\n\n  if (cond) {\n    ...\n    if (cond) {\n      ...\n    }\n    ...\n    int a \u003d cond ? 5 : 105;\n    ...\n  }\n\nThe patch is a prerequisite step for \"Loop peeling to eliminate\ninvariant exits\" however it brings some value on its own with\na tiny code size reduction in boot-framework.oat (-8Kb).\n\nTest: 458-checker-instruct-simplification\nTest: test-art-target, test-art-host.\nChange-Id: Ifbe45097dc2b5f098176fa1a1d023ea90b76d396\n"
    },
    {
      "commit": "666ee3d7c6039c80e75287e311895bd6a9b01e9f",
      "tree": "5e65f39ff7cc83af4be3b691c247d7348052f854",
      "parents": [
        "890111968fbd3f5ae528d97e42984c12a3dd27bd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 11 18:37:36 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 12 13:48:02 2017 +0000"
      },
      "message": "Do not pass DexFile to ClassLinker::Lookup/ResolveType().\n\nThe DexFile can be easily retrieved from the DexCache,\nso reduce the number of arguments that need to be passed.\n\nAlso refactor the code to avoid doing the DexCache lookup\ntwice and avoid unnecessary read barriers in the initial\nDexCache lookup (also for Lookup/ResolveField()).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Idea9aa42b6a5bade947e93e330b1abdb9d11b2da\n"
    },
    {
      "commit": "31f4c9f86522061d682fd0e2c6003043cec496dc",
      "tree": "fc7192bc634811bdc8176afc4b5e60a049d56ae0",
      "parents": [
        "f23779bc210ecbf448e61d7b18088b6afb46a476"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 08 15:46:11 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 11 19:55:46 2017 -0800"
      },
      "message": "Add CodeItemDebugInfoAccessor\n\nUse it in places where DecodeDebugPositionInfo is called.\n\nMotivation: Abstract away calls to GetDebugInfoOffset.\n\nBug: 63756964\nTest: test-art-host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 --debug\n\nChange-Id: I3ab2eff56c472cc717f49d17fd17eb0b8fde4062\n"
    },
    {
      "commit": "890111968fbd3f5ae528d97e42984c12a3dd27bd",
      "tree": "edb4ed38332a817b7d3037ea260856cec839dca9",
      "parents": [
        "0f13269734be07b5869005952a3cb91b0b34b73d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 11 13:45:05 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 11 15:43:45 2017 +0000"
      },
      "message": "Do not pass DexFile to ClassLinker::Lookup/ResolveMethod().\n\nThe DexFile can be easily retrieved from the DexCache,\nso reduce the number of arguments that need to be passed.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I2e47280e7cb8b84595130c4abfb5ece18d7f5c75\n"
    },
    {
      "commit": "0f13269734be07b5869005952a3cb91b0b34b73d",
      "tree": "026115080385984050674455e54721f00cb5df10",
      "parents": [
        "768bd97cede0a6de738936aad738f8bb0099322e",
        "a64b52deb0c792b8a0d47546edb8a2f8a7816c33"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 11 14:24:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 11 14:24:43 2017 +0000"
      },
      "message": "Merge changes I8c4cec43,I00634b89,I0579db64\n\n* changes:\n  Do not pass DexFile to ClassLinker::Lookup/ResolveString().\n  Do not pass DexFile to ClassLinker::ResolveMethodType().\n  Do not pass DexFile to ClassLinker::ResolveField*().\n"
    },
    {
      "commit": "a64b52deb0c792b8a0d47546edb8a2f8a7816c33",
      "tree": "0f98c035e2da07a17501debc4d1f49281d2f9e41",
      "parents": [
        "af94020190a2153834e30fc962e28c3b63d7ffc2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 16:27:49 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 11 11:40:35 2017 +0000"
      },
      "message": "Do not pass DexFile to ClassLinker::Lookup/ResolveString().\n\nThe DexFile can be easily retrieved from the DexCache,\nso reduce the number of arguments that need to be passed.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I8c4cec43b31b27de7e4e94374fdd69c6d6ca6c13\n"
    },
    {
      "commit": "8f1a586fd4ac9796e75b2b18638e39b33ad6e9a2",
      "tree": "f1970c938487dbd9e773619804612ac824b0721c",
      "parents": [
        "2ba3557b6d2ea65956f7a98e6f0fd921f35792a5",
        "170331f0e44a0e07fcfe0b5932517e0500f5cd1f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 19:28:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 19:28:07 2017 +0000"
      },
      "message": "Merge changes I917df597,Ib2ca880e,Ib3733573,I3e3a4672\n\n* changes:\n  ART: Remove base/logging from heap-inl.h\n  ART: Factor out gAborting\n  ART: Move runtime-debug flags to own files\n  ART: Replace base/logging with android-base/logging\n"
    },
    {
      "commit": "e11dd50ac2b5ccbf3b02213b7361f55b1f1a90da",
      "tree": "ea958df5f757369119cc84968f3b77210faf593f",
      "parents": [
        "2ba3557b6d2ea65956f7a98e6f0fd921f35792a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 14:09:45 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 17:54:25 2017 +0000"
      },
      "message": "Do not pass DexFile to ClassLinker::ResolveField*().\n\nThe DexFile can be easily retrieved from the DexCache,\nso reduce the number of arguments that need to be passed.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I0579db64c63afea789c7c9ad8db81e37c9248e97\n"
    },
    {
      "commit": "2ba3557b6d2ea65956f7a98e6f0fd921f35792a5",
      "tree": "5362f0306de9dfd47576b0988dc8b660ece0898b",
      "parents": [
        "f56a1c0abde24065f02705004cdc245f850e064a",
        "208f67072283be64da231b51f9c195aff403dceb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 17:26:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 17:26:53 2017 +0000"
      },
      "message": "Merge \"Change ArtField::ProxyFindSystemClass() to lookup the class.\""
    },
    {
      "commit": "f56a1c0abde24065f02705004cdc245f850e064a",
      "tree": "6b5debfcb663f76e6a5bcb3949eec1bce891989e",
      "parents": [
        "f23779bc210ecbf448e61d7b18088b6afb46a476",
        "28e012a4af2d710e5e5f824709ffd6432e4f549f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 17:26:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 17:26:18 2017 +0000"
      },
      "message": "Merge \"Determine HLoadClass/String load kind early.\""
    },
    {
      "commit": "208f67072283be64da231b51f9c195aff403dceb",
      "tree": "97748c71e6c16ae110ccdbb13f50a78e5a21cd33",
      "parents": [
        "4388fb213ec746ee18a6bea38ee894f8c19990b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 12:00:50 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 16:50:21 2017 +0000"
      },
      "message": "Change ArtField::ProxyFindSystemClass() to lookup the class.\n\nAs the function is called from ArtField::LookupType(),\nwe should avoid calls that appear to allow type resolution\nrather than plain lookup. The lookup should always succeed.\n\nAlso rename ArtField::LookupType() to LookupResolvedType()\nto align with naming used in ClassLinker and ArtMethod.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I0a87347b5341575e47e0fdba6d58ade2543387c8\n"
    },
    {
      "commit": "28e012a4af2d710e5e5f824709ffd6432e4f549f",
      "tree": "576ebdbff9d5f9f098cd29d652215b8f67b6b042",
      "parents": [
        "4388fb213ec746ee18a6bea38ee894f8c19990b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 07 11:22:59 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 15:27:27 2017 +0000"
      },
      "message": "Determine HLoadClass/String load kind early.\n\nThis helps save memory by avoiding the allocation of\nHEnvironment and related objects for AOT references to\nboot image strings and classes (kBootImage* load kinds)\nand also for JIT references (kJitTableAddress).\n\nCompiling aosp_taimen-userdebug boot image, the most memory\nhungry method BatteryStats.dumpLocked() needs\n  - before:\n    Used 55105384 bytes of arena memory...\n    ...\n    UseListNode    10009704\n    Environment      423248\n    EnvVRegs       20676560\n    ...\n  - after:\n    Used 50559176 bytes of arena memory...\n    ...\n    UseListNode     8568936\n    Environment      365680\n    EnvVRegs       17628704\n    ...\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 34053922\nChange-Id: I68e73a438e6ac8e8908e6fccf53bbeea8a64a077\n"
    },
    {
      "commit": "5449e076f6314fc21592a9e089258647f2750e9b",
      "tree": "b1f74c221456c93d2611b5eb3ece31b1130c7f20",
      "parents": [
        "f223f76bdd360664a1e8068eeac6ce35f7392bc6",
        "2dd7b672ea0afd7ea4448b43d24829e9886de3af"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Dec 08 03:52:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 03:52:32 2017 +0000"
      },
      "message": "Merge \"Fixed spilling bug (visible on ARM64): missed SIMD type.\""
    },
    {
      "commit": "57943810cfc789da890d73621741729da5feaaf8",
      "tree": "367677a982a45af98ffe3e79543615875e8550b4",
      "parents": [
        "d5153627778e71ef68b510ce03c77467fa4d85bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 06 21:39:13 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Replace base/logging with android-base/logging\n\nReplace wherever possible. ART\u0027s base/logging is now mainly VLOG\nand initialization code that is unnecessary to pull in and makes\nchanges to verbose logging more painful than they have to be.\n\nTest: m test-art-host\nChange-Id: I3e3a4672ba5b621e57590a526c7d1c8b749e4f6e\n"
    },
    {
      "commit": "2dd7b672ea0afd7ea4448b43d24829e9886de3af",
      "tree": "fd7e3c48f5ac17fc238bff68bf33e5868d1386dc",
      "parents": [
        "718173b7705ebc7f4a15aaaa4c074f9e5d907b31"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Dec 07 11:11:22 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Dec 07 15:43:33 2017 -0800"
      },
      "message": "Fixed spilling bug (visible on ARM64): missed SIMD type.\n\nTest: test-art-host test-art-target\nChange-Id: I6f321446f54943e02f250732ec9da729f633c3a9\n"
    },
    {
      "commit": "3bcb751d0d2fa440809437a616e9326388600c8e",
      "tree": "b5690b42f19f64442214b808e6760f021c63e0f5",
      "parents": [
        "4388fb213ec746ee18a6bea38ee894f8c19990b9"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 16 15:40:46 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 07 10:27:48 2017 -0800"
      },
      "message": "type conversion elimination for store value only uses.\n\nSome type conversions can be eliminated if the converted values are used\nas store values only. Code generation can handle the conversion\nimplicitly.\n\nTest: run-test on host. 711-checker-type-conversion.\nChange-Id: I60a402cf4610683acc5ca2ceba19045b4c17b843\n"
    },
    {
      "commit": "4388fb213ec746ee18a6bea38ee894f8c19990b9",
      "tree": "592a90855396854be93569bbe41b363971605b65",
      "parents": [
        "7869c87348dffba5bd5ef39f7fe74689bc19ae3c",
        "94539fde235a6dcd25af2560bb1fed5306f9f26d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 07 01:17:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 07 01:17:32 2017 +0000"
      },
      "message": "Merge \"Fix typing bug in load store elimination\""
    },
    {
      "commit": "94539fde235a6dcd25af2560bb1fed5306f9f26d",
      "tree": "13d62de65d0330107b9fd6f6f204459e580cc3d6",
      "parents": [
        "d57fdd82fccfa15933033646c9436313b399d528"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 15 17:52:46 2017 +0000"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Dec 06 15:47:05 2017 -0800"
      },
      "message": "Fix typing bug in load store elimination\n\nTest: 530-checker-lse3\nBug: 69365271\nChange-Id: I2289bed5fc7b84ee913a2015d113098777dabd4c\n"
    },
    {
      "commit": "f5df935f1ce34462aff7f93d40adcc5f026a6b11",
      "tree": "0a79218c8bfe133286f442c8f215ba689d5abe86",
      "parents": [
        "ddbef59de16cb2ff44a00c6f68174ea3419352ba",
        "fec85cdfa337dfb1f1c6d5bd9a940bc2d20a0edb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 05 13:03:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 05 13:03:56 2017 +0000"
      },
      "message": "Merge \"Minor cleanup in CodeGenerator::RecordPcInfo().\""
    },
    {
      "commit": "a9683fb824a12bc27819777fae0223b13f04ce43",
      "tree": "d5529a057795d19038aac6ee9e5afc44fefa4af6",
      "parents": [
        "71d26020570127ea584ca39df64d1506c0982387",
        "3853017d05d5395250882c68482d8168a0392391"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 05 00:48:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 05 00:48:06 2017 +0000"
      },
      "message": "Merge \"MIPS: Improve HandleBinaryOp (Add/Sub) for constant inputs\""
    },
    {
      "commit": "367e020d85ee5d3c3c5896a20acb1a7e51a4309a",
      "tree": "dc9ab6e265436807d8cf21b57af4e021b7769f71",
      "parents": [
        "d57fdd82fccfa15933033646c9436313b399d528",
        "0259c24f5e83ab69b259245b645076b864b2e2ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 04 21:25:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 04 21:25:14 2017 +0000"
      },
      "message": "Merge \"Fix a bug in String.charAt() simplification.\""
    },
    {
      "commit": "d57fdd82fccfa15933033646c9436313b399d528",
      "tree": "20446e27ec69fa1f2588ac166a85b4e25f9cf861",
      "parents": [
        "6f2960c633d6928fe8491a4bbb1e1eae82f25188",
        "dbb9aef046301940d0b253c918a5c78b277330ba"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 04 17:52:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 04 17:52:28 2017 +0000"
      },
      "message": "Merge \"Log at places we fail to compile.\""
    },
    {
      "commit": "6f2960c633d6928fe8491a4bbb1e1eae82f25188",
      "tree": "b23c7b70c4d06900ed1710f07e017092f054d6b9",
      "parents": [
        "e24847c2222b41c140adeda9e7dd16adac414131",
        "206070c99219584d9b873a8a17aad3a213128575"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Dec 04 17:49:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 04 17:49:00 2017 +0000"
      },
      "message": "Merge \"Enhance removed loads/substitutes in LSE.\""
    },
    {
      "commit": "fec85cdfa337dfb1f1c6d5bd9a940bc2d20a0edb",
      "tree": "ffb6eab50cd38f92631c2f2fb85accc7074b1221",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 04 13:00:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 04 15:22:50 2017 +0000"
      },
      "message": "Minor cleanup in CodeGenerator::RecordPcInfo().\n\nAnd remove HInvokeInterface::GetDexMethodIndex() as the\nbase class version is identical.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I489bff5b3f624eec19269487529e29d58f068960\n"
    },
    {
      "commit": "0259c24f5e83ab69b259245b645076b864b2e2ca",
      "tree": "20a12e5d7ac9c1bcbf8f4524583f016a53ae34ca",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 04 11:27:47 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 04 11:52:21 2017 +0000"
      },
      "message": "Fix a bug in String.charAt() simplification.\n\nDo not pass method index as a bool flag indicating that the\nHBoundsCheck originates from a String.charAt(). This was\nworking only thanks to the method index unlikely to be 0.\n\nThis bug was introduced in\n    https://android-review.googlesource.com/321573 .\n\nTest: Rely on TreeHugger.\nBug: 30933338\nChange-Id: I2a51e478ee145d342af8cd49f9fdec7adffd77ff\n"
    },
    {
      "commit": "3853017d05d5395250882c68482d8168a0392391",
      "tree": "a591eb83627e99a4d92108f26dd42629a1ebc360",
      "parents": [
        "c5bf424c340e5610f6677b1ca0a2ae27df43d0d9"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Thu Nov 16 11:11:50 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Mon Dec 04 11:47:18 2017 +0100"
      },
      "message": "MIPS: Improve HandleBinaryOp (Add/Sub) for constant inputs\n\nTest: ./testrunner.py --optimizing --target\nChange-Id: I35154a85f16b4f46d3b4d5827b130b1e20153461\n"
    },
    {
      "commit": "206070c99219584d9b873a8a17aad3a213128575",
      "tree": "85537591c9d3345ccd978cd017a93c2adb0adafe",
      "parents": [
        "45d3efbc433e321d0fdb3de54b01cf056c3d85ba"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 29 23:01:58 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Sun Dec 03 23:14:53 2017 -0800"
      },
      "message": "Enhance removed loads/substitutes in LSE.\n\nLSE does load removal in the end in order to maintain the validity of\nall the heap locations collected in the first pass. We should however\nproactively retrieve a removed load\u0027s substitute as its value. This\nsimplifies the handling of substitutes by making sure the substitute\nitself has no substitute. It also enables some additional optimizations\nby using the true heap value for merging/same-value test, etc.\n\nTest: run-test on host.\nChange-Id: I26d97e7794d80a141ab02bf446dd07656f5cde1d\n"
    },
    {
      "commit": "2a8cbb865ed5fe2f85747facf963197806400dc3",
      "tree": "301b98181f70134eefa062bf1336b701a8c2f2d0",
      "parents": [
        "c3f35f2f008737bc455b16af12b32e2a03eb9cd0",
        "dbd4303b0da3bd30f53479c14ef541441c8d01f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Sat Dec 02 13:30:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 02 13:30:38 2017 +0000"
      },
      "message": "Merge \"MIPS: Improve BoundsCheck for constant inputs\""
    },
    {
      "commit": "6b1aebe3612a6e87d7d1847ccca0d7a213cd22a2",
      "tree": "8348a6b921579a33e5c1fc07ac55e6e730dda670",
      "parents": [
        "45d3efbc433e321d0fdb3de54b01cf056c3d85ba"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Nov 27 15:39:04 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 01 10:53:46 2017 -0800"
      },
      "message": "Allow devirtualized method to be intrinsified.\n\nFor a invocation that\u0027s devirtualized to a different method, try\nto give intrinsics matching an opportunity before trying to inline it.\n\nTest: run-test on host. 638-checker-inline-cache-intrinsic.\nChange-Id: I51f70835db4c07575c58872a64a603a38dbcb89c\n"
    },
    {
      "commit": "45d3efbc433e321d0fdb3de54b01cf056c3d85ba",
      "tree": "a41e4de262f07eaba0611d23de36407d13ed9686",
      "parents": [
        "d40e416f329fa7d7a3ad9cf1bcfbc5eb8137cbc4",
        "75bb2f3c85330b2aeba9e0a4a25f7eb059bcd754"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 01 18:00:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 01 18:00:49 2017 +0000"
      },
      "message": "Merge \"Type conversion elimination of constants\""
    },
    {
      "commit": "dbd4303b0da3bd30f53479c14ef541441c8d01f7",
      "tree": "30f71b12c47f9f148cd694dffdd0efe248aaf1d0",
      "parents": [
        "d40e416f329fa7d7a3ad9cf1bcfbc5eb8137cbc4"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Wed Nov 15 16:31:56 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Fri Dec 01 17:46:04 2017 +0100"
      },
      "message": "MIPS: Improve BoundsCheck for constant inputs\n\nNote: All tests were executed on CI20 (MIPS32R2) and in\n      QEMU (MIPS32R6 and MIPS64R6).\n\nTest: ./testrunner.py --optimizing --target\nTest: mma test-art-target-gtest\n\nChange-Id: I012fb1013af43d5669a9b0080d481da28ffa7ef2\n"
    },
    {
      "commit": "dbb9aef046301940d0b253c918a5c78b277330ba",
      "tree": "8803fa971c0200d56aa8eba7386374eecda01c17",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 10:44:11 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 01 13:03:29 2017 +0000"
      },
      "message": "Log at places we fail to compile.\n\nUseful when diagnosing some compiler issues / limitations.\n\nTest: test.py\n\nChange-Id: I8759d0e78b0682b300ddcadfe02793432cab2036\n"
    },
    {
      "commit": "75bb2f3c85330b2aeba9e0a4a25f7eb059bcd754",
      "tree": "2e9c2884dc546540c66b057374822a45f7d9a414",
      "parents": [
        "1f541bf57dfdfe4faf169b811aadb91298a886ca"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 30 14:45:44 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 30 14:45:44 2017 -0800"
      },
      "message": "Type conversion elimination of constants\n\nA better way of eliminating type conversion for constants.\n\nTest: run-test on host. 711-checker-type-conversion.\nChange-Id: I457bc091542a5ac4cc4e77cadb012ee7cb040ce8\n"
    },
    {
      "commit": "a43a89470597a1d34a403add4f82cfc155e7bc33",
      "tree": "98f524c6aa848a9fb55485bd8a1df821d9b4aa44",
      "parents": [
        "0b0d03d51483c4c87e5cac4d49044cee245f365c",
        "2196c651ecc77e49992c6c329dfce45f78ff46cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 18:22:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 18:22:13 2017 +0000"
      },
      "message": "Merge \"Revert^4 \"JIT JNI stubs.\"\""
    },
    {
      "commit": "8fd50150610637dd981bd3610738219c078d0124",
      "tree": "c40a0b6b093cd6bc3838b134a93e8b64725b007e",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e",
        "4e30b902edd68e7008685afe014ba6443b33b7a7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Nov 30 18:05:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 18:05:40 2017 +0000"
      },
      "message": "Merge \"Use symbolic rather than duplicate string for pass.\""
    },
    {
      "commit": "2196c651ecc77e49992c6c329dfce45f78ff46cb",
      "tree": "4eb151632fc7b851101b4264286ce5e900fa06b5",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:16:07 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:20:39 2017 +0000"
      },
      "message": "Revert^4 \"JIT JNI stubs.\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhas a bug fixed in the Revert^2,\n    https://android-review.googlesource.com/550579 ,\nand this Revert^4 adds two more fixes:\n    - fix obsolete native method getting interpreter\n      entrypoint in 980-redefine-object,\n    - fix random JIT GC flakiness in 667-jit-jni-stub.\n\nTest: testrunner.py --host --prebuild --no-relocate \\\n      --no-image --jit -t 980-redefine-object\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 056d7756152bb3ced81dd57781be5028428ce2bd.\n\nChange-Id: Ic778686168b90e29816fd526e23141dcbe5ea880\n"
    },
    {
      "commit": "8f8bd8bfce0f2433bc66ac90a471e5f58cd2e2cc",
      "tree": "cbcfcee8846c8f9298b64f52e3523d2268e179ca",
      "parents": [
        "111b7d409a3f77cb0d16bc1df74a3a698795c1d1",
        "056d7756152bb3ced81dd57781be5028428ce2bd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 09:12:35 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT JNI stubs.\"\"\"\""
    },
    {
      "commit": "056d7756152bb3ced81dd57781be5028428ce2bd",
      "tree": "154ae8968a450a2e02d88207fa09e380fd380553",
      "parents": [
        "e7441631a11e2e07ce863255a59ee4de29c6a56f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT JNI stubs.\"\"\"\n\nStill seeing occasional failures on 667-jit-jni-stub\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit e7441631a11e2e07ce863255a59ee4de29c6a56f.\n\nChange-Id: I3db751679ef7bdf31c933208aaffe4fac749a14b\n"
    },
    {
      "commit": "4e30b902edd68e7008685afe014ba6443b33b7a7",
      "tree": "970b12a25170ea3bb23d6c62c304cf1edae61c1d",
      "parents": [
        "1f541bf57dfdfe4faf169b811aadb91298a886ca"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 29 16:53:25 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 29 16:53:57 2017 -0800"
      },
      "message": "Use symbolic rather than duplicate string for pass.\n\nTest: none\n\nChange-Id: Ia912d75e72e7002d098db80ec88f82775d88f6cc\n"
    },
    {
      "commit": "50f90a44f8cd1928054245cab4cd3bd47a1a6347",
      "tree": "a410c463e12d6b99f341ed1c24cd5d3cf0325938",
      "parents": [
        "a602c56ba1a82d70eb40de35e7c716477a46ee28",
        "e7441631a11e2e07ce863255a59ee4de29c6a56f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 16:21:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 16:21:58 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT JNI stubs.\"\"\""
    },
    {
      "commit": "a602c56ba1a82d70eb40de35e7c716477a46ee28",
      "tree": "d0f253b21fc8f792dd09afe58743e9c2f2b5150b",
      "parents": [
        "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f",
        "4c71d00f3bee9ae7a3e14ca6629e9e0cb4e25fd8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 15:16:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 15:16:42 2017 +0000"
      },
      "message": "Merge \"ART: Remove nested SOA in intrinsics code\""
    },
    {
      "commit": "e7441631a11e2e07ce863255a59ee4de29c6a56f",
      "tree": "a0488fac018ea391d01b751b7254719937bdee8f",
      "parents": [
        "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 13:00:56 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 14:04:26 2017 +0000"
      },
      "message": "Revert \"Revert \"JIT JNI stubs.\"\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhad a bug for class unloading where a read barrier was\nexecuted at the wrong time from\n    ConcurrentCopying::MarkingPhase() -\u003e\n    ClassLinker::CleanupClassLoaders() -\u003e\n    ClassLinker::DeleteClassLoader() -\u003e\n    JitCodeCache::RemoveMethodsIn() -\u003e\n    JitCodeCache::JniStubKey::UpdateShorty() -\u003e\n    ArtMethod::GetShorty().\nThis has been fixed by removing sources of the read barrier\nfrom ArtMethod::GetShorty().\n\nTest: testrunner.py --host --prebuild --jit --no-relocate \\\n      --no-image -t 998-redefine-use-after-free\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 47d31853e16a95393d760e6be2ffeeb0193f94a1.\n\nChange-Id: I06e7a15b09d9ff11cde15a7d1529644bfeca15e0\n"
    },
    {
      "commit": "4c71d00f3bee9ae7a3e14ca6629e9e0cb4e25fd8",
      "tree": "82258037251b8e0ae1c70fdb5b517a74f62ae4f7",
      "parents": [
        "299c1e168bde2039586d2486e52c73abbcec93b1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 29 11:03:25 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 29 11:03:25 2017 +0000"
      },
      "message": "ART: Remove nested SOA in intrinsics code\n\nRemoves a couple of unnecessary SOA instances.\n\nBug: 69622155\nTest: m -j32\nChange-Id: I92e194096faeb4a83e4972d745bd8182ce8f820c\n"
    },
    {
      "commit": "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f",
      "tree": "154ae8968a450a2e02d88207fa09e380fd380553",
      "parents": [
        "299c1e168bde2039586d2486e52c73abbcec93b1",
        "2d8801f7b932496d5c2606294ff8fdea60e05b30"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 29 10:18:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 10:18:30 2017 +0000"
      },
      "message": "Merge \"Clean some dex2oat options.\""
    },
    {
      "commit": "299c1e168bde2039586d2486e52c73abbcec93b1",
      "tree": "aba3013617f53f93006f4046328263798e522fd0",
      "parents": [
        "abda3861f3f596ebdc9893f783ddac361710ab7b",
        "47d31853e16a95393d760e6be2ffeeb0193f94a1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 20:06:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 28 20:06:01 2017 +0000"
      },
      "message": "Merge \"Revert \"JIT JNI stubs.\"\""
    },
    {
      "commit": "abda3861f3f596ebdc9893f783ddac361710ab7b",
      "tree": "b9a76a4c2e63d78465a03fabbb929782a0d98a41",
      "parents": [
        "23f8f50ace964ed597261f19e87ac050f415957e",
        "b1b52069dcb1228f89511ffb41592beebe4d8ea3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 19:50:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 28 19:50:14 2017 +0000"
      },
      "message": "Merge \"ART: Fix invoke-polymorphic compiler warnings\""
    },
    {
      "commit": "47d31853e16a95393d760e6be2ffeeb0193f94a1",
      "tree": "344b0fddbbcc9a64bed2ba20dbe73fb227c2bdf4",
      "parents": [
        "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "message": "Revert \"JIT JNI stubs.\"\n\nSeems to break 998-redefine-use-after-free in\nsome --no-image configuration.\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 3417eaefe4e714c489a6fb0cb89b4810d81bdf4d.\n\nChange-Id: I2dd157b931c17c791522ea2544c1982ed3519b86\n"
    },
    {
      "commit": "2d8801f7b932496d5c2606294ff8fdea60e05b30",
      "tree": "8f87764977fb77e3f74c97d5165f36220de42632",
      "parents": [
        "986005c955860a69d788f7ff7d7f28964eb684ad"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:50:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:55:44 2017 +0000"
      },
      "message": "Clean some dex2oat options.\n\nRemove dump-passes inherited from Quick days,\nand move dump-timings and dump-stats to CompilerStats.\n\nTest: test.py\nChange-Id: Ie79be858a141e59dc0b2a87d8cb5a5248a5bc7af\n"
    },
    {
      "commit": "b1b52069dcb1228f89511ffb41592beebe4d8ea3",
      "tree": "32a9ca9025801fbd24184de84798990992f605f9",
      "parents": [
        "5387bc5979c8984aabde455a80692f080d823c89"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 27 11:51:42 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 28 13:55:22 2017 +0000"
      },
      "message": "ART: Fix invoke-polymorphic compiler warnings\n\nStops recognizing polymorphic signature methods as potential compiler\nintrinsics until implemented.\n\nTest: m -j32\nBug: 69622155\nBug: 65872996\nChange-Id: I1392e7a91dfbb29d526dbe561f3a8c89e3218da8\n"
    },
    {
      "commit": "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d",
      "tree": "fe97f5191d25d26ef4250280f4c599b3a50f2059",
      "parents": [
        "7bdc6e73fd97eb75f30b77f183e4fe6c2c599a09"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 18:14:28 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 13:00:09 2017 +0000"
      },
      "message": "JIT JNI stubs.\n\nAllow the JIT compiler to compile JNI stubs and make sure\nthey can be collected once they are not in use anymore.\n\nTest: 667-jit-jni-stub\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --jit\nTest: testrunner.py --target --jit\nBug: 65574695\nChange-Id: Idf81f50bcfa68c0c403ad2b49058be62b21b7b1f\n"
    },
    {
      "commit": "7bdc6e73fd97eb75f30b77f183e4fe6c2c599a09",
      "tree": "344b0fddbbcc9a64bed2ba20dbe73fb227c2bdf4",
      "parents": [
        "5387bc5979c8984aabde455a80692f080d823c89"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 12:37:13 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 13:00:09 2017 +0000"
      },
      "message": "ART: Minor refactoring of JNI stub compilation.\n\nIntroduce JniCompiledMethod to avoid JNI compiler dependency\non CompiledMethod. This is done in preparation for compiling\nJNI stubs in JIT as the CompiledMethod class should be used\nexclusively for AOT compilation.\n\nTest: m test-art-host-gtest\nBug: 65574695\nChange-Id: I1d047d4aebc55057efb7ed3d39ea65600f5fb6ab\n"
    },
    {
      "commit": "5387bc5979c8984aabde455a80692f080d823c89",
      "tree": "747adadb8f5e9ef014195c783c54e8a317a34769",
      "parents": [
        "e1b6d7b8661f4fcaff7bf49348e8644e4a338166",
        "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 21:09:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 21:09:54 2017 +0000"
      },
      "message": "Merge \"Fix stats reporting over 100% methods compiled.\""
    },
    {
      "commit": "e1b6d7b8661f4fcaff7bf49348e8644e4a338166",
      "tree": "017a220148b6fd7e95fa07cdbb72861e023b3021",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994",
        "cebb5e709af5ed5b475a56743f984967d991e7b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 19:53:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 19:53:45 2017 +0000"
      },
      "message": "Merge \"type conversion elimination for constant input\""
    },
    {
      "commit": "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70",
      "tree": "535f7f75849af30b67c560804125ead95909d72b",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 24 15:02:40 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 27 19:02:34 2017 +0000"
      },
      "message": "Fix stats reporting over 100% methods compiled.\n\nAdd statistics for intrinsic and native stub compilation\nand JIT failing to allocate memory for committing the\ncode. Clean up recording of compilation statistics.\n\nNew statistics when building aosp_taimen-userdebug boot\nimage with --dump-stats:\n  Attempted compilation of 94304 methods: 99.99% (94295) compiled.\n  OptStat#AttemptBytecodeCompilation: 89487\n  OptStat#AttemptIntrinsicCompilation: 160\n  OptStat#CompiledNativeStub: 4733\n  OptStat#CompiledIntrinsic: 84\n  OptStat#CompiledBytecode: 89478\n  ...\nwhere 94304\u003d89487+4733+84 and 94295\u003d89478+4733+84.\n\nTest: testrunner.py -b --host --optimizing\nTest: Manually inspect output of building boot image\n      with --dump-stats.\nBug: 69627511\nChange-Id: I15eb2b062a96f09a7721948bcc77b83ee4f18efd\n"
    },
    {
      "commit": "e60248d87df70f0e7a9496c6b92df022fed532bd",
      "tree": "1589ab9f54ee620c652ca2fea96cad7637bf00f2",
      "parents": [
        "b656fcbc280359872a129446be54a6c3563010b1",
        "f0010dd946b17490d2f792d845ea4f304a0bea28"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 16:58:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 16:58:28 2017 +0000"
      },
      "message": "Merge \"Apply individual intrinsic recognition during inliner.\""
    },
    {
      "commit": "f0010dd946b17490d2f792d845ea4f304a0bea28",
      "tree": "e68b071ef742766090d722129c8c1d04ba2f90b0",
      "parents": [
        "6f99acac2e1d60dfb1ed45ce69ec5a542847687e"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Nov 21 16:31:53 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 24 17:06:40 2017 -0800"
      },
      "message": "Apply individual intrinsic recognition during inliner.\n\nRationale:\nInliner could introduce new method calls, in particular\nit could change invoke-interface to invoke-virtual,\nwhich could expose new intrinsics. This situation\nhappens, for example, in Kotlin generated code where\nString operations first go through the CharSequence\ninterface. Rather than running a full new phase,\nwe just recognize intrinsics when interface calls\nare replaced by virtual calls.\n\nThis optimization boosts KotlinMicroItems by 100%\n\nTest: test-art-host test-art-target\n\nChange-Id: Ibd0519283d67ed6997b056e34b4eafdd49fcbc2d\n"
    },
    {
      "commit": "67ab1c5517c7f6ac485f218c903db8da59f40ed7",
      "tree": "927db938f4a5a16c19036809cd19cabad1d667e0",
      "parents": [
        "cf35bb5b2a25764800c1edf61c91ea4d0cd5c718",
        "58cc1cb66c1a96ffba4a314edb2c5b4e8b235d5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 14:14:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 23 14:14:42 2017 +0000"
      },
      "message": "Merge \"Pass the debug_info_offset explicitly.\""
    },
    {
      "commit": "58cc1cb66c1a96ffba4a314edb2c5b4e8b235d5b",
      "tree": "ed00c90ab564c54ae4f09a4acbc5f3ffa65b9e71",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 20 13:27:29 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 10:44:47 2017 +0000"
      },
      "message": "Pass the debug_info_offset explicitly.\n\nIn order to use debug_info_offset for encoding implementation details,\nrewrite all indirect users of it to fetch it before calling DexFile\nmethods.\n\nThis allows keeping the DexFile interface clean of runtime\nconsiderations.\n\nTest: test.py\nChange-Id: I4591e0039b5f822f4409aae411071ecbe97082b1\n"
    },
    {
      "commit": "71bb96894228c1e2408ccaea0c42159b5f550336",
      "tree": "6c5e55b147460cb5c614648b11b2f75f06e2d3cc",
      "parents": [
        "6d95c80a221358b4afff4aabf62c7c7dd9de9163",
        "f3c52b42a035902245d00a619fed0275afb063d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "message": "Merge \"Fill Class and String .bss slots in runtime.\""
    },
    {
      "commit": "cebb5e709af5ed5b475a56743f984967d991e7b9",
      "tree": "db2b6c243606979c905ec10a5cced999eba0f209",
      "parents": [
        "8cceb1faf894c26b89ceacd3d60599fe0b4b93b7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Nov 21 14:44:54 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 22 10:46:57 2017 -0800"
      },
      "message": "type conversion elimination for constant input\n\ntype conversion on constant input can be eliminated if the constant\nvalue falls in the result type\u0027s range.\n\nTest: run-test on host, 711-checker-type-conversion\nChange-Id: I372139d681aa06fa6e760d7814c86ac949292813\n"
    },
    {
      "commit": "6d95c80a221358b4afff4aabf62c7c7dd9de9163",
      "tree": "d3f0b37635f62abff2ef4457c004405890362b21",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357",
        "ceb06932313e5146c39fc80d6c3911daa10c534c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 22 16:56:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 22 16:56:50 2017 +0000"
      },
      "message": "Merge \"Recognize countable \"break\" loops\""
    },
    {
      "commit": "f3c52b42a035902245d00a619fed0275afb063d2",
      "tree": "c46dab07826be55e9ca92ab301eed586c2f307ca",
      "parents": [
        "b360bff818ad0bf59668cd2bebaaeeaa8a3b5dfe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 17 17:32:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 21 17:09:44 2017 +0000"
      },
      "message": "Fill Class and String .bss slots in runtime.\n\nShift the responsibility for filling Class and String .bss\nslots from compiled code to runtime. This reduces the size\nof the compiled code.\n\nMake oatdump list .bss slot mappings (ArtMethod, Class and\nString) for each dex file.\n\naosp_taimen-userdebug boot image size:\n  - before:\n    arm boot*.oat: 36534524\n    arm64 boot*.oat: 42723256\n  - after:\n    arm boot*.oat: 36431448 (-101KiB, -0.3%)\n    arm64 boot*.oat: 42645016 (-76KiB, -0.2%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nTest: m dump-oat, manually inspect output.\nBug: 65737953\nChange-Id: I1330d070307410107e12c309d4c7f8121baba83c\n"
    },
    {
      "commit": "68351ebf5b44989f7ccd75933f1f4093a8d3b670",
      "tree": "a0716ffc78d9bd115eca545e70c4ada0facbf3a8",
      "parents": [
        "b360bff818ad0bf59668cd2bebaaeeaa8a3b5dfe",
        "cced8ba4245a061ab047a0a6882468d75d619dd9"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Nov 21 16:56:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 21 16:56:28 2017 +0000"
      },
      "message": "Merge \"ART: Introduce individual HInstruction cloning.\""
    },
    {
      "commit": "ceb06932313e5146c39fc80d6c3911daa10c534c",
      "tree": "1593fb926606899b7a22399d12e24da5ec6fa018",
      "parents": [
        "cb90e3a29041ea55c4b5eb3d1477aa360381a1f1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 13 10:31:17 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 20 12:46:37 2017 -0800"
      },
      "message": "Recognize countable \"break\" loops\n\nRationale:\nA particular break loop is generated by e.g. Kotlin\n(or it can be expressed in Java as well) if the upper\n(or lower) bound is inclusive, but a comparison test\nwould be too dangerous. The ART compiler often has\nbetter range analysis (e.g. after inlining) to convert\nsuch constructs back to countable loops, which are\nmore amenable to optimizations. For instance, we get\nmore than 200% improvement on the KotlinMicroLoops\nbenchmark, while close to 70 loops are recognized\nin the Kotlin support library itself.\n\nBug: 67601686\n\nTest: test-art-host test-art-target\nChange-Id: I67e5c832df57e096efe2cf43a8579d9c10ca33e6\n"
    },
    {
      "commit": "2ca10eb3f47ef3c2535c137853f7a63d10bb908b",
      "tree": "3684d1d5ef4791795b64620e97f952896c5a2011",
      "parents": [
        "02f41015a0933f146b886c62bb5b02c322ddf882"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 15 15:17:53 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 20 10:38:26 2017 -0800"
      },
      "message": "Refactored optimization passes setup.\n\nRationale:\nRefactors the way we set up optimization passes\nin the compiler into a more centralized approach.\nThe refactoring also found some \"holes\" in the\nexisting mechanism (missing string lookup in\nthe debugging mechanism, or inablity to set\nalternative name for optimizations that may repeat).\n\nBug: 64538565\n\nTest: test-art-host test-art-target\nChange-Id: Ie5e0b70f67ac5acc706db91f64612dff0e561f83\n"
    },
    {
      "commit": "5573c37e795668eca81a8488078f798d977685c3",
      "tree": "5e7675d6c1ca9ed1c31834e52282bfb9f73dc2a4",
      "parents": [
        "1598a77ca3559c8a59902f26ee887504b8159859"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 16 13:34:30 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 16 14:42:49 2017 -0800"
      },
      "message": "cpplint: Remove many unnecessary NOLINT\n\nNow that we updated to upstream cpplint, a lot of these NOLINTs are no\nlonger necessary.\n\nBug: 68951293\nChange-Id: If8ed5ffe89727f313f907a214b6d8fd2a2eddbad\n"
    },
    {
      "commit": "1598a77ca3559c8a59902f26ee887504b8159859",
      "tree": "70c18a32da01245cb8362d0cce178096030d681c",
      "parents": [
        "2d774be3d229ece40a2ab3fc49355fea876adcf5",
        "46721ef33e8f5cd405c291d72e3f259e3085fb5f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 19:00:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 16 19:00:29 2017 +0000"
      },
      "message": "Merge \"Don\u0027t merge values for exit block in LSE.\""
    },
    {
      "commit": "46721ef33e8f5cd405c291d72e3f259e3085fb5f",
      "tree": "88709396bf7439400125f5d5c1883a42826cd5ca",
      "parents": [
        "6b337da6e9498e62b4c3e399366be7ad3b99169e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 05 14:45:17 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 16 09:10:32 2017 -0800"
      },
      "message": "Don\u0027t merge values for exit block in LSE.\n\nThis enables some additional optimizations since exit block doesn\u0027t\nreally merge values.\n\nTest: run-test on host.\nChange-Id: I21ed7e0e43a3bc5d9ed2dabfad8462129b904eb7\n"
    },
    {
      "commit": "2d774be3d229ece40a2ab3fc49355fea876adcf5",
      "tree": "ff699757aea5d2854227e68c90a553063981812d",
      "parents": [
        "9a38a69725549b605408ceac5c80dfd951775590",
        "92f7f3ce3b01f7c7df1c15b81c900e087248093f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 16 14:21:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 16 14:21:17 2017 +0000"
      },
      "message": "Merge \"Use intrinsic codegen for compiling intrinsic methods.\""
    },
    {
      "commit": "92f7f3ce3b01f7c7df1c15b81c900e087248093f",
      "tree": "37647ac824e450f80d752539cabbe631ba795c75",
      "parents": [
        "5dcb0d2cabe9d67987a6a7477fb124cef92abefb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 31 11:38:30 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 15 14:29:52 2017 +0000"
      },
      "message": "Use intrinsic codegen for compiling intrinsic methods.\n\nWhen compiling an intrinsic method, generate a graph that\ninvokes the same method and try to compile it. If the call\nis actually intrinsified (or simplified to other HIR) and\nyields a leaf method, use the result of this compilation\nattempt, otherwise compile the actual code or JNI stub.\n\nNote that CodeGenerator::CreateThrowingSlowPathLocations()\nactually marks the locations as kNoCall if the throw is not\nin a catch block, thus considering some throwing methods\n(for example, String.charAt()) as leaf methods.\n\nWe would ideally want to use the intrinsic codegen for all\nintrinsics that do not generate a slow-path call to the\ndefault implementation. Relying on the leaf method is\nsuboptimal as we\u0027re missing out on methods that do other\ntypes of calls, for example runtime calls. This shall be\nfixed in a subsequent CL.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 67717501\nChange-Id: I640fda7c22d4ff494b5ff77ebec3b7f5f75af652\n"
    },
    {
      "commit": "38e380b3c5139c0993495a7a0f040bfe8aa1e9e9",
      "tree": "6dec57248cda239cd79c81bb44037ed2783a9e48",
      "parents": [
        "1121e0a658be73c5bc494df99ceb84513a65c8a8"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Mon Oct 30 16:17:10 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Wed Nov 15 10:23:29 2017 +0100"
      },
      "message": "MIPS: Implement Sum-of-Abs-Differences\n\nTest: test-art-host test-art-target\n\nChange-Id: I32a3e21f96cdcbab2e108d71746670408deb901a\n"
    },
    {
      "commit": "eab2b429ee036134f85620cac84a18b8df71fded",
      "tree": "9d2c09a0add8781e2bc1c465bfd98e5ab6977dea",
      "parents": [
        "8050453ed536fea8dbcd51a6f882b13d334e60ee",
        "8eaa8e59c95aac26cc072cdbaaccd8f3976f113d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 15:38:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 14 15:38:58 2017 +0000"
      },
      "message": "Merge \"Remove kIsVdexEnabled.\""
    },
    {
      "commit": "8eaa8e59c95aac26cc072cdbaaccd8f3976f113d",
      "tree": "613ebe58b921780913a417f09b0f2a0f686c89d8",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 17:47:50 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 09:48:17 2017 +0000"
      },
      "message": "Remove kIsVdexEnabled.\n\nIt is now always assumed there is one.\n\nTest: test.py\nChange-Id: I8f3f5c722fb8c4a0f9ad8ea685d1a956bd0ac9ae\n"
    },
    {
      "commit": "3da1d0f0881e130ebab95e2d06abe7d2beff57f0",
      "tree": "00b655e97955b317e995e4884ac726a1146b489d",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 20:02:24 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 13 09:18:38 2017 -0800"
      },
      "message": "Use CodeItemAccessor helpers for method verifier\n\nCreate a code_item_accessor_ in the verifier and replace the existing\ncode_item field. Added some handling in DexFile to deal with\ntry/catch items.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I4e073c9cb29f94518f0016fccbe1628185884df4\n"
    },
    {
      "commit": "01354124bcc2d4d4707429cccf241e858f7fcf40",
      "tree": "e14f41ca7ba61d78abd376115cec1865629431af",
      "parents": [
        "52ccbde5d6c3d677d94ea64e6f333522a741f114",
        "8c4ddb242f48dad200fc0a306cb2d97b28b33325"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:51:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 11:51:09 2017 +0000"
      },
      "message": "Merge \"Revert \"Support VecLoad and VecStore in LSE.\"\""
    },
    {
      "commit": "8c4ddb242f48dad200fc0a306cb2d97b28b33325",
      "tree": "444da1968d16015cbea9185ccd40a0489e6315aa",
      "parents": [
        "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "message": "Revert \"Support VecLoad and VecStore in LSE.\"\n\nSomehow, this breaks:\n./art/test/run-test --optimizing --64 --gcstress 667-checker-simd-alignment\n\nThis reverts commit 27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a.\n\nChange-Id: If552ebd8c14535c2eafbdc2ed0ff1f76ad29da35\n"
    },
    {
      "commit": "52ccbde5d6c3d677d94ea64e6f333522a741f114",
      "tree": "5cc9000b5d5304b39aa0f9d69610a49ccba7f2ce",
      "parents": [
        "784f4d825aaf25c92b8c9955f7c8f78b6ff786e1",
        "3e5fecdeacdacf847d376adb05a9ad5587648139"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 10:44:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 10:44:58 2017 +0000"
      },
      "message": "Merge \"MIPS32: Use conditional moves to compute 64-bit shifts.\""
    },
    {
      "commit": "0e3151b70450ce3ed81543c4b22d99069713f979",
      "tree": "a9e1a8667aed657229a14a17b1a138d8d27bc4ea",
      "parents": [
        "6fde072609bd65ee1e8bd71dec9bc5899c99f9d7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Oct 30 11:19:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 12:14:57 2017 -0800"
      },
      "message": "Improvement on array element aliasing analysis.\n\nMore robust array element aliasing analysis which covers aliasing\nbetween all heap locations.\n\nTest: run-test on host.\nTest: 530-checker-lse/load_store_analysis_test.cc cover array index aliasing.\nChange-Id: Ie0d1696bedb7811c6a4bc0786ef93ca724493de2\n"
    },
    {
      "commit": "6fde072609bd65ee1e8bd71dec9bc5899c99f9d7",
      "tree": "0f31e14c30cd629d7dfec4238e8e4622889d6f30",
      "parents": [
        "b3e7bcc737a5af57549e47370523912e31e434f7",
        "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 18:15:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 18:15:39 2017 +0000"
      },
      "message": "Merge \"Support VecLoad and VecStore in LSE.\""
    },
    {
      "commit": "e983b1658589e2a3d12620846b7e2351af26afa6",
      "tree": "4a5abce1e079b54262248fd809f02e97d120740a",
      "parents": [
        "77526ffcc5f25ef9c4aa4e87d416c22f2586cf17",
        "b0a6aeee250945b1d156ebab94053380f2e5a3c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 10 10:02:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 10:02:44 2017 +0000"
      },
      "message": "Merge \"Record @{Fast,Critical}Native in method\u0027s access flags.\""
    }
  ],
  "next": "b0a6aeee250945b1d156ebab94053380f2e5a3c5"
}
