)]}'
{
  "log": [
    {
      "commit": "766e74f58312af149219473a691c6f2d9bcca428",
      "tree": "4c216f5ebd128075f20d0857afb383d31da20c5a",
      "parents": [
        "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 02 17:12:24 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Cleanup the cpp-define-generator definitions.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Ifda7a51d19156b1eb62bc39b16ec559d609744e5\n"
    },
    {
      "commit": "6c1660d6bd7fb9f032803095665c4077b666ffad",
      "tree": "965f907b653971411c1ac681d26604d1fd6786a6",
      "parents": [
        "9f4260f09dfc32045340d8ace0110243c1ad7b20"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 03 11:34:04 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 03 11:38:28 2018 +0100"
      },
      "message": "Fix: Move InterpreterCache to right below tlsPtr_\n\nDon\u0027t undefine ALIGN_UP at the end of the file.\n\nTHREAD_INTERPRETER_CACHE_OFFSET is defined in terms of ALIGN_UP,\nif ALIGN_UP is undefined, the code does not compile.\n\nNote that I intend to remove this whole file very soon anyway.\n\nTest: THREAD_INTERPRETER_CACHE_OFFSET can be used from assembly\nChange-Id: If126c350a8010eec1877b241c5220a63637c1ebd\n"
    },
    {
      "commit": "bb68fda18ef3d7ea183a322831a5afd20b6a8bff",
      "tree": "5745a64e0e410ac3fe66cd54abd2bbfb84539e93",
      "parents": [
        "29391756f70489a5ab659988f058e359527a7af1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 01 13:21:47 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 01 14:57:18 2018 -0700"
      },
      "message": "Move InterpreterCache to right below tlsPtr_\n\nChange the position of the InterpreterCache field in Thread to be\ndirectly below the tlsPtr_ field. Since both members of the tlsPtr_\nand InterpreterCache fields are used by asm_code we need their offsets\nin asm_support.h. The fields at the end of the Thread struct have been\nundergoing changes. By moving this field up we avoid the need to\nupdate asm_support.h whenever one of the fields is modified.\n\nTest: ./test.py --host\nChange-Id: Ic2863116ed446af155badfc3bf098add7ba0b699\n"
    },
    {
      "commit": "912f36c954a91bdc7d9801a111ba089ec2a23681",
      "tree": "87e576e86867140c478d6959ce20a261daaad60a",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Sep 08 12:22:58 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 27 15:16:09 2018 +0100"
      },
      "message": "Add small thread-local cache for use by the interpreter.\n\nSmall (one page) cache which can be used on the hottest paths\nin the interpreter and which does not require synchronisation.\nThis CL adds the code but it does not use it for anything yet.\n\nTest: test-art-host-gtest\nChange-Id: I41d4e7a86a0f62f7a4efc165b8934232b4e766c7\n"
    },
    {
      "commit": "d109e30eab8ba25f8d89be2a83d9036e2d541af2",
      "tree": "24df91603efe9ce8c4a2efd09ac402aceb10df4e",
      "parents": [
        "c916736ca1e375c276df251446baf2ac8ff3eb13"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 27 10:25:41 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:51 2018 -0700"
      },
      "message": "Don\u0027t use StringFactory.newEmptyString in compiled code\n\nWhen compiling debuggable code we would compile a new-instance String\ninstruction into a StringFactory.newEmptyString invoke. This\nadditional invoke could be observed using tracing and is inconsistent\nwith the interpreter, where the string is simply allocated directly.\nIn order to bring these two modes into alignment we added a new\nAllocStringObject quick entrypoint that will be used instead of the\nnormal AllocObject\u003c...\u003e entrypoints when allocating a string. This\nentrypoint directly allocates a new string in the same manner the\ninterpreter does.\n\nNeeds next CL for test to work.\n\nBug: 110884646\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: Manual inspection of compiled code.\nChange-Id: I7b4b084bcf7dd9a23485c0e3cd2cd04a04b43d3d\n"
    },
    {
      "commit": "4c8e12e66968929b36fac6a2237ca4b04160161e",
      "tree": "d8bbfd72a978c69ef2eef98c37e7869673c52295",
      "parents": [
        "20c64f8d802cc575cc9a1a1f6c493a611b23e2ee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 18 08:33:20 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jun 11 10:57:17 2018 +0100"
      },
      "message": "ART: Adds an entrypoint for invoke-custom\n\nAdd support for the compiler to call into the runtime for\ninvoke-custom bytecodes.\n\nBug: 35337872\nTest: art/test.py --host -r -t 952\nTest: art/test.py --target --64 -r -t 952\nTest: art/test.py --target --32 -r -t 952\nChange-Id: I821432e7e5248c91b8e1d36c3112974c34171803\n"
    },
    {
      "commit": "dbaa5c7ba8935cf87ceb40a4054f9842929e9a51",
      "tree": "5037625c80cb97a0e13026dc450db28e59ff72ca",
      "parents": [
        "51dda39549033b3c50a7fce5522ffc81325db54b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 10 08:22:46 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 11 11:55:30 2018 +0100"
      },
      "message": "ART: Compiler support for const-method-handle\n\nImplemented as a runtime call.\n\nBug: 66890674\nTest: art/test.py --target -r -t 979\nTest: art/test.py --target --64 -r -t 979\nTest: art/test.py --host -r -t 979\nChange-Id: I67f461c819a7d528d7455afda8b4a59e9aed381c\n"
    },
    {
      "commit": "18259d7fb7164a5e029df4f883b3a79ccc2403e8",
      "tree": "ba378bfdef4127bb0607215186e3b150fd38bcdf",
      "parents": [
        "922501b4bbf724e4259477a27764291684eedffb"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Apr 12 11:18:23 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 10 15:04:09 2018 +0100"
      },
      "message": "ART: Compiler support for const-method-type\n\nImplemented as a runtime call.\n\nBug: 66890674\nTest: art/test.py --target -r -t 979\nTest: art/test.py --target --64 -r -t 979\nTest: art/test.py --host -r -t 979\nChange-Id: I4b3d3969d455d0198cfe122eea8abd54e0ea20ee\n"
    },
    {
      "commit": "4d17987da58d9411adbed1a18203d76d6119612d",
      "tree": "f2953a0eb3ebc3f8533d22c14f4a09d7f0d4168d",
      "parents": [
        "e57043081e6b091a9fd23a84043373148ae72f1f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 19 14:50:10 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 22 18:35:16 2018 +0000"
      },
      "message": "ART: Add entrypoint and intrinsic for Math.pow().\n\nMathBenchmarks.java#timePow results on taimen\u0027s little cores\nfixed at frequency 1401600 with forced JIT compilation:\n  - before:\n    - X32: 356.33 (@FastNative), 315.39 (@CriticalNative)\n    - X64: 357.31 (@FastNative), 315.37 (@CriticalNative)\n  - after (LICM defeats the benchmark):\n    - X32: 2.88\n    - X64: 2.87\n  - after but with kAllSideEffects to prevent LICM:\n    - X32: 275.42\n    - X64: 275.67\n\nTest: Rely on TreeHugger.\nBug: 70727450\nChange-Id: Iaa31f70acabbd57c163cfeafe02eed67c1348861\n"
    },
    {
      "commit": "fc9555dac51a3cf12bb13f4e3781d2f2f6c9f91f",
      "tree": "4b7e722061366679f2fbe3478c3fb3ca029b8620",
      "parents": [
        "fd443eb00b2456006f03252ba085c1f851e8adf5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 05 16:32:19 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 05 17:11:15 2017 -0800"
      },
      "message": "Remove mterp reliance on code item layout\n\nPass dex instruction pointer intead of code item pointer to the mterp\nentry code. This removes a dependency on the code item layout since it\nmay change in the future for compact dex.\n\nBug: 63756964\nTest: test/testrunner/testrunner.py --host -j40\n\nChange-Id: Icfffb2e17372439f0833ecce1c0ddb05e7e7e69c\n"
    },
    {
      "commit": "4584122ca1ec38e78efb2845375f91ca9e1fc71e",
      "tree": "de3893930c5e849be91d98ec01a337b91bd26e2e",
      "parents": [
        "09659c22dc2f2c85a0ade965d1fc5160944b8692"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 11:31:44 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 11:31:44 2017 -0700"
      },
      "message": "ART: Remove suspend-check optimization\n\nThis code has been untested and dead for a while. Remove it.\n\nTest: m (bullhead)\nTest: m (aosp_mips64)\nChange-Id: Ib44597830c4be4db97420c910e716048308e9afa\n"
    },
    {
      "commit": "217488a9ddf351033c1688198c492b9c40c36d8a",
      "tree": "98dc5553e2538b9b508c1837bc27b383d73b7149",
      "parents": [
        "e16ed6da590e717e28c07e2c9d1b342efc678870"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 08:34:42 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:50:43 2017 -0700"
      },
      "message": "ART: Move read barrier config out of globals\n\nReduce the global dependencies by refactoring where the read\nbarrier constants are defined.\n\nRename read_barier_c.h to read_barier_config.h and ifdef the\nC++ parts to have a common header for both C/asm and C++.\n\nPut heap poisoning configuration into its own minimal header.\n\nFix up transitive includes.\n\nTest: m\nChange-Id: I159669ec61e3d1c4c7ddcd79e63b023a0519717a\n"
    },
    {
      "commit": "cf83aaa468fa1b87746ac2e8ca95e80aa8c29a81",
      "tree": "2e74a2ac49fab21ce80f5b7e11a7c5e77097d735",
      "parents": [
        "de07216fe9824f68ba76bf4c14158ec4f55af2cb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 03:21:54 2017 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 03:21:54 2017 +0000"
      },
      "message": "Revert \"mirror: Make Class::Status 64-bit field\"\n\nThis reverts commit de07216fe9824f68ba76bf4c14158ec4f55af2cb.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Id86866a14ad7caf8e23181be19fc750cb3f46667\n"
    },
    {
      "commit": "de07216fe9824f68ba76bf4c14158ec4f55af2cb",
      "tree": "a26c44ab0a2c45b8bcb24976ef74d28ff867d919",
      "parents": [
        "82629c9182dffb823f05dec30f7ac72cf8fb3ba5"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 07 14:42:46 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 07 15:15:44 2017 -0700"
      },
      "message": "mirror: Make Class::Status 64-bit field\n\nTemporarily merge this CL, then revert.\n\nWe need it to submit Zhengkai\u0027s CL to go/lem because of the libcore\nchange.\n\nBug: 64692057\nTest: art/test.py -j32 --host\nChange-Id: If104832c66973e6ffe8baf81ad1b32237ee78a80\n"
    },
    {
      "commit": "e814f9d09c0fb1b678e610780d11ce3577db3599",
      "tree": "fd0aeecb079c0e2383d73907410c831f3e172779",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 31 16:14:39 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 29 14:52:11 2017 -0700"
      },
      "message": "JVMTI NotifyFramePop support\n\nAdds support for the JVMTI can_generate_frame_pop_events capability.\nThis includes the NotifyFramePop function and the FramePop event.\n\nWe mark the interpreter shadowframes directly to get the events. This\nrelies on the fact that we never replace extant shadow-frames on the\ninterpreter stack to ensure that we can distinguish which jvmti-envs\nrequested the frame pops.\n\nTest: ./test.py --host -j50\nBug: 34414072\nBug: 62821960\nBug: 65129403\n\nChange-Id: I6e79e39f62fdf79268540c5c1be6311df704cff7\n"
    },
    {
      "commit": "b2d18fa4e33ca119654ced872c70fe198b0b2db5",
      "tree": "9f0e3ac72b9b7b08794e1ecf458620ba19437465",
      "parents": [
        "58794c5c23f46a7476a58e5a10dbeebb6321aa90"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 06 20:46:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 11:36:45 2017 -0700"
      },
      "message": "ART: Clean up asm_support.h\n\nThe includes are only ever really needed for tests. Factor out\ngeneration of the test function into asm_support_check.h\n\nFix up missing includes, mainly intern_table.h.\n\nTest: m\nTest: m test-art-host\nChange-Id: I435199e6211e368be0a06c80d8fa95b9593aca31\n"
    },
    {
      "commit": "8228cdf4ad6322ec8133564aaa51f966d36c0f17",
      "tree": "6d2f5cf4e742ad644ad30eb96a9f943c9ebcb34b",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 15:03:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:15 2017 -0700"
      },
      "message": "ART: Move CalleeSaveType to callee_save_type.h\n\nMove the type out of runtime to decrease dependencies. Make it\na proper enum class. Fix up usage.\n\nTest: m test-art-host\nChange-Id: Id84c44bf3c59f37c8a43548e720c5fb65707b198\n"
    },
    {
      "commit": "513061a792b22c417c938d31c19581390709561c",
      "tree": "80b4fdce03711170626aa5640d07b07de4a326a1",
      "parents": [
        "38c4ae5f4c5a033b7a7441032f39ea58f5772d4c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 01 09:17:34 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 01 12:59:13 2017 -0700"
      },
      "message": "ART: Clean up thread.h and thread_list.h\n\nRemove dependency on stack.h and gc_root.h. Remove unused object\ncallbacks include. Factor out ManagedStack into its own set of files.\nFix up users of transitive includes.\n\nTest: m test-art-host\nChange-Id: I01286c43d8c7710948c161b1348faabb05922e59\n"
    },
    {
      "commit": "d49012909625c3bf87bf51138fe79315ce1b1bdc",
      "tree": "349ef2cdcb7255d042244046601bd0fd5eb3a092",
      "parents": [
        "726e1793d3f54470705e5b84e7860074e029b0ed"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 18:41:34 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 20:44:33 2017 -0700"
      },
      "message": "ART: Clean up heap headers\n\nUse more forward declarations for accounting structures and spaces.\nFactor out structs to reduce header surface. Remove heap include where\nunnecessary. Fix up transitive users. Move some debug-only code out\nof line.\n\nTest: m test-art-host\nChange-Id: I16db4aaa803f39e155ce6e1b0778b7e393dcbb17\n"
    },
    {
      "commit": "6bc7774426cc0b6bbab5566fa62b3c509455e583",
      "tree": "06c47a48c43924e8cdc80ed3ec31b8fddb4b39b6",
      "parents": [
        "8d0f3aaf28358697ec812955cdf975ca6c6ff901"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 17:46:23 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 19 21:26:56 2017 -0700"
      },
      "message": "Use partial TLAB regions\n\nInstead of having 256K TLAB regions, have 256K TLABs split into\n16K regions. This fixes pathological cases with multithreaded\nallocation that caused many GCs since each thread reserving\n256K would often bump the counter past the GC start threshold. Now\nthreads only bump the counter every 16K.\n\nSystem wide results (average of 5 samples on N6P):\nTotal GC time 60s after starting shell: 45s -\u003e 24s\nAverage .Heap PSS 60s after starting shell: 57900k -\u003e 58682k\n\nBinaryTrees gets around 5% slower, numbers are noisy.\n\nBoot time: 13.302 -\u003e 12.899 (average of 100 runs)\n\nBug: 35872915\nBug: 36216292\n\nTest: test-art-host\n\n(cherry picked from commit bf48003fa32d2845f2213c0ba31af6677715662d)\n\nChange-Id: I5ab22420124eeadc0a53519c70112274101dfb39\n"
    },
    {
      "commit": "bcf716f3e0c72aa8bb75b15e5b273a813658fdb5",
      "tree": "92d55371dc3859f4be6c05eb3fcd2b4670057b47",
      "parents": [
        "09c8235da86ce1d01b4dfb38a5af1481d13efe80"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 23 10:43:09 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 24 11:07:53 2017 +0000"
      },
      "message": "Revert^2 \"Enable String compression.\"\n\nTest: m test-art-host (interpreter, JIT, AOT)\nTest: m test-art-target on Nexus 6P (interpreter, JIT, AOT)\nTest: Nexus 6P boots\nTest: m ahat-test\nBug: 31040547\n\nThis reverts commit afcb365b2d3ae152989826c2afb0d98a9cf3f6be.\n\nChange-Id: Id7e27d717c8e36d3c7abdde59ca2c8fd4fc221c9\n"
    },
    {
      "commit": "afcb365b2d3ae152989826c2afb0d98a9cf3f6be",
      "tree": "abba45a6314d4b83a1e1d004019b5c9bc360b34d",
      "parents": [
        "24bbf98cec9f39a2592892adb245ce15d58cab19"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 16 21:46:27 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 16 21:46:27 2017 +0000"
      },
      "message": "Revert \"Enable String compression.\"\n\nThe internal API String.setCharAt() is broken\nwith string compression.\n\nBug: 31040547\n\nThis reverts commit 24bbf98cec9f39a2592892adb245ce15d58cab19.\n\nChange-Id: If2c2fa0eb42a8613994dfa5299febf7a5de2bf31\n"
    },
    {
      "commit": "24bbf98cec9f39a2592892adb245ce15d58cab19",
      "tree": "176def9d02c8bb1d995b69e9b23f845aeeb96c15",
      "parents": [
        "ab58a629d6cfe75f0ed34326c2ca6364b2203885"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 02 17:48:20 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 13 13:31:04 2017 +0000"
      },
      "message": "Enable String compression.\n\nTest: m test-art-host (interpreter, JIT, AOT)\nTest: m test-art-target on Nexus 6P (interpreter, JIT, AOT)\nTest: Nexus 6P boots\nTest: m ahat-test\nBug: 31040547\nChange-Id: I2c2f74ca147b3ea98ef06f9c64553737d17d42fd\n"
    },
    {
      "commit": "2bb70d31ee7749b18b5e0e5ce50a12d30bc1f27c",
      "tree": "789efed4ffafdd03ac9ffd1c06d7f74ea962d2d2",
      "parents": [
        "7b220d60e3cb58c384a0d245106406080c6f3e37"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:34:14 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:49:57 2017 -0800"
      },
      "message": "Revert \"Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\"\n\nThis reverts commit 592505c340e82091a6e13e2dff3d8589255df0bb.\n\nFix HOST_PREFER_32_BIT\u003dtrue causing buildbot\nto fail with the new asm_support genrule.\n\nTest: SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue HOST_PREFER_32_BIT\u003dtrue\\\n      make -j32  build-art-host-tests\nOriginal-Change-Id: I1f0f94914d328c396906583d0732e281c076e69f\nChange-Id: Ie08a11fdb9486b697d6cef4cec41b23ff120b205\n"
    },
    {
      "commit": "592505c340e82091a6e13e2dff3d8589255df0bb",
      "tree": "70075f3e50afc6f1709d0ff296b7e2e8dd223f3b",
      "parents": [
        "2449a154c457eaa2c6a30e11184bb7381903cfd5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "message": "Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\n\nBreaks the build bot:\n\nerror: art/tools/cpp-define-generator/Android.bp:41:1: dependency \"cpp-define-generator-data\" of \"cpp-define-generator-asm-support\" missing variant \"arch:linux_x86_64\"\n\nThis reverts commit 2449a154c457eaa2c6a30e11184bb7381903cfd5.\n\nChange-Id: I05ae3fa3c56a10238d48c52faa10b8c9c82d9d24\n"
    },
    {
      "commit": "2449a154c457eaa2c6a30e11184bb7381903cfd5",
      "tree": "e6f66104451b46f4fe0dce618a11b861a382f08a",
      "parents": [
        "27374ae7b59094e115ff23139c54ac97088eb01f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 14:33:39 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 16:18:27 2017 -0800"
      },
      "message": "build: Generate asm_support_gen.h from the build, validate up-to-date\n\nWhen building libart/libartd, also generate asm_support_gen.h\nautomatically. In addition, verify that our checked-in version\n(runtime/generated/asm_support_gen.h) is up-to-date with what the build\ngenerates.\n\nFurthermore, add a presubmit hook that runs with \u0027repo upload\u0027\nthat validates that the up-to-date version of asm_support_gen.h\nis being uploaded to gerrit.\n\nThis makes it significantly more difficult to accidentally\nmerge a CL that doesn\u0027t have the auto-generated headers updated\nand break the build as a result.\n\nBug: 34387670\nTest: make libart libartd\nTest: cd art \u0026\u0026 tools/repohooks/pre-upload.py\nChange-Id: I1f0f94914d328c396906583d0732e281c076e69f\n"
    },
    {
      "commit": "b048cb74b742b03eb6dd5f1d6dd49e559f730b36",
      "tree": "b1f663cbb343488a548cce4db352dbc4af720a89",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 22:50:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 09:56:36 2017 +0000"
      },
      "message": "Add per array size allocation entrypoints.\n\n- Update architectures that have fast paths for\n  array allocation to use it.\n- Will add more fast paths in follow-up CLs.\n\nTest: test-art-target test-art-host.\nChange-Id: I138cccd16464a85de22a8ed31c915f876e78fb04\n"
    },
    {
      "commit": "8d91ac31ccb92557e434d89ffade3372466e1af5",
      "tree": "37fd364ba6c9a6cf5e6a60a00c2542c5ffb12528",
      "parents": [
        "2f670ccba022fe557c637571ac781519f0e84463"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 18:07:15 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 11:56:43 2017 +0000"
      },
      "message": "Remove unused array entrypoints.\n\nTest: test-art-host test-art-target\nChange-Id: I910d1c912c7c9056ecea0e1e7da7afb2a7220dfa\n"
    },
    {
      "commit": "39cee66a8ddf0254626c9591662cf87e4a1cedc4",
      "tree": "be25df71e51ce03a8847c23934322b8f282a291b",
      "parents": [
        "a3974581751cd73a896f7c4fcab71beb17c4f9dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 13 16:04:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 11:12:33 2017 +0000"
      },
      "message": "Entrypoints cleanup.\n\nRemove unused ones to facilitate the transition to compressed\ndex caches.\n\ntest: test-art-host, test-art-target\nChange-Id: I1d1cb0daffa86dd9dda2eaa3c1ea3650a5c8d9d0\n"
    },
    {
      "commit": "e71b35446985835363a4508646cf7b1121bd95a3",
      "tree": "bd40763b04ba2028f3383736b2a14808e407120c",
      "parents": [
        "8bd59a0fd46db83616785168231e09fb95ed2ead"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 16 14:58:23 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 17 11:55:07 2017 +0000"
      },
      "message": "Move some fields in art::Thread to reduce maintenance burden.\n\nMove fields `thread_local_start`, `thread_local_pos`,\n`thread_local_end` and `thread_local_objects` before fields\n`jni_entrypoints` and `quick_entrypoints` within\nart::Thread, to avoid repetitive art::Thread field moves in\nfuture CLs caused by the addition or deletion of entry\npoints.\n\nTest: m test-art-host\ntest: m test-art-target (on ARM)\nChange-Id: Ib67842e44a7f21a871ca4d1bb95dc6f7cfedc829\n"
    },
    {
      "commit": "ac141397dc29189ad2b2df41f8d4312246beec60",
      "tree": "a2f481463a14695bf9327fd2f549878ecf30c77b",
      "parents": [
        "5c9f90c5ecf2ff6f93ada0f7b18b46d866c59ea1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 13 11:53:47 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 15 15:18:07 2017 +0000"
      },
      "message": "Revert \"Revert \"ART: Compiler support for invoke-polymorphic.\"\"\n\nThis reverts commit 0fb5af1c8287b1ec85c55c306a1c43820c38a337.\n\nThis takes us back to the original change and attempts to fix the\nissues encountered:\n\n- Adds transition record push/pop around artInvokePolymorphic.\n- Changes X86/X64 relocations for MacSDK.\n- Implements MIPS entrypoint for art_quick_invoke_polymorphic.\n- Corrects size of returned reference in art_quick_invoke_polymorphic\n  on ARM.\n\nBug: 30550796,33191393\nTest: art/test/run-test 953\nTest: m test-art-run-test\n\nChange-Id: Ib6b93e00b37b9d4ab743a3470ab3d77fe857cda8\n"
    },
    {
      "commit": "0d3998b5ff619364acf47bec0b541e7a49bd6fe7",
      "tree": "a4763c0660372f6311b612c09267cbbc2fe71e89",
      "parents": [
        "aa89a4c6fca095904521842c018399f1e3501a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 15:35:12 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 16:51:12 2017 +0000"
      },
      "message": "Revert \"Revert \"Make object allocation entrypoints only take a class.\"\"\n\nThis reverts commit f7aaacd97881c6924b8212c7f8fe4a4c8721ef53.\n\nChange-Id: I6756cd1e6110bb45231f62f5e388f16c044cb145\n"
    },
    {
      "commit": "f7aaacd97881c6924b8212c7f8fe4a4c8721ef53",
      "tree": "780209ac8e992fa63307062977f672aa5bb55d9e",
      "parents": [
        "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "message": "Revert \"Make object allocation entrypoints only take a class.\"\n\n960-default-smali64 is failing.\n\nThis reverts commit 2b615ba29c4dfcf54aaf44955f2eac60f5080b2e.\n\nChange-Id: Iebb8ee5a917fa84c5f01660ce432798524d078ef\n"
    },
    {
      "commit": "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e",
      "tree": "0a2fe5f9243645a054d4aa094bff5a69cc1abb88",
      "parents": [
        "c9a060f2688599d4a402ee6234db46c2e9b7463f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 06 14:40:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 10:34:10 2017 +0000"
      },
      "message": "Make object allocation entrypoints only take a class.\n\nChange motivated by:\n- Dex cache compression: having the allocation fast path do a\n  dex cache lookup will be too expensive. So instead, rely on the\n  compiler having direct access to the class (either through BSS for\n  AOT, or JIT tables for JIT).\n- Inlining: the entrypoints relied on the caller of the allocation to\n  have the same dex cache as the outer method (stored at the bottom of\n  the stack). This meant we could not inline methods from a different\n  dex file that do allocations. By avoiding the dex cache lookup in\n  the entrypoint, we can now remove this restriction.\n\nCode expansion on average for Docs/Gms/FB/Framework (go/lem numbers):\n- Around 0.8% on arm64\n- Around 1% for x64, arm\n- Around 1.5% on x86\n\nTest: test-art-host, test-art-target, ART_USE_READ_BARRIER\u003dtrue/false\nTest: test-art-host, test-art-target,  ART_DEFAULT_GC_TYPE\u003dSS ART_USE_TLAB\u003dtrue\n\nChange-Id: I41f3748bb4d251996aaf6a90fae4c50176f9295f\n"
    },
    {
      "commit": "f9bf250cc642c4e3e0c6904550fe922d3359a737",
      "tree": "953351c7e13b45e9246625ad81bce708788d96f9",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 14 14:59:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 14:52:22 2016 +0000"
      },
      "message": "Remove dex cache string from mirror::Class.\n\nThe compiled code does not need it anymore.\n\nTest: test-art-host test-art-target\nChange-Id: I71c08ce12d450ab2b2cd018330d42a8b8c9e3da2\n"
    },
    {
      "commit": "d62515891b15e73bc8eebb55cc09cb4dec4fcf21",
      "tree": "20c485231c93fa83384312e428202d8140dfa09d",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 31 11:12:30 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 12:55:10 2016 -0700"
      },
      "message": "Add ClassExt mirror.\n\nWe add the ClassExt type to hold values in Class that are not always\nneeded without making the Class type larger. For the initial change we\nmove the verifyError field into this type. It is expected to grow as\ntime goes on.\n\nTest: mma test-art-host\n\nChange-Id: I1d97df2e1267203841ad47b2effcb66dd76ac12a\n"
    },
    {
      "commit": "2ecfd270adb29861b493de51cfb8670e276e0c5e",
      "tree": "6aa5d0062a59f43b2c188fe0b1f11d56aedc588a",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 10:10:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 15:49:51 2016 -0700"
      },
      "message": "Add interface fast path to art_quick_check_cast for X86_64\n\nX86_64 CC ritzperf results from perf:\nart_quick_check_cast: 0.44% -\u003e 0.76%\nartIsAssignableFromCode: 1.78% -\u003e 0.11%\n\nAdded stub test.\n\nBug: 32577579\n\nTest: test-art-host\n\nChange-Id: I5ed5675c4674fac8eed8826eb50527f4876e5f07\n"
    },
    {
      "commit": "af1e2990cd1406a0fb7cba1d2e208208e950e413",
      "tree": "07e80e4dcc31931003a87be7884134ea42ceec07",
      "parents": [
        "3f699ae23266b2c4adc98958dcbd80c71c2c3284"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 12 17:44:50 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 19 11:38:54 2016 -0700"
      },
      "message": "jni: Support @FastNative methods that return objects\n\nBug: 32088975\nChange-Id: I16f8b7ec6b251812af60ab25f2153d9b72f37044\n"
    },
    {
      "commit": "4877b7986c9ba5c69be8f80692c260b4952f69be",
      "tree": "96b7076efea6d0d95322382a76b4759ff92ed8d5",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Thu Sep 08 19:49:13 2016 -0700"
      },
      "committer": {
        "name": "Jessica Handojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 17:10:48 2016 +0000"
      },
      "message": "String compression on intrinsics x86 and x86_64\n\nChanges on intrinsics and Code Generation (x86 and x86_64)\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for x86 before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.83% and boot.art decreased by 19.32%.\n\nMeanwhile for x86_64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.87% and boot.art decreased by 6.59%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-host\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nThe jni_internal_test changed to assert an empty string length\nto be equal -(1 \u003c\u003c 31) as it is compressed.\n\nBug: 31040547\nChange-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d\n"
    },
    {
      "commit": "05846475c8d48ce191dcd333c76d5ccc17aea9dd",
      "tree": "bfbcbba324eda45fae27b31ce0ce589c5f472474",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:49:57 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:55:09 2016 +0100"
      },
      "message": "Remove ThrowNoSuchMethod entrypoint.\n\nRun ART test suite on host and Nexus 6.\nBug: 31464666\nChange-Id: I5aa737726031adae0b132f759cf802a93d581a7f\n"
    },
    {
      "commit": "93bbee0c1c97bd9a5336ed0c9e41cd17613df585",
      "tree": "7f2fe8d9ec240b34e7ee153b95e69b821554ab7e",
      "parents": [
        "1c29876b303ab392e615b2294db009a971613bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 31 09:38:40 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 31 18:32:33 2016 -0700"
      },
      "message": "Faster allocation fast path\n\nAdded a new object size field to class, this field contains the\naligned object size if the object is not finalizable and is\ninitialized. If the object is finalizable or uninitialized the field\nis set to some large value that forces the ASM allocators to go slow\npath.\n\nOnly implemented for region/normal TLAB for now, will add the to\nRosAlloc stubs soon.\n\nCC N6P MemAllocTest: 1067 -\u003e 1039 (25 samples)\nCC N6P EAAC: 1281 -\u003e 1260 (25 samples)\n\nRAM overhead technically 0 since mirror::Class was not 8 byte aligned\npreviously. Since the allocators require 8 byte allignment, there\nwould have been 1 word of padding at the end of the class. If there\nwas actually 4 extra bytes per class, the system overhead would be\n36000 * 4 \u003d 120KB based on old N6P numbers for the number of loaded\nclasses after boot.\n\nBug: 9986565\n\nTest: test-art-host CC baker, N6P phone boot and EAAC runs.\n\nChange-Id: I119a87b8cc6c980bff980a0c62f42610dab5e531\n"
    },
    {
      "commit": "97a8a9a3385024d7a070a4b79d45afe9a64587cd",
      "tree": "fdff406b49ba7baa296955ad21bcba85446df212",
      "parents": [
        "da0f5e72cc5f2747a330b21afa34e7d798fc5c54"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 11:23:48 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Mon Aug 22 10:46:24 2016 -0700"
      },
      "message": "ART: Adding asm support for string dex cache\n\nAdded constants and offsets for the string dex cache fast paths that\nwill be introduced into entrypoints in subsequent commits.\n\nTest: test-art-host\n\nChange-Id: I19f97526e06cbedc782d5ef11359796731cdad82\n"
    },
    {
      "commit": "1d36e2c312216528ad721a70e8a29db321e4fdd6",
      "tree": "c75233d9659420716582282d326a08b99f707f72",
      "parents": [
        "8f7e75ac4c0f0a93775be497b44ae85f5bdccbe8",
        "3d0aa88808052436981f589b7af4f1706c365187"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 12:17:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 12:17:07 2016 +0000"
      },
      "message": "Merge \"Adjustments for changes made to java.lang.Class\""
    },
    {
      "commit": "3d0aa88808052436981f589b7af4f1706c365187",
      "tree": "6a6d232b20d5b275dac7ee849ba2fc81d9256afd",
      "parents": [
        "95afcbcc25bb17c9c34e8b7708013b612a3bb581"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Aug 16 19:53:07 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 10:27:36 2016 +0100"
      },
      "message": "Adjustments for changes made to java.lang.Class\n\nFix up the runtime after removal of the annotationType field\nfrom java.lang.Class.\n\nTest: make test-art-host / boot a device\nChange-Id: I5f37567d2b5ec381b35e66fef29287abe307b840\n"
    },
    {
      "commit": "9d4b6da934934c322536ee3309b63ce402740f49",
      "tree": "9e7ee5023d6036b98e0560411bb0527efdedca01",
      "parents": [
        "2af1aa066e3d20edd8fea5d5b6dbbbad73102d52"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:51:58 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 16 20:19:36 2016 +0000"
      },
      "message": "jni: Fast path for @FastNative annotated java methods\n\nAdds a faster path for java methods annotated with\ndalvik.annotation.optimization.FastNative .\n\nIntended to replace usage of fast JNI (registering with \"!(FOO)BAR\" descriptors).\n\nPerformance Microbenchmark Results (Angler):\n* Regular JNI cost in nanoseconds: 115\n* Fast JNI cost in nanoseconds: 60\n* @FastNative cost in nanoseconds: 36\n\nSummary: Up to 67% faster (vs fast jni) JNI transition cost\n\nChange-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e\n"
    },
    {
      "commit": "8261d02f9523b95013108f271b82bb157ef6f71d",
      "tree": "026969c0ee61c0deae7a625fba81a711acd218aa",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 08 09:41:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 09:57:01 2016 -0700"
      },
      "message": "Revert \"Revert \"ARM64 asm for region space array allocation\"\"\n\nAlso added missing large object check. No regression from the check\nN6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-target with CC + heap poisoning\n\nThis reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.\n\nChange-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949\n"
    },
    {
      "commit": "6ae7f3a4541e70f04243a6fe469aa3bd51e16d79",
      "tree": "db05e699a9929d11ff47a2b19845a921e360b5ff",
      "parents": [
        "f686c3feabe3519bedd1f3001e5dd598f46946ef"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "message": "Revert \"ARM64 asm for region space array allocation\"\n\nThis change breaks many tests on the ARM64 concurrent\ncollector configuration.\n\nBug: 30162165\nBug: 12687968\n\nThis reverts commit f686c3feabe3519bedd1f3001e5dd598f46946ef.\n\nChange-Id: I5d7ef5fa2ffb6a8d9a4d3adbcc14854efa257313\n"
    },
    {
      "commit": "f686c3feabe3519bedd1f3001e5dd598f46946ef",
      "tree": "234494fbb4fcf640df4676659d6cf6f987e0d3ab",
      "parents": [
        "20b975cc5c5a1f4e6f0a8e525b5d2e63abc413df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 04 11:08:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 05 10:42:03 2016 -0700"
      },
      "message": "ARM64 asm for region space array allocation\n\nWrote region space tlab array and array resolved allocators in\nassembly code. The speedup is a combined increase from checking the\nmark bit and having an assembly fast path.\n\nAdded resolved, initialized entrypoints for object region TLAB\nallocator.\n\nN6P (960000 mhz) EEAC benchmark (average of 50 samples):\nCC 1442.309524 -\u003e 1314 (10% improvement)\nCMS: 1382.32\n\nRead barrier slow paths reaching C++ code go from 5M to 2.5M.\n\nBug: 30162165\nBug: 12687968\n\nTest: With CC: N6P boot, run EAAC, test-art-target\n\nChange-Id: I51515b11ef3f795f57eb72fe0f5759618fef5084\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": "d22b69a12777014a92a3551eba65a4c69f2800b2",
      "tree": "9610ef0db5bdd3b21bfcfa4de2f1f3328b928f5b",
      "parents": [
        "e3051bf60783fa18e6f8c7ac6f73091f05af5665",
        "d549c28cfbddba945cb88857bcca3dce1414fb29"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "message": "Merge \"Remove two ReadBarrierMarkRegX entrypoints.\""
    },
    {
      "commit": "311fdf52f7d33b988130d07b3d3a86eb148051ca",
      "tree": "107308e59eb8cf528ff74029c3c180ca2a7242a6",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 22 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 25 15:15:03 2016 -0700"
      },
      "message": "runtime: Refactor asm_support to be auto-generated (mostly)\n\nUsage:\n\n* If the defines are no longer up to date, re-run generate-asm-support\n\n* To add a new field:\n--- Edit one of the offset_ or constant def files.\n--- Rebuild cpp-define-generator and re-run generate-asm-support\n\nChange-Id: I772430fcf1ad9af40898ebb453848f8412612386\nTODO: Integrate this into the build somehow\nTODO: Account for 32 vs 64-bit and read barrier vs no read barrier\n"
    },
    {
      "commit": "d549c28cfbddba945cb88857bcca3dce1414fb29",
      "tree": "584d765beea2cd6ceb4d56789ccc5c8f64db967e",
      "parents": [
        "9e27d02040ff87eb8e2d56d21347a77cb800eddf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "message": "Remove two ReadBarrierMarkRegX entrypoints.\n\nAs entry points ReadBarrierMarkReg30 and\nReadBarrierMarkReg31 are undefined on all architectures\nsupporting the read barrier configuration (ARM, ARM64, x86\nand x86-64), remove them from the entry point list.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I500626e54f00aebfc095b4ef5f81b49fa43f7768\n"
    },
    {
      "commit": "02b75806a80f8b75c3d6ba2ff97c995117630f36",
      "tree": "ecdb1852c3e33f120110091cc2d07a9737fbd3b5",
      "parents": [
        "5f485719b166ceb8e591329d40e76c5e50988022"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "message": "Introduce more compact ReadBarrierMark slow-paths.\n\nReplace entry point ReadBarrierMark with 32\nReadBarrierMarkRegX entry points, using register\nnumber X as input and output (instead of the standard\nruntime calling convention) to save two moves in Baker\u0027s\nread barrier mark slow-path code.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I73cfb82831cf040b8b018e984163c865cc44ed87\n"
    },
    {
      "commit": "e6a2d0ff48201990d16bc02c5e40f07a6413e7f9",
      "tree": "9a7668241ff3d3be614fd6b9d324cd1caa645a38",
      "parents": [
        "2e7acaffda05db1df6e0631468f10726e898a20a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:21:44 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:59:08 2016 +0100"
      },
      "message": "Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\n\nThe difference between between\nart::Thread::tlsPtr_.mterp_current_ibase and\nart::Thread::tlsPtr_.thread_local_objects is sizeof(size_t),\nnot sizeof(void*) (even if they have the same value on all\nsupported platforms/compilers in practice).\n\nTest: ART host tests.\nChange-Id: I70d196732499bd0cd073983de564547d08ee59ef\n"
    },
    {
      "commit": "87f3fcbd0db352157fc59148e94647ef21b73bce",
      "tree": "5bdeabb246f5de86704333b3fcbccc6e9146d246",
      "parents": [
        "b94b5706f0b8e2e1c7e1db22274f9f4bae0c4b5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 28 15:52:11 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 21 15:17:38 2016 +0100"
      },
      "message": "Replace String.charAt() with HIR.\n\nReplace String.charAt() with HArrayLength, HBoundsCheck and\nHArrayGet. This allows GVN on the HArrayLength and BCE on\nthe HBoundsCheck as well as using the infrastructure for\nHArrayGet, i.e. better handling of constant indexes than\nthe old intrinsic and using the HArm64IntermediateAddress.\n\nBug: 28330359\nChange-Id: I32bf1da7eeafe82537a60416abf6ac412baa80dc\n"
    },
    {
      "commit": "952e1e3710158982941fc70326e9fddc3021235d",
      "tree": "79ba4922cbe7a28d32078516d1667f90354bee6b",
      "parents": [
        "ece5386eeb30aa6be663af2416b68a7ebf9bd42e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 13 14:04:02 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 13 18:10:02 2016 -0700"
      },
      "message": "Support unlimited pending checkpoints\n\nPrevents the spinning that used to happen if RunCheckpoint was called\nwith 3 pending checkpoints. This spinning was done when holding\nthread_list_lock_ and thread_suspend_count_lock_ and could deadlock\nif any of the pending checkpoints required any of these locks.\n\nThe fix is to use an overflow list instead of having a fixed limit of\n3.\n\nChanged suspend stress test to have more threads and only compare last\nline since there may be libbacktrace spam like:\n\"+E/libbacktrace(69891): void SignalHandler(int, siginfo_t *, void *):\nTimed out waiting for unwind thread to indicate it completed.\"\n\nBug: 28988206\n\nChange-Id: I2ae611506147d5199d59a08eee0395f7fa35d448\n"
    },
    {
      "commit": "fba39972d99701c80bf3beb7451aca508d67593c",
      "tree": "0d80ecb6997290140503926b08a72e7418915526",
      "parents": [
        "718d4e269810c17d03df909c84b2f7bbd4f61fb9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 11 11:26:48 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 13 10:38:56 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\n* Add parentheses to fix warnings.\n* Use NOLINT to suppress wrong clang-tidy warnings.\n\nBug: 28705665\nChange-Id: Icc8bc9b59583dee0ea17ab83e0ff0383b8599c3e\n"
    },
    {
      "commit": "274fe4adcb0610a9920be7814d9beb9cac6417ce",
      "tree": "4a5c41dd2568869ceaf0a510e37065a606f512fb",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 12 16:33:24 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 13 17:34:53 2016 +0100"
      },
      "message": "Remove the JIT from the instrumentation framework.\n\nThis was slowing down the interpreter for no reason.\nAlso, call AddSamples for invoke-static and invoke-direct.\n\nChange-Id: I7b5641097f7741dd32feb1ce6af739fd27fb37c2\n"
    },
    {
      "commit": "1d011d9306fd4ff57d72411775d415a86f5ed398",
      "tree": "fadba83b9fb32840ff777948ace3bd8eb477e38f",
      "parents": [
        "82a0229e949eb3ea209c2bd33fe2d60908f5dbc7"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Apr 04 16:59:29 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 08 09:04:10 2016 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\"\"\n\nBug: 28081559\n\nThis reverts commit 961ea9fe42edcc2c57469bf451d1ca421da5cd59.\n\nChange-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3\n"
    },
    {
      "commit": "961ea9fe42edcc2c57469bf451d1ca421da5cd59",
      "tree": "eb1930308f9f64a108e3f2387faca90cff869509",
      "parents": [
        "6b7d2c09b4710503a72ff5de31bff5cb23a3a921"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 01 12:02:58 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 01 12:02:58 2016 -0700"
      },
      "message": "Revert \"Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\"\n\nThis reverts commit 4a8ac9cee4312ac910fabf31c64d28d4c8362836.\n\n570-checker-osr intermittently failing.\n\nBug: 27939339\n"
    },
    {
      "commit": "4a8ac9cee4312ac910fabf31c64d28d4c8362836",
      "tree": "a9d662cb43a3fe1c071618ef78f772655bfc4442",
      "parents": [
        "ec898396658bc6a36e2b3c32569fbcb034d60e22"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 25 13:16:55 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 29 15:48:45 2016 -0700"
      },
      "message": "Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\n\nReady for review.\n\nThis reverts commit 6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e.\n\nChange-Id: I5d53ed2bedc7e429ce7d3cdf80b6696a9628740e\n"
    },
    {
      "commit": "6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e",
      "tree": "cda140806a091805213edca2708e69337f6869ef",
      "parents": [
        "1cb8689ccc23fd513c5472911dd07e44b55e9c8d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 25 11:27:48 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 25 11:27:48 2016 +0000"
      },
      "message": "Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\n\nThis reverts commit c1d6b341eed646e5adafc6c4fd4e3748f0292368.\n"
    },
    {
      "commit": "42cd3cb6379fe3faf078dcce98610e90155bc8e0",
      "tree": "59ff8135fcfa13b8263afe0d77b58dce6cc2ea0b",
      "parents": [
        "62e78a7ea8221f3fbe848fa883fb86c9d87ba50b",
        "c1d6b341eed646e5adafc6c4fd4e3748f0292368"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Mar 24 16:16:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 24 16:16:59 2016 +0000"
      },
      "message": "Merge \"ART: Improve JitProfile perf in arm/arm64 mterp\""
    },
    {
      "commit": "c1d6b341eed646e5adafc6c4fd4e3748f0292368",
      "tree": "ddee928954b03a919ce601f12876f1fe161d577a",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 01 15:03:16 2016 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Mar 23 11:11:26 2016 -0700"
      },
      "message": "ART: Improve JitProfile perf in arm/arm64 mterp\n\nART currently requires two profiling-related things from the\ninterpreters: hotness updates and OSR switch checks.  The hotness\nupdates previously used the existing instrumentation framework - which\nis flexible, but quite heavyweight.  For most things, the\ninstrumentation framework overhead is acceptable, but because we do a\nhotness update on every backwards branch the overhead is unacceptable.\nPrior to this CL, branch profiling dominates interpreter cost.\n\nHere, we bypass the instrumentation framework for hotness updates\nand deliver a significant performance improvement.  Running\ninterpreter-only (dalvikvm -Xint) on a Nexus 6, we see the logic\nsubtest of Caffeinemark improving from 2600 to 9200, and the\noverall score going from 1979 to over 3000.  Compared to the\nC++ switch interpreter, we see a 6x improvement on the branchy logic\nsubtest and a 2.6x improvement overall.\n\nCompared with the previous mterp which did not have support for\njit profiling, we see a few (1% to 5%) performance loss on the\nstandard command-line benchmarks.  I consider this acceptable\n(we could create an alternate non-profiling mterp which would\nhave no penalty, but I don\u0027t consider this overhead big enough to\njustify that).\n\nChange-Id: I50b5b8c5ed8ebda3c8b4e65d27ba7393c3feae04\n"
    },
    {
      "commit": "796d63050a18f263b93ea34951a61deaecab3422",
      "tree": "813865c31b25ac06006e4ee3932b4e918c708c9b",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 13 22:22:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 15:17:58 2016 +0000"
      },
      "message": "Add an ImtConflictTable to better resolve IMT conflicts.\n\n- Attach a ImtConflictTable to conflict runtime ArtMethod.\n- Initially 0, a new one will be created at the first hit of\n  the conflict method.\n- If the assembly code does not find a target method in the table,\n  we will create a new one again, copying the data from the previous\n  table and adding the new mapping.\n\nImplemented for arm/arm64/x86/x64.\n\nbug:27556801\nbug:24769046\n\nChange-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7\n"
    },
    {
      "commit": "d72945c6b18831630af8755fcf041f5a59c82cae",
      "tree": "413977fb152b0db8b19320431d5d620521d5751a",
      "parents": [
        "8e57978b5f330a322f05644c2db7fa8ce89b1b46"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 16 11:23:10 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 16 13:54:01 2016 -0700"
      },
      "message": "Revert \"Revert \"Assembly TLAB allocation fast path for arm64.\"\"\n\nThis reverts commit 52fa2c698b995c21940f366cf3a44204ddf4f8e9.\n\nFix the mvn instructions.\n\nBug: 9986565\nChange-Id: Ib7b2023cd54c57131442e1de85c64f40b818313d\n"
    },
    {
      "commit": "52fa2c698b995c21940f366cf3a44204ddf4f8e9",
      "tree": "976463c15a1616b128551d32b3fdea6c8b48a3a5",
      "parents": [
        "4344e11598b3079032773ad7e381658f39bed92e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 16 10:23:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 16 10:23:31 2016 +0000"
      },
      "message": "Revert \"Assembly TLAB allocation fast path for arm64.\"\n\nAssembly code does not compile\nBug: 9986565\n\nThis reverts commit b7e52b02a82c69e59c88f06945fb21672dfe9923.\n\nChange-Id: I80de1bcd6270e2d76f79cb708811a41c039ea5bb\n"
    },
    {
      "commit": "b7e52b02a82c69e59c88f06945fb21672dfe9923",
      "tree": "89700d959a34dfd18a65e98db3b4b22dde6761a0",
      "parents": [
        "2f74be0856b56942614ec65896853a58a37b7aff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 09 21:14:41 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 15 11:31:18 2016 -0700"
      },
      "message": "Assembly TLAB allocation fast path for arm64.\n\nThis is the arm64 version of CL 187537.\n\nSpeedup (GSS GC with TLAB on N9):\n        BinaryTrees:   591 -\u003e  493 ms (-17%)\n        MemAllocTest:  792 -\u003e  755 ms (-5%)\n\nBug: 9986565\n\nChange-Id: Icdad28cab0fd835679c640b7eae59b33ac2d6654\n"
    },
    {
      "commit": "10d4c08c0ea9df0a85a11e1c77974df24078c0ec",
      "tree": "6d56cd6cfdac03d6fb6a1cb66153f2179c858f49",
      "parents": [
        "da11cef6fb6d8a9e08cb445576a50abff8773a25"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Feb 24 12:51:18 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 11 13:16:55 2016 -0800"
      },
      "message": "Assembly region TLAB allocation fast path for arm.\n\nThis is for the CC collector.\n\nShare the common fast path code with the tlab fast path code.\n\nSpeedup (on N5):\n        BinaryTrees:  2291 -\u003e  902 ms (-60%)\n        MemAllocTest: 2137 -\u003e 1845 ms (-14%)\n\nBug: 9986565\nBug: 12687968\n\nChange-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85\n"
    },
    {
      "commit": "7e1ce285c3c2cbd8d97c744699c2f2347fa7487b",
      "tree": "40d525eeda56a05576cb396a72479c366d2d463f",
      "parents": [
        "4e4e64511e530db37b33f450016afe49db3c4b20"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 11 15:46:19 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 25 14:00:48 2016 -0800"
      },
      "message": "Assembly TLAB allocation fast path for arm.\n\nSpeedup (GSS GC with TLAB on N5):\n    BinaryTrees:  1872 -\u003e  796 ms (-57%)\n    MemAllocTest: 2522 -\u003e 2219 ms (-12%)\n\nBug: 9986565\nChange-Id: Icb9d1259461f3abe83a4a82c8aff911937eaf57d\n"
    },
    {
      "commit": "7ed9c561048d79083b6d0576c71a986a3123bca6",
      "tree": "8e352f05dc5e82126dd61e0e8e6ddb2a1003e16a",
      "parents": [
        "c3cf1d2e35a45bd2e2c60fbc9c2a1a6a56dfc529"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 15:22:09 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 05 12:12:44 2016 -0800"
      },
      "message": "Use 8-byte increment bracket sizes for rosalloc thread local runs.\n\nVery small space savings (\u003c 1%) after device boot and up to 10%\nallocation speedup.\n\nSome minor cleanup.\n\nBug: 9986565\n\nChange-Id: I51d791c4674d6944fe9a7ee78537ac3490c1a02c\n"
    },
    {
      "commit": "1452bee8f06b9f76a333ddf4760e4beaa82f8099",
      "tree": "8ffb80498cd8fdff66a4ab272723cf4d4e69e57b",
      "parents": [
        "7f9ea1451bb74055ee5d51ae04fc869faa06cbdd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 06 14:43:04 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jan 11 13:04:49 2016 -0800"
      },
      "message": "Fast Art interpreter\n\nAdd a Dalvik-style fast interpreter to Art.\nThree primary deficiencies in the existing Art interpreter\nwill be addressed:\n\n1.  Structural inefficiencies (primarily the bloated\n    fetch/decode/execute overhead of the C++ interpreter\n    implementation).\n2.  Stack memory wastage.  Each managed-language invoke\n    adds a full copy of the interpreter\u0027s compiler-generated\n    locals on the shared stack.  We\u0027re at the mercy of\n    the compiler now in how much memory is wasted here.  An\n    assembly based interpreter can manage memory usage more\n    effectively.\n3.  Shadow frame model, which not only spends twice the memory\n    to store the Dalvik virtual registers, but causes vreg stores\n    to happen twice.\n\nThis CL mostly deals with #1 (but does provide some stack memory\nsavings).  Subsequent CLs will address the other issues.\n\nCurrent status:\n   Passes all run-tests.\n   Phone boots interpret-only.\n   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute\n       microbenchmark, 5x faster than gcc-compiled goto interpreter.\n   1.6x faster than Clang goto on Caffeinemark overall\n   2.0x faster than Clang switch on Caffeinemark overall\n   68% of Dalvik interpreter performance on Caffeinemark (still much slower,\n       primarily because of poor invoke performance and lack of execute-inline)\n   Still nearly an order of magnitude slower than Dalvik on invokes\n       (but slightly better than Art Clang goto interpreter.\n   Importantly, saves ~200 bytes of stack memory per invoke (but still\n       wastes ~400 relative to Dalvik).\n\nWhat\u0027s needed:\n   Remove the (large quantity of) bring-up hackery in place.\n   Integrate into the build mechanism.  I\u0027m still using the old Dalvik manual\n       build step to generate assembly code from the stub files.\n   Remove the suspend check hack.  For bring-up purposes, I\u0027m using an explicit\n       suspend check (like the other Art interpreters).  However, we should be\n       doing a Dalvik style suspend check via the table base switch mechanism.\n       This should be done during the alternative interpreter activation.\n   General cleanup.\n   Add CFI info.\n   Update the new target bring-up README documentation.\n   Add other targets.\n\nIn later CLs:\n   Consolidate mterp handlers for expensive operations (such as new-instance) with\n       the code used by the switch interpreter.  No need to duplicate the code for\n       heavyweight operations (but will need some refactoring to align).\n   Tuning - some fast paths needs to be moved down to the assembly handlers,\n       rather than being dealt with in the out-of-line code.\n   JIT profiling.  Currently, the fast interpreter is used only in the fast\n       case - no instrumentation, no transactions and no access checks. We\n       will want to implement fast + JIT-profiling as the alternate fast\n       interpreter.  All other cases can still fall back to the reference\n       interpreter.\n   Improve invoke performance.  We\u0027re nearly an order of magnitude slower than\n       Dalvik here.  Some of that is unavoidable, but I suspect we can do\n       better.\n   Add support for our other targets.\n\nChange-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc\n"
    },
    {
      "commit": "9c5572957bf357897f0969d002132fc647bfa649",
      "tree": "84e853d076d2a7449e0eba1710b2a4b3d0872fda",
      "parents": [
        "90f5250d4ba7bcf6066edb022f8325df66d686f3",
        "9f784b26a13101222c5e5927cafd7f500d3cff67"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "message": "resolve merge conflicts of 9f784b26a1 to master.\n\nChange-Id: I9ebcb6e3d51be922e08e5f867fb8dcaf5cb9788d\n"
    },
    {
      "commit": "e64300b8488716056775ecbfa2915dd1b4ce7e08",
      "tree": "be23a7086c1e369527dda5450a9868f2d29c5669",
      "parents": [
        "bc90a0538e56f98b8e138cb622e6b9d834244ad9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 15:02:47 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 16 14:16:31 2015 -0800"
      },
      "message": "Revert \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\"\n\nThis reverts commit ae358c1d5cef227b44d6f4971b79e1ab91aa26eb.\n\nBug: 24618811\n\nChange-Id: I8becf9bae3258450b90cfef5e79589db7c535a4d\n"
    },
    {
      "commit": "bc90a0538e56f98b8e138cb622e6b9d834244ad9",
      "tree": "fd85833863a13ce4abc7baaea1d2059c2419ad1e",
      "parents": [
        "0bbc1727c446ee5f4cc3c28e68127164ef379594",
        "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "533d63aa028949e393320ad2ffec0ba6e6a8f627",
      "tree": "05038200d2277f69aa7de0165bb8d0243b6fc2ac",
      "parents": [
        "f64ddd3acdfa37d8e03d827e3c98e27ffd627179",
        "2efb0aa57da168944f99a2d13aed2a426cfa76e7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "2efb0aa57da168944f99a2d13aed2a426cfa76e7",
      "tree": "5ca742f9a2a89f9c3c588f6f1863ab55bbdb5c5c",
      "parents": [
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 9539150b85142c18e9e8c2264b5b6100942667c3.\n\nChange-Id: I596876cd643ec0ad524a56621efb6b89e8886230\n"
    },
    {
      "commit": "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb",
      "tree": "95c22194af5ea38a4fa5fc8bbe07ba60b6d0a021",
      "parents": [
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 6286a97bea0f584342803a215550038852b24776.\n\nChange-Id: I5b00f6d1350e9c587acd4b185367dc815ea707de\n"
    },
    {
      "commit": "e6f84a505e074da4ce14df1f067ed68a8fdcabb3",
      "tree": "db5e2dbb4d9c61aeff6d7565789fe67a97f4957c",
      "parents": [
        "b3ea82b37b14842dde81de0833e515f97f31a76c",
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "7d5a577c1f256a7703361afb071dcd4ecc7d275f",
      "tree": "d5d151bf0502af93fe8826f368807ab1df7734aa",
      "parents": [
        "ad94d64719c2a82cdd312b318b8e50d80e2956c5",
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "523ef21c76a4ec20b6f94d5faddd5f0640cbc646",
      "tree": "6269ad5ab8b4dc5ba2f02827d84c5a3da752243e",
      "parents": [
        "629e8f9a364c5b90423ab48a478ca03b1fea2644",
        "12c3fd4dd9cdf45df583d6c9ab406af2187b1e1f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 08:18:43 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 15 08:18:43 2015 -0800"
      },
      "message": "Merge \"x86 Baker\\\u0027s read barrier fast path implementation.\" am: 089ff4886a\nam: 12c3fd4dd9\n\n* commit \u002712c3fd4dd9cdf45df583d6c9ab406af2187b1e1f\u0027:\n  x86 Baker\u0027s read barrier fast path implementation.\n"
    },
    {
      "commit": "7c1559a06041c9c299d5ab514d54b2102f204a84",
      "tree": "c50b54bf82f457f44dbf0741947d836749d4a96a",
      "parents": [
        "7cd230c8f74a227ea04f1dd93c8d855aa81fc1fe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 10:55:36 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 11:45:56 2015 +0000"
      },
      "message": "x86 Baker\u0027s read barrier fast path implementation.\n\nIntroduce an x86 fast path implementation in Optimizing for\nBaker\u0027s read barriers (for both heap reference loads and GC\nroot loads).  The marking phase of the read barrier is\nperformed by a slow path, invoking a new runtime entry point\n(artReadBarrierMark).\n\nOther read barrier algorithms continue to use the original\nslow path based implementation, which has been renamed as\nGenerateReadBarrierSlow/GenerateReadBarrierForRootSlow.\n\nBug: 12687968\nChange-Id: Ie610c4befc19ff22378a8cba38b422dcacb54320\n"
    },
    {
      "commit": "9539150b85142c18e9e8c2264b5b6100942667c3",
      "tree": "733f2af56f94cbac19ac29f62d85850df2fd7b7d",
      "parents": [
        "1997d7cef12ac9906c23b59fdaa9f7f68344b98d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 03 17:38:56 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 14 14:54:01 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nManual cherry-pick of 6286a97 to master\n\nThis makes several parts of the overall runtime simpler and reduces\nthe size of a class object by 32-bits.\n\nBug: 24618811\n\nChange-Id: I36129b52189e26898ea56fa2b7b45652e06af236\n"
    },
    {
      "commit": "6286a97bea0f584342803a215550038852b24776",
      "tree": "3571735bdc691bf30e33abb65a95ada8c71a18b7",
      "parents": [
        "377cb3ba2e1cfe51967e5292268a9aae71ceca8c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 03 17:38:56 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 14 14:27:32 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nThis makes several parts of the overall runtime simpler and reduces\nthe size of a class object by 32-bits.\n\nBug: 24618811\n\nChange-Id: I36129b52189e26898ea56fa2b7b45652e06af236\n"
    },
    {
      "commit": "cddac8bd8f57266314b9d546fe6251a00e3cb065",
      "tree": "359fed3381c7d65d0d6ba8cd6f50c65bbec8de4c",
      "parents": [
        "70cdba196cef4cfd7955f331a892f6dbe8cd073e",
        "e67b966422d4f42fd7e38d938b0f2ee88b096448"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 03:45:28 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 03:45:28 2015 -0800"
      },
      "message": "Merge \"Optimizing: Add direct calls to math intrinsics\" am: 376cbcc516\nam: e67b966422\n\n* commit \u0027e67b966422d4f42fd7e38d938b0f2ee88b096448\u0027:\n  Optimizing: Add direct calls to math intrinsics\n"
    },
    {
      "commit": "a4f1220c1518074db18ca1044e9201492975750b",
      "tree": "796f0dcd733ad5ffd7d8310af871f3e2c22ee0be",
      "parents": [
        "763fd2d3d131898cad6295a19ae9a30e22ce5f2a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Aug 06 15:23:34 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Dec 10 13:23:49 2015 -0500"
      },
      "message": "Optimizing: Add direct calls to math intrinsics\n\nSupport the double forms of:\n  cos, sin, acos, asin, atan, atan2, cbrt, cosh, exp, expm1,\n  hypot, log, log10, nextAfter, sinh, tan, tanh\n\nAdd these entries to the vector addressed off the thread pointer. Call\nthe libc routines directly, which means that we have to implement the\nnative ABI, not the ART one. For x86_64, that includes saving XMM12-15\nas the native ABI considers them caller-save, while the ART ABI\nconsiders them callee-save.  We save them by marking them as used by the\ncall to the math function.  For x86, this is not an issue, as all the XMM\nregisters are caller-save.\n\nOther architectures will call Java as before until they are ready to\nimplement the new intrinsics.\n\nBump the OAT version since we are incompatible with old boot.oat files.\n\nChange-Id: Ic6332c3555c09393a17d1ad4daf62932488722fb\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "a7a4759946d9f11c88dc108b2b6a9518ce9c1e18",
      "tree": "f5522eb632ff53b4c285ff76a3966d37a995777a",
      "parents": [
        "099ab4d06857ccbe642d98ba25df1eb02aee99c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 10:54:16 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\n(cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380)\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "0d5a281c671444bfa75d63caf1427a8c0e6e1177",
      "tree": "fd9bbe0f1c581bcc7c05bbfb2643ffe0b1fb014e",
      "parents": [
        "dd4cbcc924c8ba2a578914a4a366996693bdcd74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 13 10:07:31 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Nov 15 12:16:41 2015 +0000"
      },
      "message": "x86/x86-64 read barrier support for concurrent GC in Optimizing.\n\nThis first implementation uses slow paths to instrument heap\nreference loads and GC root loads for the concurrent copying\ncollector, respectively calling the artReadBarrierSlow and\nartReadBarrierForRootSlow (new) runtime entry points.\n\nNotes:\n- This implementation does not instrument HInvokeVirtual\n  nor HInvokeInterface instructions (for class reference\n  loads), as the corresponding read barriers are not stricly\n  required with the current concurrent copying collector.\n- Intrinsics which may eventually call (on slow path) are\n  disabled when read barriers are enabled, as the current\n  slow path infrastructure does not support this case.\n- When read barriers are enabled, the code generated for a\n  HArraySet instruction always go into the array set slow\n  path for object arrays (delegating the operation to the\n  runtime), as we are lacking a mechanism to keep a\n  temporary register live accross a runtime call (needed for\n  the instrumentation of type checking code, which requires\n  two successive read barriers).\n\nBug: 12687968\nChange-Id: I14cd6107233c326389120336f93955b28ffbb329\n"
    },
    {
      "commit": "d1ef4362bf799f9f5d50e5edef8433664b503051",
      "tree": "59aaa140925efa790f787d5e1caf6d0cafd6ae15",
      "parents": [
        "e4cf5892c2a244034900d49499c071b255571bba",
        "f32e8327da5dd33abe18662fbca5e584cd047816"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:49:06 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:52:42 2015 +0000"
      },
      "message": "Merge lmp changes into mnc.\n\nMost merge conflicts are due to changes in the string representation.\nThey have been resolved in favour of \"mnc-dev\" since we\u0027ve changed\nthe string representation there. Other changes relate to the\nfact that there are now two jars in libcore (core-oj and core-libart).\n\nChange-Id: I1fcc6e5f8dab8d1954dcddca0493563e7677d433\n"
    },
    {
      "commit": "3c183cec1fb337ed0247ba500c6949063072f565",
      "tree": "f299a44f698ccde8b4ab4420851ca55ed004b571",
      "parents": [
        "13ceeb2b729646d2a6061b70ce91c3cab16f3d6b"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Jul 31 16:30:08 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 11 15:16:34 2015 +0000"
      },
      "message": "Fix asm for String#indexOf/compareTo intrinsics\n\nFixed code for arm arch, it\u0027s still broken\non remaining architectures (will be done soon in\nfollowing CLs).\n\nOpenJdk string lacks offset and length fields and requires\nuser to fetch the length from array object.\n\nChange-Id: I682911e4ee72d9597e8a9735ac414c837569eb8e\n"
    },
    {
      "commit": "84dcb99f3192f6513bdf997fb2a8b956a4f9d834",
      "tree": "b3d806e4888fe0afd77cf7fab87a1b5da9414e79",
      "parents": [
        "29f33e6bdb6188f55de909f01c23d6bea7fd000e"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Tue May 19 12:15:00 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 09 11:06:45 2015 +0000"
      },
      "message": "Update layout of Class.class.\n\nChange-Id: I50d809aebdd54ac668f05544de86b39dc3601e68\n"
    },
    {
      "commit": "dc412b6f49a65774b7af654f65cbff619cb7d85a",
      "tree": "f8455c6deb4bb3c96d21e2135d55a1a658045e47",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 15 12:26:57 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 15 15:32:41 2015 -0700"
      },
      "message": "Revert \"Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\"\n\nWith a heap poisoning fix.\n\nThis reverts commit cf91c7d973f3b2f491abc61d47c141782c96d46e.\n\nBug: 9986565\nChange-Id: Ia72edbde65ef6119e1931a77cc4c595a0b80ce31\n"
    },
    {
      "commit": "a2b2e7365d66553164247bafae214f157d480277",
      "tree": "11fc65a360fb2ff3b4388be0558a39b09eca330a",
      "parents": [
        "d2e0dd179fd2e8c6c820194e187fc5e9164154ff",
        "cf91c7d973f3b2f491abc61d47c141782c96d46e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:30:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 07:30:00 2015 +0000"
      },
      "message": "Merge \"Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\""
    },
    {
      "commit": "cf91c7d973f3b2f491abc61d47c141782c96d46e",
      "tree": "b94c289f567014ba56bcd4dec76066085819e90b",
      "parents": [
        "e6316940db61faead36f9642cce137d41fc8f606"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:29:38 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:29:38 2015 +0000"
      },
      "message": "Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\n\nTentative. Looks like heap poisoning breaks with this change.\n\nbug: 9986565\n\nThis reverts commit e6316940db61faead36f9642cce137d41fc8f606.\n\nChange-Id: I5c63758221464fe319315f40ae79c656048faed0\n"
    },
    {
      "commit": "2248d278460f18db9bcdc5a1bdb2dcdfdde2d301",
      "tree": "769455c0ea777310518cf4d8a4af9ecb45c968d0",
      "parents": [
        "bf8fd42a6390d5694fe387b9bc876fc510645810",
        "e6316940db61faead36f9642cce137d41fc8f606"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 14 18:18:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 14 18:18:24 2015 +0000"
      },
      "message": "Merge \"Implement rosalloc fast path in assembly for 32 bit arm.\""
    },
    {
      "commit": "e6316940db61faead36f9642cce137d41fc8f606",
      "tree": "cf0a97827af4679be4112d056855b5a673ee3a32",
      "parents": [
        "8c812b71552a8a1b2bf06e430d355b12b7084807"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 07 15:41:48 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 13 13:06:20 2015 -0700"
      },
      "message": "Implement rosalloc fast path in assembly for 32 bit arm.\n\nMeasurements (N5, ms)\nBinaryTrees:  1702 -\u003e  987 (-42%)\nMemAllocTest: 2480 -\u003e 2270  (-8%)\n\nBug: 9986565\n\nChange-Id: I460af3626ad724078463d27cf74a94b7ff7468c5\n"
    },
    {
      "commit": "3cfa4d05afa76e19ca99ec964b535a15c73683f0",
      "tree": "28c4950dff3700f69e3d32fc496890a722cfc379",
      "parents": [
        "f4156986d1ba5b6dd7dfe89754c8562557cd1bc5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 06 17:04:01 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 07 09:50:25 2015 -0700"
      },
      "message": "ART: Remove interpreter entrypoints\n\nThese are no longer used as entrypoints. Make them proper runtime\nfunctions local to the interpreter.\n\nBump oat version.\n\nChange-Id: Icdd92e20eafc5668b68eeebf55cf624560f462b3\n"
    }
  ],
  "next": "99170c636dfae4908b102347cfe9f92bad1881cc"
}
