)]}'
{
  "log": [
    {
      "commit": "1b404a8b34f6fa80342955cb0a61673503328b51",
      "tree": "df0d83903e77c55dcb476a19961ea9cccc13e616",
      "parents": [
        "fe712a8b9c247d66df013f2b4b6faa6009d745bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 01 13:35:26 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 18 16:53:30 2017 +0100"
      },
      "message": "Add debug info for link-time generated thunks.\n\nAdd debug info for method call thunks (currently unused) and\nBaker read barrier thunks. Refactor debug info generation\nfor trampolines and record their sizes; change their names\nto start with upper-case letters, so that they can be easily\ngenerated as `#fn_name`.\n\nThis improved debug info must be generated by `dex2oat -g`,\nthe debug info generated by `oatdump --symbolize` remains\nthe same as before, except for the renamed trampolines and\nan adjustment for \"code delta\", i.e. the Thumb mode bit.\n\nCortex-A53 erratum 843419 workaround thunks are not covered\nby this CL.\n\nTest: Manual; run-test --gdb -Xcompiler-option -g 160, pull\n      symbols for gdbclient, break in the introspection\n      entrypoint, check that gdb knows the new symbols\n      (and disassembles them) and `backtrace` works when\n      setting $pc to an address in the thunk.\nBug: 36141117\nChange-Id: Id224b72cfa7a0628799c7db65e66e24c8517aabf\n"
    },
    {
      "commit": "3597f51c4af8d5e32c21789ea7b7cd75dc078120",
      "tree": "c85560ba6c023635b53b1a3831935e5943d94a36",
      "parents": [
        "775784beee009bfe125ca9df0c4e2ac7288f2e24",
        "d30f205f128c5ae625642d525e65a7fdd23d47a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 22:56:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 22:56:39 2017 +0000"
      },
      "message": "Merge \"Bail for SIMD code in LSE.\""
    },
    {
      "commit": "d30f205f128c5ae625642d525e65a7fdd23d47a9",
      "tree": "04dae3aedcb03b11cb2abf066e4ec3dee5c8a205",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 12 13:07:00 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 15 08:53:43 2017 -0700"
      },
      "message": "Bail for SIMD code in LSE.\n\nRationale:\nLSE does not look at vector load/stores currently,\nwhich potentially breaks anything containing SIMD.\nThis is a temporary fix to get the mainline clean\nuntil the real solution (looking at simd l/s) goes in.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: I018685bcd32ab8e0710435bf1d1d95aafd874a33\n"
    },
    {
      "commit": "73b326ea1c1a58a5017f33286e511e1aa020de1c",
      "tree": "b8bb8bc74508f619b7746c0167ae3572a6da2c2f",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Sep 12 14:42:29 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Sep 12 17:20:04 2017 -0700"
      },
      "message": "Add a DCHECK for BCE.\n\nA MonotonicValueRange should only be assigned for a loop header phi.\n\nTest: host run-test.\nChange-Id: Idd990670f5449c6b6b9c4a162522e960c34902de\n"
    },
    {
      "commit": "bae9c9ad631576966c82872b32e309dc720b309b",
      "tree": "69704a78f1c5006d0e35e46df2095b4555885dce",
      "parents": [
        "47d00f6c4657af33c3cc29783c0f2eb156aa1449"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 14:51:54 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 15:24:52 2017 -0700"
      },
      "message": "Fix bug in BCE remainder handling.\n\nRationale:\n(1) code was looking up index in wrong block\n(2) code was merging monotonic (rather than the other way around).\nThis\n(a) caused DCHECK failure, reproduced and fixed with new test\n(b) missed cases, reproduced and fixed with new test\n\nBug: 65551926\n\nTest: test-art-host\nChange-Id: I9991635bf8b04925b6929b73abf659717639a78b\n"
    },
    {
      "commit": "47d00f6c4657af33c3cc29783c0f2eb156aa1449",
      "tree": "5e0d77956ffe8fc6b6b3f70f702bf21f32d67f8f",
      "parents": [
        "1ffbc05e2a2bd70fcf34a2acd88c21fdcf3c56ff",
        "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "message": "Merge changes I88fd4905,Ib8c0a28c\n\n* changes:\n  ART: Clean up WellKnownClasses include.\n  ART: Clear WellKnownClasses on shutdown\n"
    },
    {
      "commit": "1ffbc05e2a2bd70fcf34a2acd88c21fdcf3c56ff",
      "tree": "65f322fc50014f676150c5a3424f751a27863223",
      "parents": [
        "9d9f2d7782545082a22b3630ec75aa5a7e887582",
        "521b50f58f2af8b5a68f821a6c4eac7d86ec01f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 11 18:55:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 18:55:05 2017 +0000"
      },
      "message": "Merge \"No unrolling for large loop bodies.\""
    },
    {
      "commit": "521b50f58f2af8b5a68f821a6c4eac7d86ec01f5",
      "tree": "68e41bad2a2106e27bfd470b627f11706d9b6e92",
      "parents": [
        "d4d11822e349e7e4af0b43cb3fc69e14f1c95475"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Sep 09 10:44:45 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 10:02:55 2017 -0700"
      },
      "message": "No unrolling for large loop bodies.\n\nRationale:\nshould yield 1, not 0\n\nTest: test-art-host test-art-target\nChange-Id: I0ca68b2a5a4dba1c3e41248376002d9635716840\n"
    },
    {
      "commit": "9d9f2d7782545082a22b3630ec75aa5a7e887582",
      "tree": "1210668cbd5b35a0d1f6c1f83f766979c7a780b2",
      "parents": [
        "fe30b3e2815c6140471338df5d903a2c1d242414",
        "94ec2db21332ee1dcdbbf254b99a9a999a304fe0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image class table for PIC app HLoadClass.\""
    },
    {
      "commit": "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb",
      "tree": "23ca6d02cd6fd7054bc4511a3f5ec346c4f9173d",
      "parents": [
        "db48a79e49a900e255c1a472d6436a655016125f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "message": "ART: Clean up WellKnownClasses include.\n\nDelete an unnecessary include propagating the WellKnownClasses\nfar to widely, and instead fix some transitive users.\n\nTest: m\nChange-Id: I88fd49057afe4ddcc548b979baafb8b8682d78ae\n"
    },
    {
      "commit": "94ec2db21332ee1dcdbbf254b99a9a999a304fe0",
      "tree": "6ced7e596731b61f95a3693f336527f55ea3cf3a",
      "parents": [
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 06 17:21:03 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 15:12:51 2017 +0100"
      },
      "message": "Use mmapped boot image class table for PIC app HLoadClass.\n\nImplement new HLoadClass load kind for boot image classes\nreferenced by PIC-compiled apps (i.e. prebuilts) that uses\nPC-relative load from a boot image ClassTable mmapped into\nthe apps .bss. This reduces the size of the PIC prebuilts\nthat reference boot image classes compared to the kBssEntry\nas we can completely avoid the slow path and stack map\nunless we need to do the class initialization check.\n\nPrebuilt services.odex for aosp_angler-userdebug (arm64):\n  - before: 20312800\n  - after: 19775352 (-525KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --pictest\nTest: testrunner.py --target on Nexus 6P.\nTest: testrunner.py --target --pictest on Nexus 6P.\nTest: Nexus 6P boots.\nBug: 31951624\nChange-Id: I13adb19a1fa7d095a72a41f09daa6101876e77a8\n"
    },
    {
      "commit": "8e9090bd6e3ad7ebde47db9d01701733bbfeb89e",
      "tree": "de85515d5d57c5c335225287f636f432d0ae0ff5",
      "parents": [
        "d4d11822e349e7e4af0b43cb3fc69e14f1c95475"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 16:46:50 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Sep 09 10:13:18 2017 -0700"
      },
      "message": "Generalize range analysis.\n\nRationale:\nobvious case x+-1 vs x-1 was missing\n\nTest: test-art-host\nBug: 63631713\nChange-Id: I0a97548a509239bee34a099b1ce9856bac311dba\n"
    },
    {
      "commit": "d4d11822e349e7e4af0b43cb3fc69e14f1c95475",
      "tree": "4182e25cf642e9a6e62c24c3d3561220ffbae30a",
      "parents": [
        "f6dcede6568e3fe71da8db8d1414fab98ce4bec6",
        "f26bb6c74a973fde3d2783ac35324d5ce8def814"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "message": "Merge \"ARM64: Tune SIMD loop unrolling factor heuristic.\""
    },
    {
      "commit": "dcaf0e5da40dafc51c70d2ce4e23925d30b27374",
      "tree": "265c41e3540238dd129bab8c26a03a738cd881a8",
      "parents": [
        "d2d9171a860f1058d5b609e451a1c7eff9dd57f6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 11:23:31 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 11:23:31 2017 -0700"
      },
      "message": "Bug fix on 32-bit vs 64-bit movd/movdq on x86_64.\n\nBug: 65478356\nTest: test-art-host\nChange-Id: I5335225ab8ca40e099c4a6b93cbf58783a6ddd0b\n"
    },
    {
      "commit": "86ce50481f91e3be2e5f2686e18e11babde721ae",
      "tree": "3179155108b883d8c0c4bb3dbac0b70db0d7f698",
      "parents": [
        "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
        "dd018df8a00e841fe38fabe38520b7d297a885c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "message": "Merge \"optimizing: add block-scoped constructor fence merging pass\""
    },
    {
      "commit": "dd018df8a00e841fe38fabe38520b7d297a885c1",
      "tree": "4974b4f718d9cbb5910df7f476f2581aff1a17e2",
      "parents": [
        "6ef45677305048c2bf0600f1c4b98a11b2cfaffb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 10:38:31 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 14:06:32 2017 +0000"
      },
      "message": "optimizing: add block-scoped constructor fence merging pass\n\nIntroduce a new \"Constructor Fence Redundancy Elimination\" pass.\nThe pass currently performs local optimization only, i.e. within instructions\nin the same basic block.\n\nAll constructor fences preceding a publish (e.g. store, invoke) get\nmerged into one instruction.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nOptStat#ConstructorFenceGeneratedNew:   43825\nOptStat#ConstructorFenceGeneratedFinal: 17631  \u003c+++\nOptStat#ConstructorFenceRemovedLSE:     164\nOptStat#ConstructorFenceRemovedPFRA:    9391\nOptStat#ConstructorFenceRemovedCFRE:    16133  \u003c---\n\nRemoves ~91.5% of the \u0027final\u0027 constructor fences in RitzBenchmark:\n\n(We do not distinguish the exact reason that a fence was created, so\nit\u0027s possible some \"new\" fences were also removed.)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTest: art/test/run-test --host --optimizing 476-checker-ctor-fence-redun-elim\nBug: 36656456\nChange-Id: I8020217b448ad96ce9b7640aa312ae784690ad99\n"
    },
    {
      "commit": "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
      "tree": "6e4c293998044975d91596032d9f193dc41bad8f",
      "parents": [
        "c54e4cfa995fcd5a8457b3424fada36c560c9789",
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image intern table for PIC app HLoadString.\""
    },
    {
      "commit": "f26bb6c74a973fde3d2783ac35324d5ce8def814",
      "tree": "70149908a20503dfaf1276d04d561024f3441c6f",
      "parents": [
        "66e3af9ce5b3aaa43e5ce3bce8233235af139072"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Sep 01 10:59:03 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Sep 07 21:29:41 2017 +0100"
      },
      "message": "ARM64: Tune SIMD loop unrolling factor heuristic.\n\nImprove SIMD loop unrolling factor heuristic for ARM64 by\naccounting for max desired loop size, trip_count, etc. The\nfollowing example shows 21% perf increase:\n\n  for (int i \u003d 0; i \u003c LENGTH; i++) {\n    bc[i] \u003d ba[i];  // Byte arrays\n  }\n\nTest: test-art-host, test-art-target.\nChange-Id: Ic587759c51aa4354df621ffb1c7ce4ebd798dfc1\n"
    },
    {
      "commit": "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63",
      "tree": "f92b309ddc43c2254b6067346a653170fbbf7316",
      "parents": [
        "0f3c7003e08a42a4ed8c9f8dfffb1bee1118de59"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 25 13:26:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 07 17:52:35 2017 +0100"
      },
      "message": "Use mmapped boot image intern table for PIC app HLoadString.\n\nImplement new HLoadString load kind for boot image strings\nreferenced by PIC-compiled apps (i.e. prebuilts) that uses\nPC-relative load from a boot image InternTable mmapped into\nthe apps .bss. This reduces the size of the PIC prebuilts\nthat reference boot image strings compared to the kBssEntry\nas we can completely avoid the slow path and stack map.\n\nWe separate the InternedStrings and ClassTable sections of\nthe boot image (.art) file from the rest, aligning the\nstart of the InternedStrings section to a page boundary.\nThis may actually increase the size of the boot image file\nby a page but it also allows mprotecting() these tables as\nread-only. The ClassTable section is included in\nanticipation of a similar load kind for HLoadClass.\n\nPrebuilt services.odex for aosp_angler-userdebug (arm64):\n  - before: 20862776\n  - after: 20308512 (-541KiB)\nNote that 92KiB savings could have been achieved by simply\navoiding the read barrier, similar to the HLoadClass flag\nIsInBootImage(). Such flag is now unnecessary.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --pictest\nTest: testrunner.py --target on Nexus 6P.\nTest: testrunner.py --target --pictest on Nexus 6P.\nTest: Nexus 6P boots.\nBug: 31951624\nChange-Id: I5f2bf1fc0bb36a8483244317cfdfa69e192ef6c5\n"
    },
    {
      "commit": "b92cc33a7a6a827da577627dc274440ac29652a8",
      "tree": "9fbc71433d4ea89be61aec6de0d33d142c11f039",
      "parents": [
        "f56311a966a9e8e476287cd47d615a91a83c1d04"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 15:53:17 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 15:53:17 2017 -0700"
      },
      "message": "Pass stats into the loop optimization phase.\n\nTest: market scan.\nChange-Id: I58b23b8d254883f30619ea3602d34bf93618d432\n"
    },
    {
      "commit": "21b859210d690d25563423eeed5fd630023d23cc",
      "tree": "61a28428b0375458d8ed83e42cf7d05ad0976630",
      "parents": [
        "ac8a2a76e34d0ec0bfc10e067eafbd8a87ea4446"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 13:29:16 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 13:29:16 2017 -0700"
      },
      "message": "Added vectorization stats.\n\nRationale:\nProvides a (somewhat crude) quantative way to detect changes in\nloop vectorization and idiom recognition (e.g. by means of market\nscans, or just inspecting the same application before/after a change).\n\nTest: market scan\nChange-Id: Ic85938ba2b33c967de3159742c60301454a152a0\n"
    },
    {
      "commit": "0148de41a5c77c2f61252c219f1a02413c7c4a32",
      "tree": "91736a82a7e98721a44879b6597b5aea386e8e3b",
      "parents": [
        "c101222c854a0c476f5b6ae64e20adbd38126a3c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 05 09:25:01 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 05 10:20:09 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nThis is  a revert   of Icb5d6c805516db0a1d911c3ede9a246ccef89a22\nand thus a revert^2 of I2454778dd0ef1da915c178c7274e1cf33e271d0f\nand thus a revert^3 of I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\nand thus a revert^4 of I7880c135aee3ed0a39da9ae5b468cbf80e613766\n\nPS1-2 shows what needed to change\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: I647889e0da0959ca405b70081b79c7d3c9bcb2e9\n"
    },
    {
      "commit": "982334cef17d47ef2477d88a97203a9587a4b86f",
      "tree": "7e65d03a4533f21286cf68e66696bd0a7a54ef54",
      "parents": [
        "cfa59b49cde265dc5329a7e6956445f9f7a75f15"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 02 12:54:16 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 02 12:54:16 2017 +0000"
      },
      "message": "Revert \"Basic SIMD reduction support.\"\n\nFails 530-checker-lse on arm64.\n\nBug: 64091002, 65212948\n\nThis reverts commit cfa59b49cde265dc5329a7e6956445f9f7a75f15.\n\nChange-Id: Icb5d6c805516db0a1d911c3ede9a246ccef89a22\n"
    },
    {
      "commit": "cfa59b49cde265dc5329a7e6956445f9f7a75f15",
      "tree": "eed953f62e796f7e64252520a40d7e77d1f117af",
      "parents": [
        "82a63734d3067ea0c96f8ba15bc40caaf798c625"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Aug 31 09:08:13 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 01 10:32:50 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nThis is a revert^2 of I7880c135aee3ed0a39da9ae5b468cbf80e613766\nand thus a revert  of I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\n\nPS1-2 shows what needed to change, with regression tests\n\nTest: test-art-host test-art-target\n\nBug: 64091002, 65212948\nChange-Id: I2454778dd0ef1da915c178c7274e1cf33e271d0f\n"
    },
    {
      "commit": "fa830aa33e767420dcf705beb18c458df702502b",
      "tree": "292d53714591fc18617cfb5f0797feb4ec70af69",
      "parents": [
        "9c4feaa082d8e8c00611a0657c3f80b1c1179a6f",
        "a57b4ee7b15ce6abfb5fa88c8dc8a516fe40e0d9"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 30 23:13:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 23:13:11 2017 +0000"
      },
      "message": "Merge \"Revert \"Basic SIMD reduction support.\"\""
    },
    {
      "commit": "a57b4ee7b15ce6abfb5fa88c8dc8a516fe40e0d9",
      "tree": "c7ed7e8cb7439a8e689e399e34559aa46a97cdbd",
      "parents": [
        "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 21:21:41 2017 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 21:21:41 2017 +0000"
      },
      "message": "Revert \"Basic SIMD reduction support.\"\n\nThis reverts commit 9879d0eac8fe2aae19ca6a4a2a83222d6383afc2.\n\nGetting these type check failures in some builds. Need time to look at this better, so reverting for now :-(\n\n\ndex2oatd F 08-30 21:14:29 210122 226218 \ncode_generator.cc:115] Check failed: CheckType(instruction-\u003eGetType(), locations-\u003eInAt(0)) PrimDouble C\n\nChange-Id: I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\n"
    },
    {
      "commit": "cdb15e45ce283104a801b6ade0a5a3c4aca9c667",
      "tree": "ce21dc89f5b123679e2fee8a8c95fe69ccc5042b",
      "parents": [
        "d0b08252a508ad86780e494462cbf005718f1c2b",
        "7f56ff42ac663ccfa62034ed22297bd7d9bce2f6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 20:04:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 20:04:25 2017 +0000"
      },
      "message": "Merge \"Refined range rule for ABS(x)\""
    },
    {
      "commit": "af1a686e8138da4aeb6991bd978a8e00d2575d4e",
      "tree": "cf5a308e5a03c369f9d0d5c28c70ca07085e299a",
      "parents": [
        "29e13122aa43f3c8fef9ed749b8fb35d17adf90c",
        "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 30 17:53:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 17:53:45 2017 +0000"
      },
      "message": "Merge \"Basic SIMD reduction support.\""
    },
    {
      "commit": "7f56ff42ac663ccfa62034ed22297bd7d9bce2f6",
      "tree": "257b52e881647dc28be8999ecdcc38bc4ec7052a",
      "parents": [
        "bdd827280a787c359961caf990f4a2c6e57810c1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 10:20:47 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 10:52:33 2017 -0700"
      },
      "message": "Refined range rule for ABS(x)\n\nRationale;\nABS(minint) \u003d minint prevents assuming \u003e\u003d0 always.\nWith a fail-before(sig11)/pass-after regression test.\n\nTest: 623\nChange-Id: If5fb1580b207c7cdd964f7498849d1768bb1589d\n"
    },
    {
      "commit": "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2",
      "tree": "c75ab69be15630f86824bb202577eaa1ff91c4ee",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Aug 15 10:51:25 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 09:10:40 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\n\nChange-Id: I7880c135aee3ed0a39da9ae5b468cbf80e613766\n"
    },
    {
      "commit": "d2198243234d6820b9bdf2ac4f7276fe8149d51f",
      "tree": "698b56566edbefc68e1947bc624d99206c8efdd8",
      "parents": [
        "80be041454871a9b72c39790a10954595d721a63",
        "bf3243b6150337d47b8238b484858062d7d1c1e6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 30 14:59:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 14:59:16 2017 +0000"
      },
      "message": "Merge \"ART: Describe static fields in GraphVisualizer.\""
    },
    {
      "commit": "bf3243b6150337d47b8238b484858062d7d1c1e6",
      "tree": "b8697eb5e235f86cf1c6c5798d254b49d2425b4c",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 14:06:54 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 14:18:36 2017 +0100"
      },
      "message": "ART: Describe static fields in GraphVisualizer.\n\nTest: Rely on TreeHugger.\nChange-Id: I3388a469a96c665abc51abe2cf7d2b2004db7d78\n"
    },
    {
      "commit": "8ee58600c368b7b00e54aff09c575d4e2904316e",
      "tree": "bc1e0cdda54e4c2230efd7f95490c7ef125540cc",
      "parents": [
        "4ec99d1e710649fb56f03d216cb6a5d69e7ecd7d",
        "1819e4174bda5eb540886669beee043095955fb7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 09:09:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 09:09:46 2017 +0000"
      },
      "message": "Merge \"ARM: Clean up LocationSummary creation for Long intrinsics.\""
    },
    {
      "commit": "8920835161a359ce45250d04890bb054a3832977",
      "tree": "9dae098363aab38bf331009cd0c3f6179f49465f",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0",
        "fef2884b18bcc01cc40edb2ae809d42b5a510c33"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 29 18:55:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 18:55:36 2017 +0000"
      },
      "message": "Merge \"Simplify CreateReferenceInfoForReferenceType() in load-store-analysis\""
    },
    {
      "commit": "1819e4174bda5eb540886669beee043095955fb7",
      "tree": "7dd01861daebe8afaa9c3613c01e6aa6e1117b24",
      "parents": [
        "49376a9d4483f073aa1fe2b30806e5b31a14a034"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 17:02:56 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 17:17:54 2017 +0100"
      },
      "message": "ARM: Clean up LocationSummary creation for Long intrinsics.\n\nTest: Rely on TreeHugger.\nChange-Id: I99373fac545b9a82ec96662ff5a5882444091642\n"
    },
    {
      "commit": "60f734443d54d48fad86dce6d80d8cef22a134d0",
      "tree": "c7ed7e8cb7439a8e689e399e34559aa46a97cdbd",
      "parents": [
        "78e1e045dbdcbad89ed178f921ce68ef0520480f",
        "984519c67073b304c0e8bde1728de89d6fef98c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 16:08:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 16:08:39 2017 +0000"
      },
      "message": "Merge \"ARM: Improve String.equals() intrinsic for const strings.\""
    },
    {
      "commit": "78e1e045dbdcbad89ed178f921ce68ef0520480f",
      "tree": "f59d5ad9ee65548ee1bdeb1bb55a8208ea3e1f1e",
      "parents": [
        "bdd827280a787c359961caf990f4a2c6e57810c1",
        "4fae4fb8b379442a470695dc72af3372fceb92cd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 16:08:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 16:08:35 2017 +0000"
      },
      "message": "Merge \"ARM64: Remove duplicate helper for intrinsic locations.\""
    },
    {
      "commit": "49376a9d4483f073aa1fe2b30806e5b31a14a034",
      "tree": "7f7d5bd13d4c167a709ebbcc3eaaebce7a841b11",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0",
        "27292e64b312007cd301fed8aa96ed7c0215b231"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 15:44:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 15:44:07 2017 +0000"
      },
      "message": "Merge \"ARM: Implement one-bit intrinsics.\""
    },
    {
      "commit": "4fae4fb8b379442a470695dc72af3372fceb92cd",
      "tree": "0f0ace479842b1b97e1dbff25f98bc451618904c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 12:00:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 12:00:09 2017 +0100"
      },
      "message": "ARM64: Remove duplicate helper for intrinsic locations.\n\nTest: Rely on TreeHugger.\nChange-Id: Ib5e80aa3dee78b0d1f65694de01303f214d32881\n"
    },
    {
      "commit": "27292e64b312007cd301fed8aa96ed7c0215b231",
      "tree": "4d653ff959b7f2179bb7d93c479cfc063661afab",
      "parents": [
        "86d1db15332571f21bd588efed0de3384269a1c5"
      ],
      "author": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Fri Aug 04 16:06:45 2017 +0100"
      },
      "committer": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Tue Aug 29 11:47:47 2017 +0100"
      },
      "message": "ARM: Implement one-bit intrinsics.\n\nImplement intrinsics for Integer and Long OneBit methods\nfor aarch32.\n\nTest: 568-checker-onebit, test-art-target, test-art-host.\nChange-Id: I34b878f9883569cfef10dfecd8cb99d7e452277b\n"
    },
    {
      "commit": "984519c67073b304c0e8bde1728de89d6fef98c1",
      "tree": "c1efdab0c409d97b95002fe9a696a00e3c05cc1c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 23 10:45:29 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 10:28:30 2017 +0100"
      },
      "message": "ARM: Improve String.equals() intrinsic for const strings.\n\nAnd add tests for the relevant string lengths to 021-string2\nand remove obsolete inlining-prevention code from that test.\nAlso a minor fix of the cutoff check for arm64.\n\nThis is a follow-up to the ARM64 change\n    https://android-review.googlesource.com/336648 .\n\naosp_angler-userdebug:\n  before:\n    arm boot*.oat: 34153044\n    arm boot*.oat/no string compression: 34107776\n  after:\n    arm boot*.oat: 34132740 (−20304)\n    arm boot*.oat/no string compression: 34099508 (−8268)\n\nThe string compression code size difference drops from\n45268 to 33232.\n\nTest: m test-art-target on Nexus 6P\nTest: m test-art-target on Nexus 6P with string compression disabled.\nBug: 31040547\nChange-Id: I4ec73d444d9f56aaf8aa08369c830f398df2168a\n"
    },
    {
      "commit": "fef2884b18bcc01cc40edb2ae809d42b5a510c33",
      "tree": "8649630bb875a85aeb0086fafc25fcf43fbc703c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 28 15:20:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 28 16:33:04 2017 -0700"
      },
      "message": "Simplify CreateReferenceInfoForReferenceType() in load-store-analysis\n\nWe now do CreateReferenceInfoForReferenceType() in VisitInstruction()\nwhich catches all cases where a reference value is created.\n\nTest: run-test on hosts\nChange-Id: I14ce59ba44558e3e800fc2543f4e190cbb2fd75e\n"
    },
    {
      "commit": "641a473912b3bcaaff2c71070611490b7c547cfc",
      "tree": "67bf5b2eaaeaf19c6cebac29984b49c19f172f9b",
      "parents": [
        "5555dd1df3c7f3aaea548c3b657b9325538e9780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 24 13:21:35 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 25 08:59:29 2017 -0700"
      },
      "message": "ART: Fix reference-related warnings\n\nMake some parameters and locals references to avoid unnecessary\ncopies.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Idfed600c7c5492a80f72f51424253bcbea824a94\n"
    },
    {
      "commit": "3ed4a4018ad11ea292cd1e04b0dfe005195d1e3c",
      "tree": "5b74f3191cf4f4470faf7dab814eb798372f5ad4",
      "parents": [
        "d98350db5c8b1ffc4e63132a40da7943a3dd0ca6",
        "da483164bac6a630bcdbdd020ca5dec7b131daae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 24 17:37:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 24 17:37:04 2017 +0000"
      },
      "message": "Merge \"Implement OneBit intrinsics for arm64.\""
    },
    {
      "commit": "da483164bac6a630bcdbdd020ca5dec7b131daae",
      "tree": "9490be50c37b617e18c2cce61544ff95f24ee0c2",
      "parents": [
        "86d1db15332571f21bd588efed0de3384269a1c5"
      ],
      "author": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Mon Aug 14 13:54:31 2017 +0100"
      },
      "committer": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Thu Aug 24 13:48:30 2017 +0100"
      },
      "message": "Implement OneBit intrinsics for arm64.\n\nImplemement intrinsics for highestOneBit and lowestOneBit for\njava.lang.Integer and java.lang.Long.\n\nTest: 568-checker-onebit, test_art_target, test_art_host.\nChange-Id: I9d2bd04cb28b739c29811c73939fdbc25007f15a\n"
    },
    {
      "commit": "23b752b2496536d39b5132ded2c64f48b2891a0d",
      "tree": "c047c3091af3a36ab18b269f7b1a422c36a8613a",
      "parents": [
        "ae53f10531e559fbbdbe390316b092c6a9c5df39"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Jul 20 14:40:44 2017 +0100"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Aug 21 11:50:24 2017 +0100"
      },
      "message": "Remove obsolete code paths from the ARM code generator\n\nAfter the last changes to the ARM code generator, several code paths\nthat handle some HCondition corner cases are rarely executed and are,\nstrictly speaking, unnecessary because the rest of the compiler can do\ntheir job with minimal modifications (and even generate better code),\nbut have been kept in order to minimize the differences with the\nprevious ARM code generator. Now that the latter has been removed, the\nobsolete code paths can be deleted as well (practically without any\nchange in behaviour).\n\nFurthermore, this commit contains a preliminary improved fix for the\nissue checked by the 657-branches test. The proper fix, however, should\nbe in the instruction simplifier or another compiler pass before code\ngeneration.\n\nTest: 657-branches\nTest: test-art-target\nChange-Id: I7d785a1607bc99bff0bfc33050b567a9cf6925c9\n"
    },
    {
      "commit": "ae53f10531e559fbbdbe390316b092c6a9c5df39",
      "tree": "14abcc3ef1b8232c662a095736707765b2359ad5",
      "parents": [
        "b28118c74a61b8d1ff9432e753f1f11a72ce049c",
        "a663d9d5b32a525794a2b98fa43da54dd7c79e3b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 19 11:52:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 19 11:52:43 2017 +0000"
      },
      "message": "Merge \"MIPS32: Allow some patched instructions in delay slots\""
    },
    {
      "commit": "a663d9d5b32a525794a2b98fa43da54dd7c79e3b",
      "tree": "88c643ca5ebfb0dfe11f45a9b232f9a2592fb043",
      "parents": [
        "b9463674919ba91fe131e65785ad67b4202e86b9"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jul 31 18:43:18 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Aug 18 15:29:31 2017 -0700"
      },
      "message": "MIPS32: Allow some patched instructions in delay slots\n\nTest: test-art-host-gtest\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest32\nTest: testrunner.py --target --optimizing --32\nTest: same tests as above on CI20\nTest: booted MIPS32R2 in QEMU\n\nChange-Id: I7e1ba59993008014d0115ae20c56e0a71fef0fb0\n"
    },
    {
      "commit": "5011149cbb1dddf7161ef294b8ed265862ae6d91",
      "tree": "e420ba6336d69308e73ead7ff7984d4c08e7bcf8",
      "parents": [
        "65ee0f086581a8fbaa18473e8bac7ff9372cff0a",
        "2dec927e60395210946e5b9dbaa03111dad2466a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 18 11:59:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 18 11:59:14 2017 +0000"
      },
      "message": "Merge \"MIPS64: Implement HSelect\""
    },
    {
      "commit": "f708c9a39240716eb3df024ec67bbcb9b3883f61",
      "tree": "00d78ed6994c79e08c829416fe0ea03dc145b6f0",
      "parents": [
        "2ade881db8642f10007c1c46b5e7f073d463c2d3",
        "0cab65610a6a984a94ef4c3f232fe0273e78d95b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 17 14:40:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 17 14:40:46 2017 +0000"
      },
      "message": "Merge \"MIPS: Eliminate hard-coded offsets in branches\""
    },
    {
      "commit": "5bfead584f56b2a1cfb69f78c385965ec57f7e8b",
      "tree": "e349bd5c78599475a07f463bd7aca0d68c0a495e",
      "parents": [
        "6b1382dcb24a44e552daaa8dca82eb63d8bf6b11",
        "bc5460b850a0fa2d8dcf6c8d36b0eb86f8fe46a8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Aug 14 22:46:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 14 22:46:20 2017 +0000"
      },
      "message": "Merge \"MIPS: Support MultiplyAccumulate for SIMD.\""
    },
    {
      "commit": "4ec14ff3d6126750de753f7d162df408f278e825",
      "tree": "9f37b3881e615211a4fd458ee36d67939c6da514",
      "parents": [
        "c1bb1cd339b2ebea9c4770fb4d61bacd7d77746f",
        "16e528957869c7debb1f6758c9a364819e15ee1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 09:19:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 14 09:19:03 2017 +0000"
      },
      "message": "Merge \"RFC: Generate select instruction for conditional returns.\""
    },
    {
      "commit": "bc5460b850a0fa2d8dcf6c8d36b0eb86f8fe46a8",
      "tree": "0db1314987cd0f24c7294c4ad540c7f28e2739d9",
      "parents": [
        "c1bb1cd339b2ebea9c4770fb4d61bacd7d77746f"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 20 16:07:36 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Aug 14 10:16:34 2017 +0200"
      },
      "message": "MIPS: Support MultiplyAccumulate for SIMD.\n\nMoved support for multiply accumulate from arm64-specific to\ngeneral instruction simplification.\nAlso extended 550-checker-multiply-accumulate test.\n\nTest: test-art-host, test-art-target\n\nChange-Id: If113f0f0d5cb48e8a76273c919cfa2f49fce667d\n"
    },
    {
      "commit": "e9b61bac34bea439d8ce39592973a66a32f43fb7",
      "tree": "aa0043f331844ba6083b764c7bce8c2a81671058",
      "parents": [
        "675c779cb046bca49229e1e5268d0eb622159214",
        "6ef45677305048c2bf0600f1c4b98a11b2cfaffb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 11 19:29:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 19:29:31 2017 +0000"
      },
      "message": "Merge changes Ic119441c,I83b96b41\n\n* changes:\n  optimizing: Add statistics for # of constructor fences added/removed\n  optimizing: Refactor statistics to use OptimizingCompilerStats helper\n"
    },
    {
      "commit": "6ef45677305048c2bf0600f1c4b98a11b2cfaffb",
      "tree": "9a8df6a3bebe4a6120403562c21817d775a6ef36",
      "parents": [
        "1e065a54845da12541572f4f149e6ab0dcd20180"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 08 13:59:55 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 11 10:23:30 2017 -0700"
      },
      "message": "optimizing: Add statistics for # of constructor fences added/removed\n\nStatistics are attributed as follows:\n\nAdded because:\n* HNewInstances requires a HConstructorFence following it.\n* HReturn requires a HConstructorFence (for final fields) preceding it.\n\nRemoved because:\n* Optimized in Load-Store-Elimination.\n* Optimized in Prepare-For-Register-Allocation.\n\nTest: art/test.py\nBug: 36656456\nChange-Id: Ic119441c5151a5a840fc6532b411340e2d68e5eb\n"
    },
    {
      "commit": "1e065a54845da12541572f4f149e6ab0dcd20180",
      "tree": "061d28c8905c7bc8ac50c8c86f4073034afb5ba2",
      "parents": [
        "f573972a087b798f74bf5404e271355a2805e100"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 13:20:34 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 11 10:23:07 2017 -0700"
      },
      "message": "optimizing: Refactor statistics to use OptimizingCompilerStats helper\n\nRemove all copies of \u0027MaybeRecordStat\u0027, replacing them with a single\nOptimizingCompilerStats::MaybeRecordStat helper.\n\nChange-Id: I83b96b41439dccece3eee2e159b18c95336ea933\n"
    },
    {
      "commit": "52b450bd928a4096e7d9bed768757b41f4ed82e1",
      "tree": "e198348e61668e7ec54f8e67d9d8aee10cb5c75e",
      "parents": [
        "54636c0e85ad1bcd5798324c0484122364e99298",
        "5daa4950038a4329ac745059f1ad0927d4a60166"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 13:34:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 13:34:55 2017 +0000"
      },
      "message": "Merge \"Instrument ARM generated code to check the Marking Register.\""
    },
    {
      "commit": "5daa4950038a4329ac745059f1ad0927d4a60166",
      "tree": "48fdf4d85953e931bd455ede290e769979e3906c",
      "parents": [
        "2b03a1f24600c8c9558fb13d3f8bca1ef0f8ee40"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 03 17:23:56 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 11:44:50 2017 +0100"
      },
      "message": "Instrument ARM generated code to check the Marking Register.\n\nGenerate run-time code in the Optimizing compiler checking that\nthe Marking Register\u0027s value matches `self.tls32_.is.gc_marking`\nin debug mode (on target; and on host with JIT, or with AOT when\ncompiling the core image). If a check fails, abort.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: ARM device/emulator boot test with libartd\nBug: 37707231\nChange-Id: I903f44d385d66ff74d65aa09d7113aa9cb7b9f24\n"
    },
    {
      "commit": "54636c0e85ad1bcd5798324c0484122364e99298",
      "tree": "6ec47505bdb6dd232cf43b86eb9d2c438d2f052f",
      "parents": [
        "abafaf83838301b83832c33324d683e7f77aff76",
        "2b03a1f24600c8c9558fb13d3f8bca1ef0f8ee40"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 10:26:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 10:26:39 2017 +0000"
      },
      "message": "Merge \"Instrument ARM64 generated code to check the Marking Register.\""
    },
    {
      "commit": "eac21ef2617cc02e6a093d811a926115fb69bd05",
      "tree": "b9ea86a35a870669029e6375e2a01e5f90297212",
      "parents": [
        "73de4a8f0936bfb8b74db0465f277a2b68d16905",
        "1545ccc4852255870b5c4676203fc7c2f2fa393f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 10 22:45:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 22:45:45 2017 +0000"
      },
      "message": "Merge \"scheduler should not schedule volatile field accesses.\""
    },
    {
      "commit": "1545ccc4852255870b5c4676203fc7c2f2fa393f",
      "tree": "5e983b1ece6e6d7af3cd2d476bdbcac6ebb49631",
      "parents": [
        "3b21019edb5586a73516833482fc203e75309dbe"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 08 15:24:26 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 10 14:10:06 2017 -0700"
      },
      "message": "scheduler should not schedule volatile field accesses.\n\nUnresolved field accesses are not scheduled either since it\u0027s not know\nwhether they are volatile or not, and they are already expensive anyway.\n\nTest: 706-checker-scheduler\nChange-Id: Ie736542590a2459ee9b597e090fbedd4b527782a\n"
    },
    {
      "commit": "73de4a8f0936bfb8b74db0465f277a2b68d16905",
      "tree": "76ad27c460c92ea15cc6a55ce1d770d7b58ef3a8",
      "parents": [
        "461ec567f16039374dff35e2f3b808986c100249",
        "671e48a4895cc1a0b7a1458d608f8c4f9b5cf85c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 10 19:42:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 19:42:31 2017 +0000"
      },
      "message": "Merge \"Fix performance regression.\""
    },
    {
      "commit": "671e48a4895cc1a0b7a1458d608f8c4f9b5cf85c",
      "tree": "143dbcf6352af8942ae1c6d253dd6561474b6ecf",
      "parents": [
        "1bd8e5a1b2055e0ff7977ba7e149534d2ee0a696"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 09 13:16:56 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Aug 10 11:00:05 2017 -0700"
      },
      "message": "Fix performance regression.\n\nRationale:\nOne \"improvement\" overlooked in the previous CL hoists\na try-test out of the optimization to make sure we don\u0027t\nchange HIR when not needed. However, the try-test may\naffect the outcome of the test, so that was bad, bad!\n\nBug: 64091002\nTest: test-art-host\nChange-Id: Icf5f73e7cbeb209ee5fa5f6c1bef64fe127bb2fd\n"
    },
    {
      "commit": "2b03a1f24600c8c9558fb13d3f8bca1ef0f8ee40",
      "tree": "4d5fb728acd7f98f8949c84364375a804ff0ba63",
      "parents": [
        "461ec567f16039374dff35e2f3b808986c100249"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 06 16:09:59 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 10 18:17:47 2017 +0100"
      },
      "message": "Instrument ARM64 generated code to check the Marking Register.\n\nGenerate run-time code in the Optimizing compiler checking that\nthe Marking Register\u0027s value matches `self.tls32_.is.gc_marking`\nin debug mode (on target; and on host with JIT, or with AOT when\ncompiling the core image). If a check fails, abort.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: ARM64 device boot test with libartd.\nBug: 37707231\nChange-Id: Ie9b322b22b3d26654a06821e1db71dbda3c43061\n"
    },
    {
      "commit": "16e528957869c7debb1f6758c9a364819e15ee1a",
      "tree": "050d42754ce9bca3c3e23652093cd209ae59ea53",
      "parents": [
        "1d2d8b1b6b359f5f476ef78662baa4b8782be530"
      ],
      "author": {
        "name": "Mads Ager",
        "email": "ager@google.com",
        "time": "Fri Jul 14 13:11:37 2017 +0200"
      },
      "committer": {
        "name": "Mads Ager",
        "email": "ager@google.com",
        "time": "Thu Aug 10 14:04:04 2017 +0200"
      },
      "message": "RFC: Generate select instruction for conditional returns.\n\nThe select generator currently only inserts select instructions\nif there is a diamond shape with a phi.\n\nThis change extends the select generator to also deal with the\npattern:\n\n  if (condition) {\n    movable instruction 0\n    return value0\n  } else {\n    movable instruction 1\n    return value1\n  }\n\nwhich it turns into:\n\n  moveable instruction 0\n  moveable instruction 1\n  return select (value0, value1, condition)\n\nTest: 592-checker-regression-bool-input\nChange-Id: Iac50fb181dc2c9b7619f28977298662bc09fc0e1\n"
    },
    {
      "commit": "dbd05fe1a6ed2c3e23c9f6b372dd439ad59e777b",
      "tree": "81968f4f0a16cb37b57933be5cea6542795488a1",
      "parents": [
        "1d2d8b1b6b359f5f476ef78662baa4b8782be530"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Aug 10 11:41:35 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Aug 10 11:57:53 2017 +0100"
      },
      "message": "Revert recent JIT code cache changes\n\nFlakiness observed on the bots.\n\nRevert \"Jit Code Cache instruction pipeline flushing\"\nThis reverts commit 56fe32eecd4f25237e66811fd766355a07908d22.\n\nRevert \"ARM64: More JIT Code Cache maintenace\"\nThis reverts commit 17272ab679c9b5f5dac8754ac070b78b15271c27.\n\nRevert \"ARM64: JIT Code Cache maintenance\"\nThis reverts commit 3ecac070ad55d433bbcbe11e21f4b44ab178effe.\n\nRevert \"Change flush order in JIT code cache\"\nThis reverts commit 43ce5f82dae4dc5eebcf40e54b81ccd96eb5fba3.\n\nRevert \"Separate rw from rx views of jit code cache\"\nThis reverts commit d1dbb74e5946fe6c6098a541012932e1e9dd3115.\n\nTest: art/test.py --target --64\nBug: 64527643\nBug: 62356545\nChange-Id: Ifa10ac77a60ee96e8cb68881bade4d6b4f828714\n"
    },
    {
      "commit": "80dd7567f76aa4cc28a846cb8f0549b57e47fe47",
      "tree": "b60719920f257f2cf9b4f2a36cdf02a024342c29",
      "parents": [
        "a27a718f3aa89399af353b272f76d3b4fe89ed17",
        "179861c7e8bb4f5f1b44e7588fc8791446c30ae5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 10 06:23:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 06:23:55 2017 +0000"
      },
      "message": "Merge \"Run HeapLocationCollector once in scheduler instead of locally.\""
    },
    {
      "commit": "179861c7e8bb4f5f1b44e7588fc8791446c30ae5",
      "tree": "b4310dc30bfb5f161af6e8bcee8b8a39baa449ad",
      "parents": [
        "3b21019edb5586a73516833482fc203e75309dbe"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Aug 04 13:21:31 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Aug 09 13:30:21 2017 -0700"
      },
      "message": "Run HeapLocationCollector once in scheduler instead of locally.\n\nHeapLocationCollector does alias analysis globally instead of at block\nscale. For example doing it locally breaks the pre-existence based alias\nanalysis. It\u0027s also expensive to do it for each basic block.\n\nTest: run-test/gtest on target/host, 662-regression-alias\nBug: 64018485\nChange-Id: If001e2961b5a52b50b1bcefd5e4a89d9c25f25b8\n"
    },
    {
      "commit": "785e3555685279767f52f1280ea13ba35b112e86",
      "tree": "5e67791a67b94324852b35b52efcc6a3d2b94c0c",
      "parents": [
        "a97a14fa206bc8175d785c7fb1ee4e81ec4d100d",
        "b29f684b74216e8d652c48ab9f86cc7d1b327e54"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 08 19:59:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 08 19:59:53 2017 +0000"
      },
      "message": "Merge \"Set basic framework for detecting reductions.\""
    },
    {
      "commit": "b29f684b74216e8d652c48ab9f86cc7d1b327e54",
      "tree": "393839a3b0e3d3aa0fde20beaef846303ce098c7",
      "parents": [
        "bf3710ecec95b2716d1c706b5661192dd9ea6c66"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 28 15:58:41 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Aug 08 11:11:00 2017 -0700"
      },
      "message": "Set basic framework for detecting reductions.\n\nRationale:\nRecognize reductions in loops. Note that reductions are *not*\noptimized yet (we would proceed with e.g. unrolling and vectorization).\nThis CL merely sets up the basic detection framework. Also does\na bit of cleanup on loop optimization code.\n\nBug: 64091002\nTest: test-art-host\n\nChange-Id: I0f52bd7ca69936315b03d02e83da743b8ad0ae72\n"
    },
    {
      "commit": "a22cae7039a3cf23318a9fd79a07bf0ef201d5e9",
      "tree": "e88f36e78efe2c4349f2a86e4545741c520367e6",
      "parents": [
        "69223111c078f86dab4b2f265c8155b8628bf530"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon Jun 26 17:49:48 2017 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Aug 08 17:28:58 2017 +0100"
      },
      "message": "HRem support in BCE.\n\nThis CL improves BCE by adding support for handling\n\u0027i % CONST\u0027 format in array index.\n\nDevelopers would write array[i%array.length] or array[i%SIZE] format\narray accesses in code. There are several such cases in Android\nframework and libcore.\n\nTest: m test-art-host\nTest: m test-art-target\nTest: bounds_check_elimination_test\nTest: 449-checker-bce\n\nChange-Id: I9fc3e15dcaaa48c8607a2c486d11c8269932185e\n"
    },
    {
      "commit": "5aedbcd3d0a1a60643db3e904254e0a3060599bf",
      "tree": "3d136637c0ef0cb12093d6f412fe1ec7e7a26e7e",
      "parents": [
        "c7c25d5b4cf243cbbf06f2e4302a0faa5eccb42a",
        "c73ee37b76494253862ee17933acfe2b88de1a01"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 07 17:23:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 07 17:23:38 2017 +0000"
      },
      "message": "Merge \"ART: Fix loop header\u0027s predecessors reordering in SimplifyLoops.\""
    },
    {
      "commit": "d88a2b5cf4ce61bf86ce5c16d5f4d5687011dc91",
      "tree": "d21afa1caaff08f18d55af967753cc7a912069e5",
      "parents": [
        "443dbfcf39743f4fd5f1c517a28326ceb97136af",
        "895f92218f705ff8ad9c47b8be0c093130d9fbbc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 04 23:21:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 23:21:45 2017 +0000"
      },
      "message": "Merge \"ART: Fix up small header includes\""
    },
    {
      "commit": "2aa1d0b4b3eb4805ddaf6516015b9d2393707000",
      "tree": "ed1fa3ce80427201efa612247c237ba5e7dc7300",
      "parents": [
        "8f13b262bd71c00ac17fca0aedd05771f46900cd",
        "1f0eefc59d34fb5b6f088791cdd268a5ee194407"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Aug 04 20:18:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 20:18:10 2017 +0000"
      },
      "message": "Merge \"Add VisitNewArray() in lsa.\""
    },
    {
      "commit": "895f92218f705ff8ad9c47b8be0c093130d9fbbc",
      "tree": "de590436a5feb2db183e3f3e35e29817c5ea3fb6",
      "parents": [
        "c116154a4aae8ed1608a15ac602f8bd69d8ca0ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 05 09:53:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 04 07:31:52 2017 -0700"
      },
      "message": "ART: Fix up small header includes\n\nTest: m\nChange-Id: I6978d6eb4b95a6ee810e5a48ca6f5d6c590d4ce1\n"
    },
    {
      "commit": "1f0eefc59d34fb5b6f088791cdd268a5ee194407",
      "tree": "d8511d10a121b52830f132824ef5b984223ae82b",
      "parents": [
        "52a3c989f96984f9bc9e02620694fc44708a1df2"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 03 16:43:40 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 03 16:51:50 2017 -0700"
      },
      "message": "Add VisitNewArray() in lsa.\n\nWe missed one VisitNewArray() to create reference info right when a\nNewArray is seen. This may break pre-existence based aliasing analysis\nsince another reference may be wrongly treated as existing before the\nNewArray.\n\nAlso doing the same for a few more nodes that have reference values.\nThis is not correctness issue but can open up more opportunities for\ndetecting false aliases.\n\nTest: run-test on host.\nBug: 64018485\nChange-Id: I11f7857ab6b933448e7ba9ab6451d77dfc5c61a7\n"
    },
    {
      "commit": "c73ee37b76494253862ee17933acfe2b88de1a01",
      "tree": "f88685e10a1075748c7634c8ec913544f2b12068",
      "parents": [
        "399492a86198b42fded9ac1f4aa61c82869328eb"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Jul 31 15:08:40 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Aug 03 17:12:31 2017 +0100"
      },
      "message": "ART: Fix loop header\u0027s predecessors reordering in SimplifyLoops.\n\nFix the issue when after loop header\u0027s predecessors reordering in\nSimplifyLoops phi inputs are not reordered correspondingly.\n\nTest: loop_optimization_test.cc, test-art-host, test-art-target.\n\nChange-Id: I8a251a0a953d751f9bb67da58181e47d225d90e6\n"
    },
    {
      "commit": "e829831cd515d3471d78c159522895137442aacb",
      "tree": "43de4247c9d8b8d6298e67e983e3da0ff2286d99",
      "parents": [
        "83c0fefa60998a9f344dd21c968234e40c8be965"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 03 09:51:25 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 03 09:35:00 2017 +0000"
      },
      "message": "Fix null dereference in debug check.\n\nSpotted by Ivan Maidanski.\n\nSigned-off-by: Ivan Maidanski \u003ci.maidanski@samsung.com\u003e\n\ntest: test.py\nChange-Id: Icfb1c101ba59aad3a241dbf6474634e6147bb6c4\n"
    },
    {
      "commit": "2dec927e60395210946e5b9dbaa03111dad2466a",
      "tree": "2c983497c7dc23c02f08f6c302ee99a2cb992a9b",
      "parents": [
        "4a9ab7d61f3933cbe26f01d7dc5bda1e65dcd567"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Aug 02 11:41:26 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Aug 03 07:34:07 2017 +0200"
      },
      "message": "MIPS64: Implement HSelect\n\nTest: mma test-art-host-gtest\nTest: mma test-art-target-gtest in QEMU (MIPS64R6)\nTest: ./testrunner.py --target --optimizing in QEMU (MIPS64R6)\n\nChange-Id: I633fc479e0ca61b7d49b4c36fbe5db9a94da535d\n"
    },
    {
      "commit": "21c7e6fbcabef2f22b467e1e89f4abe1aa43e459",
      "tree": "1a62fe2485d9642ee3d8768c6edd005278b1014f",
      "parents": [
        "2e53f8f69f8c4175085e337445ec42aa045a2f7f"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Jul 27 16:04:42 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Aug 01 11:35:23 2017 +0100"
      },
      "message": "ART: Fix SimplifyInduction for an instruction with HEnvironment.\n\nAfter an instruction is removed during RemoveFromCycle its\nenvironment isn\u0027t properly cleaned: it still has input instructions\npresent and registered (those instructions still hold records for\nthat).\n\nTest: test-art-target, test-art-host.\nChange-Id: Iea315bdf735d75fe477f43671f05b40dfecc63a8\n"
    },
    {
      "commit": "0cab65610a6a984a94ef4c3f232fe0273e78d95b",
      "tree": "669fa607f4cd9ad8eef9223bb124fb72265a06b3",
      "parents": [
        "2e53f8f69f8c4175085e337445ec42aa045a2f7f"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Jul 25 15:19:36 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sun Jul 30 20:09:26 2017 -0700"
      },
      "message": "MIPS: Eliminate hard-coded offsets in branches\n\nThe bulk of the change is in the assemblers and their\ntests.\n\nThe main goal is to introduce \"bare\" branches to labels\n(as opposed to the existing bare branches with relative\noffsets, whose direct use we want to eliminate).\nThese branches\u0027 delay/forbidden slots are filled\nmanually and these branches do not promote to long (the\nbranch target must be within reach of the individual\nbranch instruction).\n\nThe secondary goal is to add more branch tests (mainly\nfor bare vs non-bare branches and a few extra) and\nrefactor and reorganize the branch test code a bit.\n\nThe third goal is to improve idiom recognition in the\ndisassembler, including branch idioms and a few others.\n\nFurther details:\n- introduce bare branches (R2 and R6) to labels, making\n  R2 branches available for use on R6\n- make use of the above in the code generators\n- align beqz/bnez with their GNU assembler encoding to\n  simplify and shorten the test code\n- update the CFI test because of the above\n- add trivial tests for bare and non-bare branches\n  (addressing existing debt as well)\n- add MIPS32R6 tests for long beqc/beqzc/bc (debt)\n- add MIPS64R6 long beqzc test (debt)\n- group branch tests together\n- group constant/literal/address-loading tests together\n- make the disassembler recognize:\n  - b/beqz/bnez (beq/bne with $zero reg)\n  - nal (bltzal with $zero reg)\n  - bal/bgezal (bal \u003d bgezal with $zero reg)\n  - move (or with $zero reg)\n  - li (ori/addiu with $zero reg)\n  - dli (daddiu with $zero reg)\n- disassemble 16-bit immediate operands (in andi, ori,\n  xori, li, dli) as signed or unsigned as appropriate\n- drop unused instructions (bltzl, bltzall, addi) from\n  the disassembler as there are no plans to use them\n\nTest: test-art-host-gtest\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: same tests as above on CI20\nTest: booted MIPS32R2 in QEMU\n\nChange-Id: I62b74a6c00ce0651528114806ba24a59ba564a73\n"
    },
    {
      "commit": "67abbca7cf23ef8b5c0aded0cd0a20765ff47cf2",
      "tree": "14eda472e47c476cc94f04283bc9eb7dba31c1c7",
      "parents": [
        "078a27af849f55fc903da8f291315504618f2207",
        "b45528c1f1b83ca8c970f439b54fbfcfda6908ea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 17:02:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 17:02:31 2017 +0000"
      },
      "message": "Merge \"ART: Refactor retrieval of types through ArtMethod.\""
    },
    {
      "commit": "b45528c1f1b83ca8c970f439b54fbfcfda6908ea",
      "tree": "e8f493a7b21064d353d112ea1378d7819db385aa",
      "parents": [
        "2c2e13ec24bff70db6e49270b9d4d787add9925e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 14:14:28 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 15:30:47 2017 +0100"
      },
      "message": "ART: Refactor retrieval of types through ArtMethod.\n\nSplit Get*() functions that take a \"bool resolve\"\nargument into Lookup*() and Resolve*() functions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I0b7eaa1fadc2ffa8c0168203790467f91a126963\n"
    },
    {
      "commit": "71da4878f2e3f0dc8b7c3a31b4f57172fde5f378",
      "tree": "ae560b5e56ce09cfaaf1f3c04e96366f193c4180",
      "parents": [
        "b22ae40038aeeebb16936fbf62b48f080d6e7ef4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 10:02:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 11:23:03 2017 -0700"
      },
      "message": "ART: Move simulator to art/\n\nMove the simulator library out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m\nChange-Id: I351a0061ae628c3af0462b72d4de727db296ec23\n"
    },
    {
      "commit": "03ce1df8f9b1b8d207fc685fd084b96697a50182",
      "tree": "226b0b4a98af714d848796b8c083f134f6a80fd4",
      "parents": [
        "ff80dfc82a3e5177d45099c090e33f1a060f9152",
        "786120815be223290f1cb24e88c1be9d044c8dca"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 25 08:31:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 08:31:12 2017 +0000"
      },
      "message": "Merge \"Fix x86 and x64 codegens for 8/16 stores.\""
    },
    {
      "commit": "ff80dfc82a3e5177d45099c090e33f1a060f9152",
      "tree": "9ee750c2766161d310a625450ada830bc91230b2",
      "parents": [
        "9710fbaea9022149887da4459b47011a803c76fb",
        "56fe32eecd4f25237e66811fd766355a07908d22"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "message": "Merge \"Jit Code Cache instruction pipeline flushing\""
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "56fe32eecd4f25237e66811fd766355a07908d22",
      "tree": "7c2c75d54edf0865598c106cb013f8c3794bd767",
      "parents": [
        "84b65e977302e1cf16d188636c22c164c7793554"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 21 11:42:10 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jul 24 17:29:40 2017 +0100"
      },
      "message": "Jit Code Cache instruction pipeline flushing\n\nRestores instruction pipeline flushing on all cores following crashes\non ARMv7 with dual JIT code page mappings. We were inadvertantly\ntoggling permission on a non-executable page rather than executable.\n\nRemoves the data cache flush for roots data and replaces it with a\nsequentially consistent barrier.\n\nFix MemMap::RemapAtEnd() when all pages are given out. To meet\ninvariants checked in the destructor, the base pointer needs to be\nassigned as nullptr when this happens.\n\nBug: 63833411\nBug: 62332932\nTest: art/test.py --target\nChange-Id: I705cf5a3c80e78c4e912ea3d2c3c4aa89dee26bb\n"
    },
    {
      "commit": "786120815be223290f1cb24e88c1be9d044c8dca",
      "tree": "556be2e1337a82ed7c7b4b419520bef6569e2fd7",
      "parents": [
        "ad76ef641d8570affb2e3c728b40876c4ed53fac"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 24 14:18:53 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 24 15:01:56 2017 +0100"
      },
      "message": "Fix x86 and x64 codegens for 8/16 stores.\n\nTest: 660-store-8-16\nChange-Id: I6124818894205ebeed83929f3ff00bf2733292bf\n"
    },
    {
      "commit": "ad76ef641d8570affb2e3c728b40876c4ed53fac",
      "tree": "3be2b0da866469391593f6c5142c6e4937d5a2d9",
      "parents": [
        "28e535bd94c84d1019f18c46e189928435e2938d",
        "bf9e21a33404440e1723e738975e23f7c1334e18"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 24 11:33:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 24 11:33:49 2017 +0000"
      },
      "message": "Merge \"Improve SchedulingLatencyVisitorARM on HCondition latency settings.\""
    },
    {
      "commit": "bf9e21a33404440e1723e738975e23f7c1334e18",
      "tree": "c25c5a814530c949745aa1f170505319f57a0d0e",
      "parents": [
        "89ae0f42e38a2f985ac404830f2a05fecf9547e2"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Jun 15 11:01:11 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 21 13:50:00 2017 +0000"
      },
      "message": "Improve SchedulingLatencyVisitorARM on HCondition latency settings.\n\nTest: m test-art-host\nTest: m test-art-target\n\nChange-Id: Ieb42a8511036c86a9d99972dfd7d745f64559685\n"
    },
    {
      "commit": "c73753f70ab4fc9a166637bee514b292f0fa0109",
      "tree": "a464e300d44b5a3eca10cb00cc42be7c1ab9da96",
      "parents": [
        "530a6b6902b50db43659757a6270b7d111d93a2c",
        "07bfbace6f835e6c748fd68ec7624992478b16c1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 21 09:41:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 21 09:41:58 2017 +0000"
      },
      "message": "Merge \"Hash-based DexCache methods array.\""
    },
    {
      "commit": "07bfbace6f835e6c748fd68ec7624992478b16c1",
      "tree": "5d094a00fbc90455bd9b53e042cf8b4fe8433462",
      "parents": [
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 16:33:00 2017 +0100"
      },
      "message": "Hash-based DexCache methods array.\n\nTotal boot*.art size for aosp_angler-userdebug:\n  - arm64:\n    - before: 11603968\n    - after: 10129408 (-1.4MiB, -12.7%)\n  - arm:\n    - before: 8626176\n    - after: 7888896 (-0.7MiB, -8.5%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I7f858605de5f074cbd7f0d9c4c072fbd44aee28f\n"
    },
    {
      "commit": "331f4c4e287791611733120c1a1c2afd55ecdd65",
      "tree": "1fcf7810c6c8e2df8b6191bb14a69084f3c7cf11",
      "parents": [
        "13c8343a3394414c90f2fcd1e8efff70e7d2387e",
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 14:09:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 14:09:32 2017 +0000"
      },
      "message": "Merge \"ART: Change method lookup to be more consistent to JLS and the RI.\""
    },
    {
      "commit": "ba118827465d12177f3996e50133960087b1c916",
      "tree": "f39728cdafc7810004d51c0bef2728b98993daa9",
      "parents": [
        "64a102dde8c5daad83b991710decb418ce43aac5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 15:41:56 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 13:35:06 2017 +0100"
      },
      "message": "ART: Change method lookup to be more consistent to JLS and the RI.\n\nThe method lookup for different invoke types was previously\nwidely different and didn\u0027t work well with the dex cache\nmethod array where we have only a single slot for each\nMethodId. The new behavior is to perform the same lookup for\nall cases, distinguishing only between interface and\nnon-interface referencing class, and to further align the\nbehavior with the JLS and the RI. Where the JLS conflicts\nwith the RI, we follow the JLS semantics.\n\nThe new lookup for class methods first searches the methods\ndeclared in the superclass chain (ignoring \"copied\" methods)\nand only then looks in the \"copied\" methods. If the search\nin the superclass chain finds a method that has not been\ninherited (i.e. either a private method or a package-access\nmethod where one of the classes in the chain does not belong\nto the same package, see JLS 8.4.8), we still search the\n\"copied\" methods as there may actually be a method inherited\nfrom an interface. This follows the JLS semantics where\ninherited methods are included in the search (JLS 15.12.2.1)\nbut conflicts with the RI where the private or\npackage-access method takes precedence over methods\ninherited from interfaces.\n\nNote that this search can find an accessible method that is\nnot inherited by the qualifying type, either for a package\naccess method when the referrer is in the same package but\nthe qualifying type is in another package, or for a private\nmethod where the referrer is in the same class but the\nqualifying type is actually a subclass. For the moment we\nallow such calls and we shall consider whether to throw\nan IncompatibleClassChangeError in this situation in future\nto comply with JLS 15.12.4.3.\n\nThe new lookup for interface methods searches the interface\nclass, then all the superinterfaces and then the\njava.lang.Object class, see implicitly declared methods in\ninterfaces, JLS 9.2. The search for the maximally-specific\nnon-abstract superinterface method is not yet implemented,\nbut the difference should be difficult to observe as the\nusual subsequent call to FindVirtualMethodForInterface()\nshould yield the same result for any matching method.\n\nThe new test 162-method-idx-clash exposes several cases\nwhere we previously completely messed up due to the effects\nof the DexCache, or where we were out of line with the RI.\nIt also tests a case where the JLS and the RI disagree and\nwe follow the JLS.\n\nTest: art/test/run-test --host --jvm 162-method-resolution\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --interp-ac\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nBug: 62855082\nBug: 30627598\nChange-Id: If450c8cff2751369011d649c25d28a482a2c61a3\n"
    },
    {
      "commit": "13c8343a3394414c90f2fcd1e8efff70e7d2387e",
      "tree": "c71c2e5775fe82242034c00d0a5c69c4116169bd",
      "parents": [
        "3579eb29f88a9fe4040e4d212e0acaa2e0690946",
        "4147fcc43c2ee019a06e55384985e3eaf82dcb8c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 11:32:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 11:32:20 2017 +0000"
      },
      "message": "Merge \"MIPS: Reduce Baker read barrier code size overhead\""
    },
    {
      "commit": "3579eb29f88a9fe4040e4d212e0acaa2e0690946",
      "tree": "4b732d4f9aed44e97066b8277a4880d6cbe8e081",
      "parents": [
        "24f4f7956edeffb1ae41809e09f14b6d5e7875c8",
        "420ee30f4c0f8a5bb6048df4fa27e5432ded893b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 10:32:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 10:32:35 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Merge (un)signed extensions and integer additions\""
    },
    {
      "commit": "4147fcc43c2ee019a06e55384985e3eaf82dcb8c",
      "tree": "11ec92efbfddf7736bbc74ed35fcfb3756bfcfb0",
      "parents": [
        "e8f48da635c4d07bbe431e5819da8e1fad91a8ef"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Jun 17 19:57:27 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Jul 19 15:03:10 2017 -0700"
      },
      "message": "MIPS: Reduce Baker read barrier code size overhead\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: same tests as above on CI20\nTest: booted MIPS32 and MIPS64 in QEMU with poisoning\n      in configurations:\n      - with Baker read barrier thunks\n      - without Baker read barrier thunks\n      - ART_READ_BARRIER_TYPE\u003dTABLELOOKUP\n\nChange-Id: I79f320bf8862a04215c76cfeff3118ebc87f7ef2\n"
    },
    {
      "commit": "01db5f78f627cc64f80b0c0a4eedd0a3dc8b46ca",
      "tree": "d1ee9267408e2f4d777d28bfc3f65c480f7ecd3f",
      "parents": [
        "c5b1b067fb91c10c75dd0e6dbfd91bebe74347d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "message": "Pass the logger to the JIT compiler.\n\nTo avoid effects of concurrent method entrypoints update,\njust pass the logger to the JIT compiler, which will invoke\nit directly with the pointer to the newly allocated code.\n\nTest: test.py --trace\nChange-Id: I5fbcd7cbc948b7d46c98c1545d6e530fb1190602\n"
    },
    {
      "commit": "420ee30f4c0f8a5bb6048df4fa27e5432ded893b",
      "tree": "fd72cba9ed09cf78e9377677fd144821fd9f6743",
      "parents": [
        "2f0ac4fb4486e7d9e5c1545d45a2b9b818a80dc3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Feb 21 18:10:26 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Jul 18 20:19:58 2017 +0100"
      },
      "message": "ARM: VIXL32: Merge (un)signed extensions and integer additions\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: I041e80e51bf0954b38ab20dfa9b14aa7f6d6c53b\n"
    }
  ],
  "next": "9fb4e85d6e42b3f060ddcefcbf39bdfec656fc52"
}
