)]}'
{
  "log": [
    {
      "commit": "b2ec9f5c128673c43f776cbe12c8eeb0a6884ebb",
      "tree": "724022162a4f3de021cebab32ee5ac67ec860f32",
      "parents": [
        "f13343eb8b2738e2812fd7bd9d5592f529e93c21"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 21 13:20:31 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 21 13:51:15 2018 -0800"
      },
      "message": "Remove duplication, split tests\n\nThe code move to libdexfile/dex/descriptors_names.cc apparently did not\nremove the original code from runtime/utils.cc.  Fix that duplication\nand all the header mentions needed.  Also, split the test files to go\nalong with the new locations for the code to be tested.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n      flash \u0026 boot marlin\n\nChange-Id: Ie734672c4bca2c647d8016291f910b5608674545\n"
    },
    {
      "commit": "d9e4d73b20d68aa387f5837e1535b6fc26b2859a",
      "tree": "b55a96e66f2db1482571788b33c6d3055cb47396",
      "parents": [
        "8dbb4ba7ffdf42cf08c55b117370efc0ec5357e8"
      ],
      "author": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Mon Feb 05 13:35:03 2018 +0530"
      },
      "committer": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Wed Feb 21 14:56:13 2018 +0530"
      },
      "message": "Fix iCache misses for GetKind on x86,x86_64\n\nGetKind() takes about 2.6% of total compilation time on x86_64.\nThe primary reason is that the target call GetKindInternal() is often\nbeyond the page boundary causing frequent i-cache misses.\nThis patch removes the virtual call to GetKindInternal () and instead\nkeeps the InstructionKind into each constructed instruction.\nSince we have about 121 instructions in total as of now,\nit takes about 7 extra bits in each instruction.\ndex2oat runs about 12% faster with --compiler-filter\u003deverything on an\nAPK of 25MB.\n\nTest: Tested the patch by running host art tests.\n\nRebased.\n\nChange-Id: Ia7bbcd67180151e4565507164a718acbb6284885\nSigned-off-by: Gupta Kumar, Sanjiv \u003csanjiv.kumar.gupta@intel.com\u003e\n"
    },
    {
      "commit": "59eb30f96d87e3e72a060099a292ae14dd5fe1c8",
      "tree": "49f9334a44a28eef8d0c35c6061c61743d4db4a8",
      "parents": [
        "5919f737facdebbe8b738272e681ae33e085de98"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 20 11:52:34 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 20 14:27:43 2018 +0000"
      },
      "message": "ART: Clean up patching data in codegens.\n\nReuse PatchInfo\u003c\u003e for additional architectures and make the\nnaming more consistent across architectures. Change the\nDexFile reference to pointer in preparation for patching\nreferences to the upcoming .data.bimg.rel.ro section.\n\nUpdate obsolete comments; instead of referencing dex cache\narrays which were used in the past, reference the .bss and\nthe .data.bimg.rel.ro which shall be used in upcoming CLs.\n\nTest: Rely on TreeHugger.\nChange-Id: I03be4c4118918189e55c62105bb594500c6a42c1\n"
    },
    {
      "commit": "ea179f477465789605e0c8f57a3ec660c3d852e8",
      "tree": "bde254b238c9ed42a5c0ae3ff14ffacadeeddb34",
      "parents": [
        "d991e5119a2bb61542899da9708f794dc60677c4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 08 22:30:18 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 15 15:47:02 2018 +0000"
      },
      "message": "Refactor method resolution in class linker.\n\nRewrite all runtime callers of DexCache::SetResolvedMethod\nto call a shared method that will do the dex cache update.\n\nbug: 64759619\nTest: test-art-host\nTest: device boots, runs\n\nChange-Id: Icc1aca121030e2864de09667bdbc793b502e3802\n"
    },
    {
      "commit": "f665f847744aef65f8d4ad46cbf410f911dbfb25",
      "tree": "85dbb3ea7f3f4b1d0c2464e705710b3d081e4124",
      "parents": [
        "6177ead17f46ec15ef024e50887ab12feafd7d6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 15 12:29:06 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 15 12:29:06 2018 +0000"
      },
      "message": "Pass the right dex_file/method_index for String.\u003cinit\u003e.\n\nPassing the dex file of the caller in instruction_builder.cc\nwas problematic as this information get lost at the point of RTP.\n\ntest: test.py\nChange-Id: I3f620b931544a538386d23c2456b182b3ed41091\n"
    },
    {
      "commit": "bdaec34cc04cd21b699c3ad3185dc709ce4d9b4a",
      "tree": "c7b6dad6ece69d8c5db195e8ab0641d92acc5ebe",
      "parents": [
        "faf76cbe55cc68836513d70b776481030fb2f677",
        "4b8025c448fa5ab703933de397489e770151300c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 12 16:26:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 12 16:26:32 2018 +0000"
      },
      "message": "Merge \"MIPS32 Implement signed 64-bit division by powers of 2\""
    },
    {
      "commit": "feec1679fa9281f3e18916cbd01216bf6388c6af",
      "tree": "54b17519484f68be2b5b7575e90507a398e29e3b",
      "parents": [
        "9b9458ae0bd76341b3f444ce27bb5f661188012c"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Thu Feb 08 10:20:14 2018 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Thu Feb 08 10:20:14 2018 +0100"
      },
      "message": "Add support for counting hotness in compiled code for MIPS\n\nThis is a follow up to I0f63c644527b74f6ef2649f481c2a1c731bb9f21.\nThis fixes 674-hotness-compiled test failures for MIPS32 and MIPS64.\n\nTest: ./testrunner.py --target --optimizing in QEMU\nChange-Id: I22eb02594518f315d9e3a3e5fa895a6833574bba\n"
    },
    {
      "commit": "249eeac1ee0124e68775dcdb3c1c4817dc24b3c4",
      "tree": "f5cc89ee96e51e179a3a889c5f9c09a8a253263f",
      "parents": [
        "e009de6bcb9e8c10f92469642e640517f9e1e754",
        "897df03ac6fa6d744a374cbdd610f36523c73905"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 07 23:49:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 07 23:49:22 2018 +0000"
      },
      "message": "Merge \"Added missing return.\""
    },
    {
      "commit": "f12c3092477b824b44bef06777688b80d6754b77",
      "tree": "ffaeac5af69ed7ce8969cd4b4fa21a8ca0d6a2e0",
      "parents": [
        "2e6d97bb6f5dbaa75e0b5700633311d40e880cc2",
        "7cf9af2ce0bb72c5bd2ff7c5bd82df5c05877355"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 07 22:26:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 07 22:26:51 2018 +0000"
      },
      "message": "Merge \"Do not eliminate array allocation if it may throw NegativeArraySizeException\""
    },
    {
      "commit": "897df03ac6fa6d744a374cbdd610f36523c73905",
      "tree": "8cef5ee731057cb5575235199f1a58201e1da1d7",
      "parents": [
        "129ebeef135c8534b47ebbafa57025dd55f8c723"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 07 13:29:11 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 07 14:04:38 2018 -0800"
      },
      "message": "Added missing return.\n\nRationale:\nSlightly more efficient to return right after !IsCompilable()\n(with a single message) than relying on falling into the\nnecessarily true IsMethodUnverified() (with another message).\nNote that this subtle change cannot be easily tested (since\nbehavior is the same), but e.g. 675-checker-unverified-method\nat least provides code coverage.\n\nBug: 72957776\nTest: test-art-host\nChange-Id: I7044e60e3c10367a1fa024573dc6dbbb5e9243ad\n"
    },
    {
      "commit": "7cf9af2ce0bb72c5bd2ff7c5bd82df5c05877355",
      "tree": "7cd74d68e4a43e1e82bcf3ca49017db5a0a39fa6",
      "parents": [
        "8bcecf915545581bf23b5348cd94d3f5ec6eb669"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 06 15:02:42 2018 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 07 10:33:41 2018 -0800"
      },
      "message": "Do not eliminate array allocation if it may throw NegativeArraySizeException\n\nBug: 70023972\nTest: run-test on host. 530-checker-lse.\nChange-Id: I00e2d69f82b3dda21559ffcba827e0a52d900ff1\n"
    },
    {
      "commit": "129ebeef135c8534b47ebbafa57025dd55f8c723",
      "tree": "f28784c459cb6c9754454ef3e850165d3236bb9a",
      "parents": [
        "5ffc54972c8a9a659b5735c0ae7bbcf170a783ba",
        "2c148f096f2784acd3fb78c4dea8b9f136b94b1b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 07 18:09:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 07 18:09:31 2018 +0000"
      },
      "message": "Merge \"Don\u0027t analyze methods with verification errors.\""
    },
    {
      "commit": "2c148f096f2784acd3fb78c4dea8b9f136b94b1b",
      "tree": "cf45443f228867c4c32161fc201710b74e759b3c",
      "parents": [
        "3e7110755fdbcd754aac32aa86d5d54b2476c9b4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Feb 02 14:30:35 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 07 07:52:47 2018 -0800"
      },
      "message": "Don\u0027t analyze methods with verification errors.\n\nWith regression test!\n\nBug: 72874888\n\nTest: test-art-host\n\nChange-Id: Icb3ec5dbfa14a1f77da681ba7e100ec9a5ab9ba6\n"
    },
    {
      "commit": "e0d8bd4b7ffdd60d430f1637e20c5fc1ce5a5d86",
      "tree": "0dd024bef27ee09512a1b7ed1fcc2dbfaa15e462",
      "parents": [
        "066532ee57cf48f5666ace3de969981f4f494126",
        "a354053541f478ff4f6dcba4dc7cc236e1718aaa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 05 18:26:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 05 18:26:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"More general store elimination\"\"\""
    },
    {
      "commit": "669669c588c7942a1cb341228abd1eeb8f6a1a0d",
      "tree": "a453c21fa221ffa7e12903ca1a7269310cedebe5",
      "parents": [
        "09f86297e7f82176fb8bb78fee86249e012c3af7",
        "4c563caaf860f1ed956854514e751e2d0f075c9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 05 16:56:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 05 16:56:14 2018 +0000"
      },
      "message": "Merge \"Exploit non-null control dependence.\""
    },
    {
      "commit": "a354053541f478ff4f6dcba4dc7cc236e1718aaa",
      "tree": "1b07fd636ab53d692a7bbe1a76e8edc340a159df",
      "parents": [
        "e65948f7c78919083224c1cd2ca47e827ced6d3e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 25 12:17:28 2018 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Feb 02 15:29:07 2018 -0800"
      },
      "message": "Revert \"Revert \"More general store elimination\"\"\n\nThis reverts commit e97949e878bb364adadc167ac158ffc9660ce996.\n\nA store before an invocation that only has write side effects\n(true for some intrinsics) needs to be kept since the store isn\u0027t used\nto track the heap value anymore.\n\nTest: ART_TEST_OPTIMIZING\u003dtrue ./test.py -j20 --host --run-test -b\nTest: using the device (marlin) with the CL.\n\nBug: 35745320\nBug: 72440777\n\nChange-Id: I0d1ce499008553e48ecca50f9ad94bb7c8c07583\n"
    },
    {
      "commit": "4c563caaf860f1ed956854514e751e2d0f075c9a",
      "tree": "f18359e3c3eda62b1764db37a8a04e9e7161b238",
      "parents": [
        "3e7110755fdbcd754aac32aa86d5d54b2476c9b4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 24 16:34:25 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Feb 02 13:29:50 2018 -0800"
      },
      "message": "Exploit non-null control dependence.\n\nRationale:\nUsing the fact that object is non-null in a taken branch\nof a object !\u003d null test enables the removal of null checks\n(as well as some other related optimizations). This CL exposes\nmany more cases than were detected by the builder alone.\nThis is in particular useful for Kotlin programs, where the\nnon-nullable library calls (together with the new always-throws\ndetection) introduce many dominating object !\u003d null tests!\n\nTest: test-art-host test-art-target\n\nBug: b/63711884\n\nChange-Id: I8df8a750a4184b11f8758e978f09c5181d93ea25\n"
    },
    {
      "commit": "e65948f7c78919083224c1cd2ca47e827ced6d3e",
      "tree": "1a36cf65ad069a0bab733d8d089c741301266dca",
      "parents": [
        "527984ac7329bdd4a492bd65b08848c9e6b9733e",
        "10049555c7504632beee8b6145fdcade7f31de62"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 02 16:56:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 02 16:56:24 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ARM: Use r4 for stack overflow check to reduce code size.\"\""
    },
    {
      "commit": "833529f8174361c0a249e16df3efc5472e0aea19",
      "tree": "088ce953b7de51dc5bc65d192db86d35134c6720",
      "parents": [
        "97f1e04d861efae42e15acfd100045528d692bbe",
        "fb3de3d72832177e4a8d1f322ed11cbe58e45c9f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 02 16:11:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 02 16:11:25 2018 +0000"
      },
      "message": "Merge \"Create list of open dex files for libbacktrace.\""
    },
    {
      "commit": "10049555c7504632beee8b6145fdcade7f31de62",
      "tree": "259db3e05ada3eef0b16a2df0961be398ce59d92",
      "parents": [
        "f346af51a5d44ee0a3cd26e7e0e1b28ec1c5579f"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Jan 31 17:10:36 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 02 15:15:21 2018 +0000"
      },
      "message": "Revert^2 \"ARM: Use r4 for stack overflow check to reduce code size.\"\n\nThis reverts commit 1a4f3ca8b04d9f2e42cdadc597559c242d003656.\n\nThis CL fixed a bug in the original CL that it didn\u0027t check\nR4 in blocked registers before using it code generator.\n\nTest: m test-art-target-gtest\nTest: test-art-target-gtest-scheduler_test\n\nBug: 72428887\nBug: 71627785\n\nChange-Id: I85b5862f1d78e9065ea37e38746580fc345a2a15\n"
    },
    {
      "commit": "6831209ae9a8c73430183feaf045c1ab894990ee",
      "tree": "fb18f046f7c99338dde332a47927b428c89b2176",
      "parents": [
        "2827ff64c7a385cfb9d6e01e6385708461eb65fc",
        "dfc30afd459e3b3c9d1af1bc5d08d50df4e6792e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 02 15:06:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 02 15:06:23 2018 +0000"
      },
      "message": "Merge \"MIPS: Clean up InstanceOf/CheckCast.\""
    },
    {
      "commit": "fb3de3d72832177e4a8d1f322ed11cbe58e45c9f",
      "tree": "de8cded0436b54b2e5b1142b07fa75f0ed9791b0",
      "parents": [
        "2827ff64c7a385cfb9d6e01e6385708461eb65fc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 29 16:11:49 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 02 14:14:08 2018 +0000"
      },
      "message": "Create list of open dex files for libbacktrace.\n\nThis fixes unwinds after recent changes (oob apks; cdex data sharing).\n\nBug: 72520014\nTest: m test-art-host-gtest\nChange-Id: Ie2a02657b2afbe899acd2e61f0a57d207e688b99\n"
    },
    {
      "commit": "66c158ef6b2a16257f1590b3ace78848a7c2407b",
      "tree": "f17f7eee70aa43711c7eb764c1789f4ec17aef37",
      "parents": [
        "92d0c8b68c24a2fa21f95d63a1ff2fb00fdb9aaf"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 31 12:55:04 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Feb 01 13:26:03 2018 -0800"
      },
      "message": "Clean up signed/unsigned in vectorizer.\n\nRationale:\nCurrently we have some remaining ugliness around signed and unsigned\nSIMD operations due to lack of kUint32 and kUint64 in the HIR. By\n\"softly\" introducing these types, ABS/MIN/MAX/HALVING_ADD/SAD_ACCUMULATE\noperations can solely rely on the packed data types to distinguish\nbetween signed and unsigned operations. Cleaner, and also allows for\nsome code removal in the current loop optimizer.\n\nBug: 72709770\n\nTest: test-art-host test-art-target\nChange-Id: I68e4cdfba325f622a7256adbe649735569cab2a3\n"
    },
    {
      "commit": "0e9d0908a9462f8cc8881ae9a54e4fa131f3c3ea",
      "tree": "b46d45d62cc38ac045b410f5258d7c8aff9810a2",
      "parents": [
        "212e375f3f1b69bba5a96f1a6a44e4d28e546f4c",
        "8d728324571b720a952b297787eed70c7a1d1acb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 01 11:54:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 01 11:54:30 2018 +0000"
      },
      "message": "Merge \"Add compiler option for counting hotness in compiled code.\""
    },
    {
      "commit": "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9",
      "tree": "fd32362dff4ecdc8ff8b0d800a1b46fb0d9d0104",
      "parents": [
        "c7e546ff3963a1d51b1f100d308db735bd19f736"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 08:52:24 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 01:24:53 2018 -0800"
      },
      "message": "Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\n\nThis reverts commit 787784f9effb126b5d0d3dc97d544c4a477b5daf.\n\nReason for revert: Bot configuration issue.\n\nChange-Id: I6a10bb4a9571f89c7e4dd095f9157e830a44e2de\nBug: 22322814\nTest: make -j 50 checkbuild\n"
    },
    {
      "commit": "787784f9effb126b5d0d3dc97d544c4a477b5daf",
      "tree": "1ff6d9fd284a4dd2a337165dff20e71137997c9d",
      "parents": [
        "b40b7e73469339a6b667b4a2e2b8690112a74dc9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "message": "Revert \"Make libdexfile build independent of runtime dir\"\n\nThis reverts commit b40b7e73469339a6b667b4a2e2b8690112a74dc9.\n\nReason for revert: on device libdexfile.so missing\n\nChange-Id: I9bd61a98bef870400580e8c991cb061d3f57fa72\n"
    },
    {
      "commit": "b40b7e73469339a6b667b4a2e2b8690112a74dc9",
      "tree": "7e8a34d9c7894c4c946f674f19f0a0a512b95184",
      "parents": [
        "9690ad794b324ba54e936608881ac0f62538b97a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 25 17:11:07 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 01:17:58 2018 -0800"
      },
      "message": "Make libdexfile build independent of runtime dir\n\nRemove libdexfile\u0027s dependency on utils.cc and move utf.cc into\n/dex.  Remove libdexfile\u0027s constituent sources from libart and\nuse libdexfile wherever libart is. Also remove some ART-specific\ninterfaces.  Libdexfile\u0027s tests remain to be converted, plus\nmoving the files to a new directory peer to runtime/.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ifaf695216e4a0e43d3aa377984d933f7a2a243c2\n"
    },
    {
      "commit": "8d728324571b720a952b297787eed70c7a1d1acb",
      "tree": "f24a774aa56c236f2f756b1b439e4c61830bec56",
      "parents": [
        "0530796b73d0a33a5df27e3a7765c0835994769a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 18 22:44:32 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 29 09:34:05 2018 +0000"
      },
      "message": "Add compiler option for counting hotness in compiled code.\n\nFor eventually easier profiling of boot classpath and\nsystem server.\n\nbug: 30934496\nTest: 674-hotness-compiled\n\nChange-Id: I0f63c644527b74f6ef2649f481c2a1c731bb9f21\n"
    },
    {
      "commit": "dfc30afd459e3b3c9d1af1bc5d08d50df4e6792e",
      "tree": "f94e9c080ddf1bc8925ea4b29d4643c62afa4868",
      "parents": [
        "5bfcc23d65009e8285acfbe7f7b1e952d94ad0c7"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@mips.com",
        "time": "Wed Jan 24 16:25:10 2018 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@mips.com",
        "time": "Thu Jan 25 14:49:30 2018 -0800"
      },
      "message": "MIPS: Clean up InstanceOf/CheckCast.\n\nThis is a MIPS-specific follow-up to\nhttps://android-review.googlesource.com/567637\n\nTest: booted MIPS32R2 in QEMU\nTest: booted MIPS64R6 in QEMU\nTest: ./run-test --optimizing 603-checker-instanceof\n\nChange-Id: Ic5312d98e51aeff11c9f7371be394d5cad319bec\n"
    },
    {
      "commit": "144c34f4efd8d476e562b25a5492c7734b087b1e",
      "tree": "56065df69ad0006703ace191e42823f47ea35f5f",
      "parents": [
        "05dd001ace005ad20bdc5ad2b7593a81825afe82",
        "c9e020852645b24ce9e3db7d1480aa9e72057146"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jan 25 22:26:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 22:26:04 2018 +0000"
      },
      "message": "Merge \"Log JIT mini-debug-info memory usage.\""
    },
    {
      "commit": "4580b6d1b01b8d24dbbf6e72079797e02aed4cc8",
      "tree": "e764cad266043692cec6d5af10f83d75d5766b6c",
      "parents": [
        "816ca4d083ae9c439be587a0192906fe1510a123",
        "1a4f3ca8b04d9f2e42cdadc597559c242d003656"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 19:06:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 19:06:31 2018 +0000"
      },
      "message": "Merge \"Revert \"ARM: Use r4 for stack overflow check to reduce code size.\"\""
    },
    {
      "commit": "bff7a52e2c6c9e988c3ed1f12a2da0fa5fd37cfb",
      "tree": "e281a8dde61e396ed5f20c31d41086b1b1b18389",
      "parents": [
        "83af48e9f4cdfcf3f0069c63561bab4c176bd2f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 13:33:07 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 15:05:16 2018 +0000"
      },
      "message": "Revert \"Compiler changes for bitstring based type checks.\"\n\nBug: 64692057\nBug: 71853552\nBug: 26687569\n\nThis reverts commit eb0ebed72432b3c6b8c7b38f8937d7ba736f4567.\n\nChange-Id: I7daeaa077960ba41b2ed42bc47f17501621be4be\n"
    },
    {
      "commit": "1a4f3ca8b04d9f2e42cdadc597559c242d003656",
      "tree": "7e4affc0b98ab6006da335465c9ee184c820ef58",
      "parents": [
        "4eb45631b38445c587c235f1b2fa1699ba820e76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 14:07:15 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 14:07:15 2018 +0000"
      },
      "message": "Revert \"ARM: Use r4 for stack overflow check to reduce code size.\"\n\nBug: 71627785\nbug: 72428887\n\nThis reverts commit 4eb45631b38445c587c235f1b2fa1699ba820e76.\n\nChange-Id: I601d78dbf1f9dafe8317e2db72831869a4092911\n"
    },
    {
      "commit": "83047434e9068afc4114e763a6fbdabeb84ead9b",
      "tree": "7ea791b513fa0e7fce7d2edad1ba5aad54918a64",
      "parents": [
        "8dc11b7951ebb0c8cf3166c0835dcbcbafc01c2b",
        "0be8cabf16ee5fa5186bc90471911336f6c01f19"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 12:39:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 12:39:50 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: Use the bitstring type check for AOT app compilation.\"\""
    },
    {
      "commit": "8dc11b7951ebb0c8cf3166c0835dcbcbafc01c2b",
      "tree": "dea6ef8f27578e23e90049d9e29880e6e54d2934",
      "parents": [
        "5cee0a321d4b250ab7553bdca5c35cf507528deb",
        "e97949e878bb364adadc167ac158ffc9660ce996"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 25 12:30:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 25 12:30:16 2018 +0000"
      },
      "message": "Merge \"Revert \"More general store elimination\"\""
    },
    {
      "commit": "0be8cabf16ee5fa5186bc90471911336f6c01f19",
      "tree": "0ff068df6465b52458ecca3de96d119234415def",
      "parents": [
        "718e8319c728e9ee2ec15b1d56ca96baa4393028"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 10:47:41 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 10:47:41 2018 +0000"
      },
      "message": "Revert \"ART: Use the bitstring type check for AOT app compilation.\"\n\nTest failures:\nhttp://build.chromium.org/p/client.art/builders/fugu-debug/builds/4875\n\n01-25 02:05:28.357 23732 23732 F /data/local/tmp/system/bin/../bin/dalvikvm: quick_throw_entrypoints.cc:132] Check failed: !dest_type-\u003eIsAssignableFrom(src_type) \n\n\nThis reverts commit 718e8319c728e9ee2ec15b1d56ca96baa4393028.\n\nChange-Id: I022f88cd81ae99143e5670ae29eae326ecc83cc2\n"
    },
    {
      "commit": "e97949e878bb364adadc167ac158ffc9660ce996",
      "tree": "22af74ac7c6017d0333a50ebaa504a4b0488c92e",
      "parents": [
        "aec4e73779e5034b6f84032a1649023c1333bad2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 10:42:01 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 25 10:42:01 2018 +0000"
      },
      "message": "Revert \"More general store elimination\"\n\nbug: 35745320\n\nGot a few failures:\nbug: 72440777\nbug: 72480435\n\nThis reverts commit aec4e73779e5034b6f84032a1649023c1333bad2.\n\nChange-Id: I32f0a80a590c4558bf252c2d426ee2e78a2296b7\n"
    },
    {
      "commit": "4b8025c448fa5ab703933de397489e770151300c",
      "tree": "aeb58faa3a9ce9f51a173bda033bad12e5fef5ac",
      "parents": [
        "b95eb37a04874a57046fba7fc09a8b197691e9a2"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Thu Dec 21 16:15:50 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Thu Jan 25 09:23:26 2018 +0100"
      },
      "message": "MIPS32 Implement signed 64-bit division by powers of 2\n\nTest: ./testrunner.py --target --optimizing in QEMU\n\nChange-Id: I662770eb31d557392588b637f6b03dd5aee96a83\n"
    },
    {
      "commit": "d3233abdf14f173bb99e3905e8543ffff845230e",
      "tree": "e1fd1abd81da728cd004b1982f7c04cccfa7d6b0",
      "parents": [
        "0e920facfcc1cdc12f08ef269746563f8f801f9b",
        "718e8319c728e9ee2ec15b1d56ca96baa4393028"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Jan 24 21:26:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 24 21:26:25 2018 +0000"
      },
      "message": "Merge \"ART: Use the bitstring type check for AOT app compilation.\""
    },
    {
      "commit": "8c0961f9e061ee4b04c1c4ba8ad5cca13bcf884d",
      "tree": "f6e5a970a6bcc0935e150cb6c28a520bf31ba964",
      "parents": [
        "2b1a21ed3581f77f34d582507177ebce33565534"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 23 16:11:38 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 24 09:24:29 2018 -0800"
      },
      "message": "Move missed files to libdexfile\n\nReduce the dependencies on utf and utils in preparation for separate\ndirectory.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      make -j 50 dexdump2 dexlist\n\nChange-Id: Icdecf895dafec63ef903514eef79d459abc14925\n"
    },
    {
      "commit": "c9e020852645b24ce9e3db7d1480aa9e72057146",
      "tree": "7dbdb71d2513d0885d9698f266f5ef728e6458fd",
      "parents": [
        "39d7589745f559b84b58d008f67c3aaf364b0370"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 24 16:44:02 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 24 16:52:06 2018 +0000"
      },
      "message": "Log JIT mini-debug-info memory usage.\n\nChange-Id: I0ffa6fb466b1635e724b0e782702303b92355408\n"
    },
    {
      "commit": "6650b0db52eee45f024652bae526ad64166ae02f",
      "tree": "c4a15d188f5e03d08d79957eb9cf0c84d8d56565",
      "parents": [
        "49971eb50c0213b7506bdd29954a6a4423e6426a",
        "4eb45631b38445c587c235f1b2fa1699ba820e76"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 20:45:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 20:45:36 2018 +0000"
      },
      "message": "Merge \"ARM: Use r4 for stack overflow check to reduce code size.\""
    },
    {
      "commit": "718e8319c728e9ee2ec15b1d56ca96baa4393028",
      "tree": "179d05bf61f23b02001da80df30cbd89fd5b5903",
      "parents": [
        "be2b613f5a30cdf2291b9f4f5d0acc2c1bb0b4ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 22 16:32:29 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 23 17:43:15 2018 +0000"
      },
      "message": "ART: Use the bitstring type check for AOT app compilation.\n\nFor boot image target classes that have their bitstring\nalready assigned in the boot image.\n\nThe size of the services.odex for aosp_taimen-userdebug:\n  - before:\n    - arm64: 20988640\n  - after:\n    - arm64: 20968016 (-20KiB, -0.1%)\n(There is no arm version, only arm64.)\n\nTest: New test case in 552-checker-sharpening.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 64692057\nChange-Id: I9585efca8ba0df15400e7536e5e2cc76aca13e8d\n"
    },
    {
      "commit": "be2b613f5a30cdf2291b9f4f5d0acc2c1bb0b4ae",
      "tree": "0ff068df6465b52458ecca3de96d119234415def",
      "parents": [
        "2e1791b74406fba9930bbe5dfa5358d2d2c07e1a",
        "eb0ebed72432b3c6b8c7b38f8937d7ba736f4567"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 23 14:59:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 14:59:45 2018 +0000"
      },
      "message": "Merge \"Compiler changes for bitstring based type checks.\""
    },
    {
      "commit": "4eb45631b38445c587c235f1b2fa1699ba820e76",
      "tree": "dc9da6b043a96e26647d0c10d3df3fcd880ca2cf",
      "parents": [
        "e57043081e6b091a9fd23a84043373148ae72f1f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 23 14:26:01 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 23 14:26:01 2018 +0000"
      },
      "message": "ARM: Use r4 for stack overflow check to reduce code size.\n\nThe code savings are 2 bytes per stack overflow check but\nthis can be rounded up or down to the kArmAlignment (8).\nCurrent testing shows the boot image size difference for\naosp_taimen-userdebug arm boot*.oat as\n  - before: 17939352\n  - after: 17881764 (-56KiB, -0.3%)\n\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target -t 018-stack-overflow\nBug: 71627785\nChange-Id: Icb732b59e9e681b29790e7e07de2710da33245b1\n"
    },
    {
      "commit": "eb0ebed72432b3c6b8c7b38f8937d7ba736f4567",
      "tree": "74d95eb4bfbf01ef6fd3a68695f5d7cec69338d7",
      "parents": [
        "e57043081e6b091a9fd23a84043373148ae72f1f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 10 18:26:38 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 23 13:02:59 2018 +0000"
      },
      "message": "Compiler changes for bitstring based type checks.\n\nWe guard the use of this feature with a compile-time flag,\nset to true in this CL.\n\nBoot image size for aosp_taimen-userdebug in AOSP master:\n  - before:\n    arm boot*.oat: 63604740\n    arm64 boot*.oat: 74237864\n  - after:\n    arm boot*.oat: 63531172 (-72KiB, -0.1%)\n    arm64 boot*.oat: 74135008 (-100KiB, -0.1%)\n\nThe new TypeCheckBenchmark yields the following changes\nusing the little cores of taimen fixed at 1.4016GHz:\n                               32-bit        64-bit\n  timeCheckCastLevel1ToLevel1  11.48-\u003e15.80 11.47-\u003e15.78\n  timeCheckCastLevel2ToLevel1  15.08-\u003e15.79 15.08-\u003e15.79\n  timeCheckCastLevel3ToLevel1  19.01-\u003e15.82 17.94-\u003e15.81\n  timeCheckCastLevel9ToLevel1  42.55-\u003e15.79 42.63-\u003e15.81\n  timeCheckCastLevel9ToLevel2  39.70-\u003e14.36 39.70-\u003e14.35\n  timeInstanceOfLevel1ToLevel1 13.74-\u003e17.93 13.76-\u003e17.95\n  timeInstanceOfLevel2ToLevel1 17.02-\u003e17.95 16.99-\u003e17.93\n  timeInstanceOfLevel3ToLevel1 24.03-\u003e17.95 24.45-\u003e17.95\n  timeInstanceOfLevel9ToLevel1 47.13-\u003e17.95 47.14-\u003e18.00\n  timeInstanceOfLevel9ToLevel2 44.19-\u003e16.52 44.27-\u003e16.51\nThis suggests that the bitstring typecheck should not be\nused for exact type checks which would be equivalent to the\n\"Level1ToLevel1\" benchmark. Whether the implementation is\na beneficial replacement for the kClassHierarchyCheck and\nkAbstractClassCheck on average depends on how many levels\nfrom the target class (or Object for a negative result) is\na typical object\u0027s class.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nTest: testrunner.py --host -t 670-bitstring-type-check\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing --jit\nTest: testrunner.py --target -t 670-bitstring-type-check\nBug: 64692057\nBug: 71853552\nBug: 26687569\nChange-Id: I538d7e036b5a8ae2cc3fe77662a5903d74854562\n"
    },
    {
      "commit": "d78ca5213b780ca3165acb68e44f88f639e8ca45",
      "tree": "02cea569c648b488483250cffd330c9c2bc95bc3",
      "parents": [
        "8105dad6cb540f6521d25507ae3e70718bc7a264",
        "a95a5cc888e61e3a2ae7abecc00be770c6297267"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 23 00:32:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 00:32:35 2018 +0000"
      },
      "message": "Merge \"Improve bound analysis on constant range.\""
    },
    {
      "commit": "7b4c09a39fd1b43995aa6d68958113463bc5b82b",
      "tree": "2fad44f5bbb1234bb0cc07312dac252deeca2edb",
      "parents": [
        "c7ae623f113484f42facd560756b13f34f7eab68",
        "7f4aff6705f46f411874b5ca8c4856b8ed5bfb13"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 22 21:04:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 21:04:20 2018 +0000"
      },
      "message": "Merge \"ART: Implement SuperblockCloner.\""
    },
    {
      "commit": "a95a5cc888e61e3a2ae7abecc00be770c6297267",
      "tree": "13a4e0a5210234bbea801347a9c8bd20cdc19219",
      "parents": [
        "0d413f64984775f0e719d186bccfbd388a745d17"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 22 12:59:43 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 22 12:59:43 2018 -0800"
      },
      "message": "Improve bound analysis on constant range.\n\nRationale:\nA low hanging fruit basedon the first CL\nthat addressed b/70688025 (when the method\nis inlined, BCE did not kick in due to\nmissing the now constant range).\n\nBug: b/70688025\n\nTest: test-art-host test-art-target\nChange-Id: Ic317d5a0920e654b5158694a1dfa1ea359e0a839\n"
    },
    {
      "commit": "5577295109a8af9f5bd31430670e5cbbc1a1e079",
      "tree": "628846bed756490cdd3acdf27c91145c8d47b11b",
      "parents": [
        "a9259aaa5c8bfb98b5db517a6cda991a5e519de4",
        "4d17987da58d9411adbed1a18203d76d6119612d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 20:28:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 20:28:31 2018 +0000"
      },
      "message": "Merge \"ART: Add entrypoint and intrinsic for Math.pow().\""
    },
    {
      "commit": "4d17987da58d9411adbed1a18203d76d6119612d",
      "tree": "f2953a0eb3ebc3f8533d22c14f4a09d7f0d4168d",
      "parents": [
        "e57043081e6b091a9fd23a84043373148ae72f1f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 19 14:50:10 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 22 18:35:16 2018 +0000"
      },
      "message": "ART: Add entrypoint and intrinsic for Math.pow().\n\nMathBenchmarks.java#timePow results on taimen\u0027s little cores\nfixed at frequency 1401600 with forced JIT compilation:\n  - before:\n    - X32: 356.33 (@FastNative), 315.39 (@CriticalNative)\n    - X64: 357.31 (@FastNative), 315.37 (@CriticalNative)\n  - after (LICM defeats the benchmark):\n    - X32: 2.88\n    - X64: 2.87\n  - after but with kAllSideEffects to prevent LICM:\n    - X32: 275.42\n    - X64: 275.67\n\nTest: Rely on TreeHugger.\nBug: 70727450\nChange-Id: Iaa31f70acabbd57c163cfeafe02eed67c1348861\n"
    },
    {
      "commit": "c684f337eae6bd3d77fa44cb568d2bab113e4cee",
      "tree": "21c3e40cc150da71d91aef03f33010813f3a8368",
      "parents": [
        "26037dd60df16d84fbd5c0ee3215b78aa2bcb408"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 17:38:06 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 17:42:54 2018 +0000"
      },
      "message": "Refactor jit debugger interface and its ELF creation.\n\nMake it possible to store more then one method per entry,\nand ref-count the number of live methods per entry.\n\nTest: m test-art-host-gtest\nChange-Id: I45d69185e85e47fbee88a8d1f549ede9875a3c0a\n"
    },
    {
      "commit": "0d413f64984775f0e719d186bccfbd388a745d17",
      "tree": "504120ea21a2c1e27e5843f2473f5a06eca1c87b",
      "parents": [
        "ad643b01de3f1152badfb12edb8469d40843d1e7",
        "b67f7e2d50cc02ce3fe84e57ebb1895b6341302e"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jan 18 23:31:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 23:31:16 2018 +0000"
      },
      "message": "Merge \"Minor edits.\""
    },
    {
      "commit": "ad643b01de3f1152badfb12edb8469d40843d1e7",
      "tree": "7a6e26793b70b9bb8ff7bb1a7f925ac7cc004198",
      "parents": [
        "156aa7cf8f3d4e9ddcea84e173332fb18e094e5f",
        "aec4e73779e5034b6f84032a1649023c1333bad2"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 18 21:34:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 18 21:34:09 2018 +0000"
      },
      "message": "Merge \"More general store elimination\""
    },
    {
      "commit": "b67f7e2d50cc02ce3fe84e57ebb1895b6341302e",
      "tree": "72ee5e7b1e7a3a22f851c4cd1d3f33a046341459",
      "parents": [
        "156aa7cf8f3d4e9ddcea84e173332fb18e094e5f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jan 18 13:29:19 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jan 18 13:30:51 2018 -0800"
      },
      "message": "Minor edits.\n\nRationale:\nmake the DCHECK order consistent with other files.\n\nTest: build\nChange-Id: I6cdb186c2320f39bca0112659d558e2d6fe63772\n"
    },
    {
      "commit": "98f1736676b1b74e0f2063a41cc0cf88ff54d01a",
      "tree": "44f4beb7abdfd5e7f01b3264730aece35cf0b475",
      "parents": [
        "7c6137448f21e48d8a6dc917393b32930096223e"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 17 14:36:41 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 17 16:15:37 2018 -0800"
      },
      "message": "Enhance BCE range analysis with length \"alias\" case.\n\nRationale:\nRemoves bounds check when trip count uses\nan array length \"alias\" in the SSA flow.\nYields about 5% on micro benchmark.\n\nBug: b/70688025\n\nTest: test-art-host test-art-target\nChange-Id: I9047432622bddba4c6afd8b309dcc5b7496912ac\n"
    },
    {
      "commit": "aec4e73779e5034b6f84032a1649023c1333bad2",
      "tree": "9f3e9546ff6cd28a56367c321fa48d1d76487066",
      "parents": [
        "7c6137448f21e48d8a6dc917393b32930096223e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Jan 08 13:11:35 2018 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Jan 17 14:32:34 2018 -0800"
      },
      "message": "More general store elimination\n\nExpand store elimination to non-singleton instance fields and static\nfields. See the added comments in load_store_elimination.cc for more\ndetails on how LSE works now.\n\nBug: 35745320\nTest: ART_TEST_OPTIMIZING\u003dtrue ./test.py -j20 --host --run-test -b\nTest: using the device (marlin) with the CL.\n\nChange-Id: I66ac4eacea593c3ee843ed5e26cdcfe2135947f6\n"
    },
    {
      "commit": "d4e328fca7afec88f9a070f2ff419f10869d75ab",
      "tree": "5d931518baa99324ca7e4d0d5458684147fa9a47",
      "parents": [
        "3dcbac8fb6c483e67e22826555cc3f26b9f76ed9"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 16 14:14:34 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 17 10:14:26 2018 -0800"
      },
      "message": "Code sinking near \"always throwing\" method calls\n\nRationale:\nThis is a slight generalization of the recent CL\nunder the same description; no longer restricted\nto static methods, also to virtuals with a single\ntarget are analyzed now.\n\nTest: test-art-host test-art-target\nChange-Id: Ib618f0c545c2cd0924228338f4aa273738868eb7\n"
    },
    {
      "commit": "a8b8e9b12a9740d71cff2fa65d47825b74f72c37",
      "tree": "301275759cf145711175992a503fcc7d710c2d2f",
      "parents": [
        "6d4c343ee5db18f039aeb3e07ff8d3c1fd37c3a0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 09 11:01:02 2018 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 16 09:44:28 2018 -0800"
      },
      "message": "Improve code sinking near \"always throwing\" method calls\n\nRationale:\nWith simple dex bytecode analysis, the inliner marks methods\nthat always throw to help subsequent code sinking. This reduces\noverhead of non-nullable enforcing calls found in e.g the Kotlin\nruntime library (1%-2% improvement on tree microbenchmark, about\n5% on Denis\u0027 benchmark).\n\nTest: test-art-host test-art-target\n\nChange-Id: I45348f049721476828eb5443738021720d2857c0\n"
    },
    {
      "commit": "8892c6bd9235e7ae697039c901aaeea1597a7473",
      "tree": "fa10893a270bad91d3503a761f140cbe9c97a74c",
      "parents": [
        "210531f8775c89feb90d430cd5b6026b4cf8ef89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 09 15:10:17 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 01:40:47 2018 +0000"
      },
      "message": "Move debug info offsets into a side table\n\nAdd a compact side table for figuring out the debug info offsets\nfor a given method index. This reduces dex size by ~1.2%.\n\nThe debug table is keyed by method index and has leb encoded\noffsets for the offsets. This means the table is smaller if debug\ninfos are encoded by method index order.\n\nTo prevent expansion for method indicies without debug info, there\nis a bitmap that specifies if a method index has a debug info offset.\n\nMotivation: Reduce code item size and allow more deduping in the\nfuture.\n\nTest: test-art-host\nBug: 63756964\n\nChange-Id: Ib983e85c1727f58c97676bde275f4a9756314da0\n"
    },
    {
      "commit": "210531f8775c89feb90d430cd5b6026b4cf8ef89",
      "tree": "3c23fffcc0d1d7876f15f64672e0de98b1f051ca",
      "parents": [
        "3c9e0f69b04b614c44448e66e15c6f8a78da4b2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 12 10:15:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 01:40:03 2018 +0000"
      },
      "message": "Revert \"Revert \"Move quickening info logic to its own table\"\"\n\nBug: 71605148\nBug: 63756964\n\nTest: test-art-target on angler\n\nThis reverts commit 6716941120ae9f47ba1b8ef8e79820c4b5640350.\n\nChange-Id: Ic01ea4e8bb2c1de761fab354c5bbe27290538631\n"
    },
    {
      "commit": "fa3db3d377bfaceb51c9a97864b17ce02538b7e0",
      "tree": "e499305451300d3a7a9a2c4e86d5392846f889e2",
      "parents": [
        "b12293f196dffe3df29a17a054565bac1b578a4f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 12 14:42:18 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 00:29:43 2018 +0000"
      },
      "message": "Change compiler tests to have aligned code item\n\nPreviously, the code item was not necessarily 32 bit aligned. This\ncaused bus errors on armv7.\n\nAlso create a real dexfile object instead of casting 0 initialized\nmemory to a dex file pointer. We just got lucky before that the cdex\nboolean was false.\n\nTest: test-art-target-gtest\nBug: 63756964\nBug: 71605148\n\nChange-Id: Ic7199f2b97bbd421de1d702efa5c6531ff45c022\n"
    },
    {
      "commit": "6716941120ae9f47ba1b8ef8e79820c4b5640350",
      "tree": "76dd7d32703505d4ab44c0b55a7ecaf3ff66a94e",
      "parents": [
        "7a26f948204377130be7b738d70d7365c86a804b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 12 09:06:14 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 12 09:06:14 2018 +0000"
      },
      "message": "Revert \"Move quickening info logic to its own table\"\n\nBug: 71605148\nBug: 63756964\n\nSeems to fail on armv7.\n\nThis reverts commit f5245188d9c61f6b90eb30cca0875fbdcc493b15.\n\nChange-Id: I37786c04a8260ae3ec4a2cd73710126783c3ae7e\n"
    },
    {
      "commit": "7a26f948204377130be7b738d70d7365c86a804b",
      "tree": "dd3ab45b73127fdcbcdca64bbac484bfe2c0a8cd",
      "parents": [
        "29504326da13831fa3060ac507927c4d76aa556a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 04 18:23:55 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 11 10:58:22 2018 -0800"
      },
      "message": "Move quickening info logic to its own table\n\nAdded a table that is indexed by dex method index. To prevent size\noverhead, there is only one slot for each 16 method indices. This\nmeans there is up to 15 loop iterations to get the quickening info\nfor a method. The quickening infos are now prefixed by a leb\nencoded length. This allows methods that aren\u0027t quickened to only\nhave 1.25 bytes of space overhead.\n\nThe value was picked arbitrarily, there is little advantage to\nincreasing the value since the table only takes 1 byte per 4 method\nindices currently. JIT benchmarks do not regress with the change.\n\nThere is a net space saving from removing 8 bytes from each\nquickening info since most scenarios have more quickened methods than\ncompiled methods.\n\nFor getting quick access to the table, a 4 byte preheader was added\nto each dex in the vdex file\n\nRemoved logic that stored the quickening info in the CodeItem\ndebug_info_offset field.\n\nThe change adds a small quicken table for each method index, this\nmeans that filters that don\u0027t quicken will have a slight increase in\nsize. The worst case scenario is compiling all the methods, this\nresults in 0.3% larger vdex for this case. The change also disables\ndeduping since the quicken infos need to be in dex method index\norder.\n\nFor filters that don\u0027t compile most methods like quicken and\nspeed-profile, there is space savings. For quicken, the vdex is 2%\nsmaller.\n\nBug: 71605148\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I89cb679538811369c36b6ac8c40ea93135f813cd\n"
    },
    {
      "commit": "dc682aa9d0eae1a851af059434adb6f6cf8f06f8",
      "tree": "f93f00493ee5887b05b42a6a5dd99eb6794daad4",
      "parents": [
        "d6b7e8c63f8eca25460f56f66dcae15eaa897ff0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 04 18:42:57 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 10 14:30:26 2018 +0000"
      },
      "message": "Use 28 bits for type check bit string.\n\nAnd reverse the order of fields in the Class::status_. This\navoids generated code size increase:\n  - ClassStatus in high bits allows class initialization\n    check using \"status_high_byte \u003c (kInitialized \u003c\u003c 4)\"\n    which is unaffected by the low 4 bits of LHS instead of\n    needing to extract the status bits,\n  - the type check bit string in the bottom bits instead of\n    somewehere in the middle allows the comparison on ARM\n    to be done using the same code size as with the old\n    layout in most cases (except when the compared value is\n    9-16 bits and not a modified immediate: 2 bytes less for\n    9-12 bits and sometimes 2 bytes more for 13-16 bits; the\n    latter could be worked around using LDRH if the second\n    character\u0027s boundary is at 16 bits).\n\nAdd one of the extra bits to the 2nd character to push its\nboundary to 16 bits so that we can test an implementation\nusing 16-bit loads in a subsequent CL, arbitrarily add the\nother three bits to the 3rd character. This CL is only\nabout making those bits available and allowing testing, the\ndetermination of how to use the additonal bits for the best\nimpact (whether to have a 4th character or distribute them\ndifferently among the three characters) shall be done later.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 64692057\nChange-Id: I38c59837e3df3accb813fb1e04dc42e9afcd2d73\n"
    },
    {
      "commit": "8e4749393e2761da6d08e447529b1bbeae60618a",
      "tree": "c070014d4d8a485559f259d5f5fd7fc35a05f502",
      "parents": [
        "5f4a1a0ab4f87eab694c44dd3158766103320b43",
        "f0a6a1d0536958ebb5bcaef02a0f0cda929b457b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 09 19:53:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 09 19:53:28 2018 +0000"
      },
      "message": "Merge \"ARM: Replace arm::SetCc with vixl32::FlagsUpdate.\""
    },
    {
      "commit": "7f4aff6705f46f411874b5ca8c4856b8ed5bfb13",
      "tree": "59947502e43f04c23d212b6ea0e8dca3d91549e3",
      "parents": [
        "30f54cc45bd338f9d9079786dae96ea13ab9f163"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jun 21 17:02:18 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jan 09 13:52:59 2018 +0000"
      },
      "message": "ART: Implement SuperblockCloner.\n\nSuperblockCloner provides a feature of cloning subgraphs in a\nsmart, high level way without fine grain manipulation with IR;\ndata flow and graph properties are resolved/adjusted automatically.\nThe clone transformation is defined by specifying a set of basic\nblocks to copy and a set of rules how to treat edges, remap their\nsuccessors. By using this approach such optimizations as Branch\nTarget Expansion, Loop Peeling, Loop Unrolling can be implemented.\n\nTest: superblock_cloner_test.cc.\nChange-Id: Ibeede38195376ca35f44ba9015491e50b3a5b87e\n"
    },
    {
      "commit": "698ebbca3c54d17c696e87b9e5838df6a5ac9b08",
      "tree": "7887b2cd4662410114f205bbe1896ff094d51407",
      "parents": [
        "4b9a11f1d43df69c50e93ba1793fce1c2216682b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 05 11:00:42 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 08 09:11:49 2018 -0800"
      },
      "message": "Clean up CodeItemAccessors and Compact/StandardDexFile\n\nChange constructor to use a reference to a dex file.\n\nRemove duplicated logic for GetCodeItemSize.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I69af8b93abdf6bdfa4454e16db8f4e75883bca46\n"
    },
    {
      "commit": "f0a6a1d0536958ebb5bcaef02a0f0cda929b457b",
      "tree": "5bd80e63136ca017742a3b0fb2ca8a088a2d0cf0",
      "parents": [
        "30f54cc45bd338f9d9079786dae96ea13ab9f163"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 08 14:23:56 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 08 14:44:51 2018 +0000"
      },
      "message": "ARM: Replace arm::SetCc with vixl32::FlagsUpdate.\n\nAnd delete obsolete test header file.\n\nTest: Rely on TreeHugger.\nChange-Id: I15858b8462198098f21956685a2ad77908b8a186\n"
    },
    {
      "commit": "30f54cc45bd338f9d9079786dae96ea13ab9f163",
      "tree": "542b2e8afa185ee3fdeb17fa1637579c110cc2c6",
      "parents": [
        "4cb6347613e37c98bf40d8bb5e6583ac81f4d856",
        "672b9c1e95beed861a63d4a4c273114387f035a6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 08 12:37:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 08 12:37:05 2018 +0000"
      },
      "message": "Merge \"ARM: Fix breaking changes from recent VIXL update.\""
    },
    {
      "commit": "9e734c7ab4599d7747a05db0dc73c7b668cb6683",
      "tree": "dce1d1993734a947fb2e6f626eb1b425cb72143b",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 04 17:56:19 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 05 11:07:19 2018 -0800"
      },
      "message": "Create dex subdirectory\n\nMove all the DexFile related source to a common subdirectory dex/ of\nruntime.\n\nBug: 71361973\nTest: make -j 50 test-art-host\nChange-Id: I59e984ed660b93e0776556308be3d653722f5223\n"
    },
    {
      "commit": "70a58af9c733bc14c4573dddd282b3c02ccf4985",
      "tree": "46fe53c06014ec4809f5f4c1dbd1e1c941349619",
      "parents": [
        "9382c0d53f91f3788a5254495917898d8b61fe00",
        "2c64a837e62c2839521c89060b5bb0dcb237ddda"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 05 17:36:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 05 17:36:25 2018 +0000"
      },
      "message": "Merge \"Change ClassStatus to fit into 4 bits.\""
    },
    {
      "commit": "2c64a837e62c2839521c89060b5bb0dcb237ddda",
      "tree": "65475ed2e313ff17354e741bac7e9c85739b8b95",
      "parents": [
        "6cd0005698181e4cef2247b632d396e605d58fa3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 04 11:31:56 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 05 11:27:50 2018 +0000"
      },
      "message": "Change ClassStatus to fit into 4 bits.\n\nIn preparation for extending the type check bit string from\n24 to 28 bits, rewrite ClassStatus to fit into 4 bits. Also\nperform a proper cleanup of the ClassStatus, i.e. change it\nto an enum class, remove the \"Status\" word from enumerator\nnames, replace \"Max\" with \"Last\" in line with other\nenumerations and remove aliases from mirror::Class.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 64692057\nBug: 65318848\nChange-Id: Iec1610ba5dac2c527b36c12819f132e1a77f2d45\n"
    },
    {
      "commit": "a61e97fd3cae77ec62c3f3bbe944a7eb4bfa87bf",
      "tree": "ba69bf3d1292afd424838e462562a84f0a7760e1",
      "parents": [
        "6cd0005698181e4cef2247b632d396e605d58fa3",
        "73f21d45a41aaad1a02eecdf3bbdbf78ef599d5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 04 17:59:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 04 17:59:31 2018 +0000"
      },
      "message": "Merge \"Remove CodeItem accessor functions\""
    },
    {
      "commit": "4abc0012a4d9dfe1074b904462b96bc9c71b5f3a",
      "tree": "ddc9aa77d480d4c7e346036612c78d3509dc625a",
      "parents": [
        "3165bb09dc04b61abd04bf8e263dd85d610694e4",
        "a556e6ba500ba54d1ca90d6a947dd962d9c287c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 04 14:01:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 04 14:01:34 2018 +0000"
      },
      "message": "Merge \"MIPS: InstructionCodeGeneratorMIPS*::DivRemByPowerOfTwo()\""
    },
    {
      "commit": "a3e50959997f5c3e3b2d7e200b3b022757845f20",
      "tree": "87e75574ea1b491639ffdb6c6a05f34e82a91901",
      "parents": [
        "b0ddceb337f614dc2600d19b82fb4a6596aa7d4c",
        "2a5d7283bba919eadb92ac311c1d563a14098ab5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 03 19:21:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 03 19:21:22 2018 +0000"
      },
      "message": "Merge changes I69b3b6f2,I294dbd43\n\n* changes:\n  ART: Emit runtime read barrier checks only in slow-debug\n  ART: Ensure slow-debug mode in dex2oatd testing\n"
    },
    {
      "commit": "a556e6ba500ba54d1ca90d6a947dd962d9c287c7",
      "tree": "f9e747c6218ca741c7b0783a9d10dedf22dd36b3",
      "parents": [
        "b0ddceb337f614dc2600d19b82fb4a6596aa7d4c"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Wed Dec 13 12:09:42 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Wed Jan 03 17:40:01 2018 +0100"
      },
      "message": "MIPS: InstructionCodeGeneratorMIPS*::DivRemByPowerOfTwo()\n\nReplace [d]sll+[d]srl with [d]ins on R2+.\n\nChange-Id: I7587e46c47c8ce413d81a5c6c29d91e32a14d855\n"
    },
    {
      "commit": "00359cd27da40020e0a539515590fac3a46be1e4",
      "tree": "0dbb0307560d80992ca3a20d48ce2021ed7a51b5",
      "parents": [
        "90f20973356900e340998e8e2b34230e5c4c8fb0",
        "349e61ff554714ea79e76a89429d5cf8490d714e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 03 13:15:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 03 13:15:43 2018 +0000"
      },
      "message": "Merge \"ARM: Remove a deprecated IT block in the read barrier code\""
    },
    {
      "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": "2a5d7283bba919eadb92ac311c1d563a14098ab5",
      "tree": "832ebaf8fe26cc8ccf0b738cc4547aed7493ffe8",
      "parents": [
        "e8f74caabfb6885ee5ad3a811222083877ca595e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 02 11:53:35 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 02 17:17:15 2018 -0800"
      },
      "message": "ART: Emit runtime read barrier checks only in slow-debug\n\nMove runtime read barrier check emission to slow-debug to have\nbetter control over when this instrumentation is done.\n\nBug: 35644369\nBug: 68025088\nTest: m test-art-host\nTest: manual inspection of core image code\nChange-Id: I69b3b6f243c30813a741fe9e0a460f1543c6bc5d\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": "349e61ff554714ea79e76a89429d5cf8490d714e",
      "tree": "70fbd5027497dba0a85f96ace72aa693fe616546",
      "parents": [
        "60413a26d84fc7aa61cf17ade0c60cdcf31b2cc3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Dec 15 17:11:33 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Dec 19 15:24:26 2017 +0000"
      },
      "message": "ARM: Remove a deprecated IT block in the read barrier code\n\nARMv8-A deprecates the use of 32-bit instructions in IT blocks,\nwhich includes CLREX.\n\nTest: 004-UnsafeTest\nChange-Id: I3474c999f3a60fa56056dda2cf5fadf68ffd90ca\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": "672b9c1e95beed861a63d4a4c273114387f035a6",
      "tree": "4bee8c0fe1794213fdd5502ad57dcb1ebfeaae7a",
      "parents": [
        "a43a89470597a1d34a403add4f82cfc155e7bc33"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Dec 05 18:04:07 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 18 13:48:42 2017 +0000"
      },
      "message": "ARM: Fix breaking changes from recent VIXL update.\n\nTest: test-art-target, test-art-host\n\nChange-Id: I31de1e2075226542b9919f6ca054fd5bf237e690\n"
    },
    {
      "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.\""
    }
  ],
  "next": "702f6f276d2b81ae27bce51c2e78b04aa45a5796"
}
