)]}'
{
  "log": [
    {
      "commit": "169722b0d6c680db33a6a2d602735a09db83e71d",
      "tree": "a616720d9e00f7e078d0689b616b29b39ac751a9",
      "parents": [
        "43e07b6b16d3a84014bb4747211635b9ef3d1801"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 14:01:59 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 22:03:36 2017 +0000"
      },
      "message": "Add hooks to avoid collecting code for run-tests.\n\nensureJitCompiled ensures a method gets compiled, but does\nnot prevent it from being GC\u0027ed. Add a hammer hook to avoid\ndoing any JIT code cache GC.\n\ntest: test-art-host with gcstress and jit.\nChange-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf\n"
    },
    {
      "commit": "4e03c5286321f5285369c9e2bd3813288f5cf2dc",
      "tree": "2a56b3d2606c081e7d27464d761b3b849a811dc2",
      "parents": [
        "49a694b84b42df28ee08f97a3660bda3a2cb264a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jan 14 01:48:01 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 17 10:15:36 2017 -0800"
      },
      "message": "Revert \"Revert \"Try really hard for JIT in test 916\"\"\n\nWe were looping forever waiting for the entrypoint to be switched\ndespite the JIT being disabled by the tracing instrumentation.\n\nThis reverts commit ca4feac9484464a858990ca588398fceead55354.\n\nReason for revert: Problem with ensureJitCompiled fixed\n\nTest: ART_TEST_TRACE\u003dtrue        \\\n      ART_TEST_OPTIMIZING\u003dfalse  \\\n      ART_TEST_INTERPRETER\u003dtrue  \\\n      ART_USE_READ_BARRIER\u003dfalse \\\n      mma -j40 test-art-host-run-test-916-obsolete-jit\n\nChange-Id: I11f1e3f6cf65f90509a1ba66625a7988f3d94af6\n"
    },
    {
      "commit": "4cddd03950bb21e950afd72cad87e963bc53ea10",
      "tree": "d7dc428c8a0d451d57460ba813a1560dafe77cac",
      "parents": [
        "dd1dd32c87ee88b3810191dcaac94f094a9a856f",
        "ca4feac9484464a858990ca588398fceead55354"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jan 14 01:46:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 14 01:46:29 2017 +0000"
      },
      "message": "Merge \"Revert \"Try really hard for JIT in test 916\"\""
    },
    {
      "commit": "ca4feac9484464a858990ca588398fceead55354",
      "tree": "7dca9967f22efb10ef1807e98065b87ca5ec85d0",
      "parents": [
        "a64fa43345124eb7891b9d6a6258f6ed0cbd1504"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 22:47:50 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 22:49:33 2017 +0000"
      },
      "message": "Revert \"Try really hard for JIT in test 916\"\n\nThis reverts commit a64fa43345124eb7891b9d6a6258f6ed0cbd1504.\n\nReason for revert:  makes test-art-host-run-test-debug-prebuild-interpreter-relocate-trace-cms-checkjni-picimage-npictest-ndebuggable-916-obsolete-jit fail\n\nTest: Treehugger\nChange-Id: Idce6fc9310fe85ae62dd19da1e978299951c19ee\n"
    },
    {
      "commit": "8799ea0a82bbe7d4fbd2375ae20fa8a720c887d4",
      "tree": "81a88fa015b8c31cffe3122a4cfaedc8280320f7",
      "parents": [
        "2f12c6581b334e81949016cf262f7ae1dd0737ea",
        "a64fa43345124eb7891b9d6a6258f6ed0cbd1504"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 13 19:53:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 13 19:53:13 2017 +0000"
      },
      "message": "Merge \"Try really hard for JIT in test 916\""
    },
    {
      "commit": "a64fa43345124eb7891b9d6a6258f6ed0cbd1504",
      "tree": "2fb76004760fe9e8894c533d154a373b9dd958db",
      "parents": [
        "20e9474df95e099f58b5310188fea3631e9f7c36"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 09 13:31:06 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 08:34:05 2017 -0800"
      },
      "message": "Try really hard for JIT in test 916\n\nSometimes we would fail to jit stuff due to high load. This makes us\ntry even harder to JIT so we won\u0027t fail in these scenarios.\n\nTest: mma -j40 test-art-host\nTest: stress --cpu 60 \u0026; while ./test/run-test --host 916; do ; done\n\nChange-Id: Ic944582bf021f119b8bc3f135af508ed8a8586c4\n"
    },
    {
      "commit": "7e25123127b0b02678a5101d0faa18b65895d723",
      "tree": "5df01b0d066df2ab177af77e8416c13cdc9e97d9",
      "parents": [
        "6f4b55bd48f6d1dd8e92f147b6c52e21a18c62f9",
        "d5f56272d5b87d76b5fc6fca3d5ab65ed543acb6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 13 15:10:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 13 15:10:47 2017 +0000"
      },
      "message": "Merge \"ART tests: do not retrieve OatQuickMethodHeader for bridge methods\""
    },
    {
      "commit": "dba61481035b7944173181ec9ee02aea41dd0e29",
      "tree": "8629775e657cc8968e2f8fa2af6256c7a58c7dd4",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 08:20:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 11:43:14 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\n\nA GetDeclaringClass()-\u003eGetDexCache() got inserted during the\nmerge/review process meaning that we would try to access incorrect\ndex-cache in obsolete methods in some situations.\n\nAlso when using tracing we would loop forever (or at least until an\nOOM error) in test 916 due to tracing forcing InterpretOnly mode\nmeaning methods would never be jitted.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nThis reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.\n\nChange-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48\n"
    },
    {
      "commit": "441a5e92ae49d4e78e26bc170732cb6e3d745b6b",
      "tree": "87881383fd09c1974b5ddcfc6be033a934b1a179",
      "parents": [
        "30bc64006c082935b10b500f60c0f7b6bac3b3e1",
        "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\""
    },
    {
      "commit": "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "ce77fc0e7f60a15354bb20c356537cbf8b53b722"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\n\nFails in tracing mode\n\nBug: 32369913\nBug: 33630159\n\nThis reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.\n\nChange-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69\n"
    },
    {
      "commit": "07001c8540718117b91e8137804fa94d35cbb37a",
      "tree": "43f61685710ccf7e2f0f35671f69a8c2588c476d",
      "parents": [
        "1aa03b379f35f17eec1e88edfa9b345b7a992854",
        "6cb21552c97d0b8987b5defdd7407eda9b8e60bc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 20 17:49:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 17:49:03 2016 +0000"
      },
      "message": "Merge changes Ie74f2dbe,I092d2e95,I5a75f5c4\n\n* changes:\n  Fix 616-cha assumptions.\n  Fix JIT crash due to unverified dead code\n  Use interpret-only instead of verify-at-runtime when testing JIT\n"
    },
    {
      "commit": "857f058d4b7bd07c5c99eda416ad91516a10b4da",
      "tree": "aafff6fc7ac9578955661366e779c858945ae71c",
      "parents": [
        "0966558b075b9b454e1a7864306eb206bf0c0094"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 14:36:59 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 16:15:24 2016 +0000"
      },
      "message": "Fix JIT crash due to unverified dead code\n\nThe JIT compiler assumes that it only gets completely verified code. To\nwork around potential unverified dead code it uses kAccDontBotherCompile\nflag set during runtime verification. However, if a class is verified\nduring a prior dex2oat the flag is not persisted and JIT happily things\nthat everything is ok.\n\nThe simplest fix is to mark classes with potential unverified dex code\nas verify at runtime. We only do this for apps and assume that\neverything in the boot image is well formed.\n\nTest: m test-art-host\nBug: 31000839\nChange-Id: I092d2e9553cd1c577036d78e8563a7a39d6cb7b9\n"
    },
    {
      "commit": "ce77fc0e7f60a15354bb20c356537cbf8b53b722",
      "tree": "b4301967c423ab190a4274409d99a3d6e23f0e8a",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:05:52 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 19 14:26:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Basic obsolete methods support\"\"\n\nThis reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.\n\nThere were 2 issues with the original CL\u0027s test 916-obsolete-jit that\ncaused it to sporadically fail.\n\nFirst, when checking if we had jitted the function under test in\n916-obsolete-jit we failed to check to see if the function \u0027doCall\u0027,\nwhich is used to work-around bugs in our deoptimization \u0026 compilation\nsystems, had also been jitted.\n\nIn the case where the \u0027sayHi\u0027 function had been jitted but the\n\u0027doCall\u0027 function had not we would (correctly) fail to redefine the\n\u0027Transform\u0027 class since we would not be able to deoptimize the \u0027sayHi\u0027\nfunction since it is under a quick_to_interpreter_bridge (runtime)\nframe.\n\nSecondly, the function Main.isInterpretedFunction was incorrect and\nwould always return false, regardless of the actual state of the\nfunction. This would cause the test to fail as the\nquick_to_interpreter_bridge frame prevented deoptimization of the\nobsoleted function. Usually the warm-up period was enough to make sure\nthe methods were jitted anyway but this was not guaranteed.\n\nBoth of these problems become more likely to occur on systems with\nmore cpu contention such as the buildbots.\n\nTest: stress --cpu 60 \u0026; while ./test/run-test --host --jit 916; do ; done\n\nReason for revert: Fixed bug in test that was causing failures.\n\nOriginal Tests:\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: If1a92e47b90965a7dc21c5826185debe62bd1554\n"
    },
    {
      "commit": "ad0c8bdc2c2e4d2a469455bcde7aeb5fc7482875",
      "tree": "fe5fe711a574386472408bda17b13a2ca2668c7e",
      "parents": [
        "132eb43396bdb0b9bdacf069289f019d85d358fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 19 19:31:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 19 19:31:26 2016 +0000"
      },
      "message": "Revert \"Fix JIT crash due to unverified dead code\"\n\nBroke method_verifier_test and image_test.\n\nBug: 31000839\n\nThis reverts commit 132eb43396bdb0b9bdacf069289f019d85d358fc.\n\nChange-Id: I85923e6bdb3e76f54978658aad816d4c79fc339e\n"
    },
    {
      "commit": "132eb43396bdb0b9bdacf069289f019d85d358fc",
      "tree": "097ad8979e90555fd46e49eda32fe4b0c579acfd",
      "parents": [
        "71464a10a434e5b8aac75998d08b2cdcbce57bab"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 28 20:09:56 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 19 15:36:41 2016 +0000"
      },
      "message": "Fix JIT crash due to unverified dead code\n\nThe JIT compiler assumes that it only gets completely verified code. To\nwork around potential unverified dead code it uses kAccDontBotherCompile\nflag set during runtime verification. However, if a class is verified\nduring a prior dex2oat the flag is not persisted and JIT happily things\nthat everything is ok.\n\nThe simplest fix is to mark classes with potential unverified dex code\nas verify at runtime. We only do this for apps and assume that\neverything in the boot image is well formed.\n\nTest: m test-art-host-706-jit-skip-compilation\nBug: 31000839\n\nChange-Id: Ib73de1888581bb7202474cfd7aca70af4cc2cc00\n"
    },
    {
      "commit": "b81a9840b44480bfeacd74b8d9f51e06f295411d",
      "tree": "d79a3567b272b6eb4fb94d66a537cf92bef455db",
      "parents": [
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "message": "Revert \"Basic obsolete methods support\"\n\nThis reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.\n\nReason for revert: Some sort of race in JIT\n\nChange-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e\n"
    },
    {
      "commit": "d8936da27b792d1ca02e59c92456a1a53c7b9905",
      "tree": "6a593dd426e7f4a15c651dd3b872f22fb64f09ce",
      "parents": [
        "7c73bf3518eea7544406eadfed6946411c54a267"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 28 16:24:32 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 13:01:27 2016 -0800"
      },
      "message": "Basic obsolete methods support\n\nAdd support for executing obsolete methods following redefinitions.\nThis support includes methods that have been jitted. This does not add\nany additional validity checks to our redefinition functions.\n\nNote using work-arounds to ensure 916 works pending some fixes to the\ncompiler, deoptimizer, or both.\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432\n"
    },
    {
      "commit": "51c17faee9ff0b93914ae2d308cfa24f0bc71d0a",
      "tree": "84db285eec16e04dd5c14ce3138521dfcfcf1e4b",
      "parents": [
        "3d32bf0b1e9469ffcb7fd7793d56d0193e1d5d5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 15:56:12 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 13:12:17 2016 +0000"
      },
      "message": "Create empty VerifiedMethod after vdex verification.\n\nThe compiler and quicken require the existence of a\nVerifiedMethod for compiling a method.\n\nThis fixes the regression of not doing any compilation when\npassed --input-vdex.\n\nTest: 629-vdex-speed\n\nChange-Id: Ie65578eadd09099df1c1a403d96c15e5da78a901\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "b2aaf1d63f94852960796603d6872c11eafb789f",
      "tree": "afcaf62c62d4acf920fd9b2d6bd5b344ed1ffb0a",
      "parents": [
        "ca6a71943230cd91061cfaa2bbd8f2a776a673d9",
        "44cea196f8cc18ba5c72e29754ab11bf51437e06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 01 09:11:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 01 09:11:22 2016 +0000"
      },
      "message": "Merge \"Address missed review comment.\""
    },
    {
      "commit": "44cea196f8cc18ba5c72e29754ab11bf51437e06",
      "tree": "92e908b405171b3c49a8434b2f636c3f2fe8f995",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 03 20:48:13 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 28 18:55:14 2016 +0100"
      },
      "message": "Address missed review comment.\n\nBug: 30351473\ntest: m test-art-host\n\nChange-Id: I8d0d536e9280555d156280d87055631cabf5b2b7\n"
    },
    {
      "commit": "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1",
      "tree": "d2f02420f82d76d10dc0d80f431c9f4aba03ac82",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 14:44:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 13:21:44 2016 +0100"
      },
      "message": "Remove #include \"oat_file.h\" from class_linker.h .\n\nRefactor the OatClass and OatMethod related functions from\nClassLinker to OatFile and ArtMethod, respectively. Refactor\nthe remaining ClassLinker dependencies on OatFile to break\nthe #include dependency and reduce incremental build times.\n\nTest: m test-art-host\nChange-Id: Iebc5b9f81b48fbcf79821cc827a5d7c4a0261bf6\n"
    },
    {
      "commit": "d5f56272d5b87d76b5fc6fca3d5ab65ed543acb6",
      "tree": "9e0487c5308fa17a938cec2a6f1b864851fe1485",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Sep 28 10:38:25 2016 +0700"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 03 09:19:26 2016 +0100"
      },
      "message": "ART tests: do not retrieve OatQuickMethodHeader for bridge methods\n\nSome ART tests (e.g. 604-hot-static-interface) call\nOatQuickMethodHeader::FromEntryPoint() for a method\u0027s quick compiled\ncode entry. If the entry has not been set to a compiled code then it\ncan be set to art_quick_to_interpreter_bridge. This method does not\nhave a OatQuickMethodHeader and FromEntryPoint() must not be called.\n\nThis patch fixes ART tests to retrieve OAT header only for methods\nthat reside in the JIT code cache.\n\nChange-Id: I21105735f146e6c67c24c970a42451e3300c067c\nTest: test-art-host-run-test-debug-prebuild-jit-relocate-ntrace-cms-checkjni-picimage-npictest-ndebuggable-604-hot-static-interface32\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "3a21e386fa55a8b86dffa5250985b263fcfd2155",
      "tree": "ce6fecaae067f86e094ae7844ee5fa4ae8ee63e8",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 12:38:38 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 15:15:28 2016 +0100"
      },
      "message": "Clean up some includes.\n\nRemove some unnecessary includes from header files, replace\nothers with forward references and add includes to source\nfiles as needed. Reduce dependency on stack.h by pulling\nStackReference\u003c\u003e out to its own file.\n\nTest: m test-art-host\nChange-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2\n"
    },
    {
      "commit": "d55f4ab2e119395bbae92488707929b8075c126b",
      "tree": "4d9f823fb03f07e7172e0aae05c1820d33ef8e20",
      "parents": [
        "8055598c8dd4f3cd4d8490b5fc576161467f8bcb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 18:49:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 22:21:52 2016 +0100"
      },
      "message": "Scope the compilation and Create the ProfilingInfo in the loop.\n\nWe need to release the mutator lock to avoid being in a deadlock.\n\nAlso allocating the profiling just before compiling in the unlickely\nevent that it got collected after releasing the mutator lock.\n\nbug:30351473\nChange-Id: I98dba646536d857152949b92f6c69ff9a03cf783\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "491617a612c8a1c890e72d8ba780a151ddee8e11",
      "tree": "3f10b3af3363d70173f43a4235a782e166a5afe2",
      "parents": [
        "2be946bbf995496fe56364d9b7c4957fcb6aeec5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 19 17:06:23 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 19 17:46:29 2016 +0100"
      },
      "message": "JIT: Don\u0027t update the dex cache of another class loader.\n\nThis only works for properly delegating class loaders. But Java allows\nnon-delegating ones :(\n\nbug:29964720\n\nChange-Id: I8b785e6cdfe9a2b77322521a02b8e59ec332ad83\ntest:612-jit-dex-cache\n"
    },
    {
      "commit": "f711f2cf3c28dfe865e36f17419a16f06a0ebb5a",
      "tree": "3657d68b2a2fb67f4919cb97ca279cf9310224e9",
      "parents": [
        "bbfa42aa4c4b5cbc2ed2d8bdea6ff76da615a8aa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 23 12:29:39 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 26 13:24:54 2016 -0700"
      },
      "message": "Partial fragment deoptimization\n\nWe used to do either single frame deoptimization, or full fragment\ndeoptimization which deoptimizes all the frames in a fragment.\nThis change allows some methods to be not deoptimizeable, likely due\nto some kind of optimization. So we need another deoptimization mode\nthat unwinds partial fragment. Deoptimizations are now generalized into\neither full or partial fragment. A full fragment deoptimization will\ndeopt all frames in the fragment, and then returns from the invoke stub\nto enter interpreter. A partial fragment deoptimization will deopt a\nsingle frame, or all frames up to the method that\u0027s not deoptimizeable,\nand then jumps to the interpreter bridge.\n\nCurrently code not deoptimizeable is the code in boot image since the\ncode may not be compiled with debuggable flag.\n\nBug: 28769520\nChange-Id: I875c694791cc8ebd5121abcd92ce7b0db95aca38\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "0dfc9bc0cca3ae15dc75bbea3ca9b6d7508ce893",
      "tree": "abdc76069da7142d899eb776a0d82bdbbe316c94",
      "parents": [
        "1aba494df441c31836e5b7d4d8e408420a93cb8d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 17:13:59 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 05 08:57:04 2015 -0700"
      },
      "message": "ART: Add more deopt tests\n\nExtend libarttest with the ability to turn off asserts for method\nstate. Use this to put asserts into test functions, but turn them\noff if the test wouldn\u0027t react as we want, e.g., when we\u0027re in\ninterpreter mode.\n\nExtend run-test 449 by adding asserts for the method state for the\nexpected deopt cases. This tests both standard behavior, as well\nas single-frame deoptimization.\n\nBug: 21611912\nChange-Id: I27fa5e3e44d8c5eab57962d144c6aec96587bf45\n"
    },
    {
      "commit": "89df7bfc41a4de9685f84e7db07f77db3fd485fc",
      "tree": "f1a266870d0020b9b814022698569affc90e3844",
      "parents": [
        "931e26843bbb688eacfa67b40414c6b8f221a56a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 13:13:21 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 13:13:21 2015 -0700"
      },
      "message": "ART: Refactor libarttest C++ code\n\nRefactor some libarttest JNI functions into a common directory, so\nthey can be easily used by multiple tests without code duplication.\nThis is preparation for better deoptimization state testing.\n\nChange-Id: I43f7340b699b26930aabfd665c707e0485b17fc8\n"
    }
  ]
}
