)]}'
{
  "log": [
    {
      "commit": "eb53697dc30111ddef7f6298566600f4e2fe3bf0",
      "tree": "4fbdc547d43583617f193005c4e2211bc159629d",
      "parents": [
        "cd15294af8ea5a7973ec6461733259882a124d17"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 11 17:00:22 2018 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 11 17:04:18 2018 +0100"
      },
      "message": "Add instances to sites after removing duplicate ids.\n\nWait until we\u0027ve had a chance to remove instances with duplicate ids\nbefore adding instances to their corresponding allocation site.\n\nReuses the existing iteration over instances that was previously used\nfor updating registered native sizes and moves that after the\nreachability computation in preparation for some anticipated future\nchanges.\n\nBug: 110447634\nTest: m ahat-test\nTest: run ahat on the heap dump from the bug and confirm no duplicate\n      instances show up in the list of byte[] instances.\n\nChange-Id: Ie8651d26724148501a7534c9600885002627cd19\n"
    },
    {
      "commit": "cd15294af8ea5a7973ec6461733259882a124d17",
      "tree": "2e3a4857d787dc06981da3fd6c1f74dc1338eb9f",
      "parents": [
        "3e2fad1fba7b89faa675c21676a84c487e03c23e",
        "f66c02b9852bc22bf74ba13b34e86f1863b92964"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 11 09:29:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 11 09:29:24 2018 +0000"
      },
      "message": "Merge \"ahat: ignore duplicate instances with the same id\""
    },
    {
      "commit": "3e2fad1fba7b89faa675c21676a84c487e03c23e",
      "tree": "abdf519f8a3a5efaaee632fd920b00b9be8a77e9",
      "parents": [
        "5bf6d2750d3d412fda496f9c12c67f38215b06af",
        "2a90bc93225f38624333d1d7fa8785f90c687fe5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 03:03:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 11 03:03:59 2018 +0000"
      },
      "message": "Merge changes I06651995,I2f341cf7\n\n* changes:\n  Revert^2 \"Move Trace to use trampolines\"\n  Fix typo in condition for getting the compiled code.\n"
    },
    {
      "commit": "5bf6d2750d3d412fda496f9c12c67f38215b06af",
      "tree": "e7f33e67f9eed91266829449396f90ee9a3ef1e9",
      "parents": [
        "848f0d9782e467deb35b0ad3a904aeefbc9ef802",
        "c1528176838174896afc001c3ebbc8b8ba06412c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 11 02:12:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 11 02:12:07 2018 +0000"
      },
      "message": "Merge \"ART: Correctly compare in UTF-16 space\""
    },
    {
      "commit": "c1528176838174896afc001c3ebbc8b8ba06412c",
      "tree": "e7f33e67f9eed91266829449396f90ee9a3ef1e9",
      "parents": [
        "848f0d9782e467deb35b0ad3a904aeefbc9ef802"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 17:19:00 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 17:19:00 2018 -0700"
      },
      "message": "ART: Correctly compare in UTF-16 space\n\nWhen trying to cache the locations of constructor names, actually\ntake care of using UTF-16 comparison, as the string table may\ncontain strings with UTF-16 codepoints that are incompatible with\nstrcmp.\n\nAdd a crafted test to dex_file_verifier_test\n\nBug: 110157789\nBug: 78568168\nTest: m test-art-host\nChange-Id: Ifce56e53522eac2d421b316761ef0adfe341a5b9\n"
    },
    {
      "commit": "848f0d9782e467deb35b0ad3a904aeefbc9ef802",
      "tree": "360dd33d763d4d101c9f21e8f55ec363afc91d52",
      "parents": [
        "23b8f0d6cafc5079347f7b2ec61eecb0a9f30371",
        "4ac605e3a0d0b33927dfb9a87b201bad37478657"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 23:20:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 23:20:38 2018 +0000"
      },
      "message": "Merge \"Make Get/SetLocalVariables not pause jit.\""
    },
    {
      "commit": "2a90bc93225f38624333d1d7fa8785f90c687fe5",
      "tree": "8183353ae38facf846e32d6dbdcc01bd9885fa80",
      "parents": [
        "839f53a179df5225dac6964732486fc8dc5c79b0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:57:42 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 16:08:22 2018 -0700"
      },
      "message": "Revert^2 \"Move Trace to use trampolines\"\n\nThis reverts commit 27d85eaf54d1cf5f9279ba4d333488b0fbbf441f.\n\nAn ancestor of the original CL got a typo put in it during a minor\nrefactor. This caused a check to be reversed and was not noticed since\nit was a rebase.\n\nReason for revert:  Fixed issue causing --trace failures on some tests\n\nChange-Id: I066519950294edae7b2c22a5850b4a9a96ba46c9\nTest: ./test.py --host --trace --ntrace\n"
    },
    {
      "commit": "839f53a179df5225dac6964732486fc8dc5c79b0",
      "tree": "843aa29a1e7ddefbedc91026fad4e91168fab8e3",
      "parents": [
        "23b8f0d6cafc5079347f7b2ec61eecb0a9f30371"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 15:46:14 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 16:08:16 2018 -0700"
      },
      "message": "Fix typo in condition for getting the compiled code.\n\nDue to a late refactor we unintentionally flipped a condition and\nreturned early on code-collection being off instead of it being on.\n\nTest: ./test.py --host --trace --ntrace\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xjitthreshold:0 --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --debuggable --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: ./test/testrunner/testrunner.py --host --debuggable --jit --runtime-option\u003d-Xjitthreshold:0 --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: adb shell am start-activity -S --attach-agent /data/local/tmp/libtifast.so\u003dMethodEntry,MethodExit \u003csome app\u003e\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nChange-Id: I2f341cf748530f79a574933a3abb4f32a5019d03\n"
    },
    {
      "commit": "23b8f0d6cafc5079347f7b2ec61eecb0a9f30371",
      "tree": "4a0b932d6510db31a23c8a9dcd07bab6fc78b2e7",
      "parents": [
        "1a2b9bec01f21e28be31db1bc241c2256057c4f9",
        "27d85eaf54d1cf5f9279ba4d333488b0fbbf441f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:56:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 21:56:54 2018 +0000"
      },
      "message": "Merge \"Revert \"Move Trace to use trampolines\"\""
    },
    {
      "commit": "27d85eaf54d1cf5f9279ba4d333488b0fbbf441f",
      "tree": "64f9c8896038ada2f7a17bd7cc62c488027dd548",
      "parents": [
        "19af3b9b7fda03417a724fb7e465a3457d528eab"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:55:37 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:55:37 2018 +0000"
      },
      "message": "Revert \"Move Trace to use trampolines\"\n\nThis reverts commit 19af3b9b7fda03417a724fb7e465a3457d528eab.\n\nCaused the following tests to fail.\n\ntest-art-host-run-test-debug-prebuild-interpreter-no-relocate-trace-cms-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-916-obsolete-jit32\ntest-art-host-run-test-debug-prebuild-interpreter-no-relocate-trace-cms-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-916-obsolete-jit64\n\nIt seems we did not setup the tracing fully correctly.\n\nReason for revert: Caused failure of 2 tests on buildbots\nTest: None\n\nChange-Id: Ied420b95c24ce530a19cdd39dc2403e5cc99fde5\n"
    },
    {
      "commit": "4ac605e3a0d0b33927dfb9a87b201bad37478657",
      "tree": "756b1a5b63609bdedef53d46b728d56f1d1166a9",
      "parents": [
        "b8f199705ebd673563fac5cd416a44794d07f692"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 11:34:02 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 14:30:03 2018 -0700"
      },
      "message": "Make Get/SetLocalVariables not pause jit.\n\nWe were unnecessarily pausing the jit when retrieving or setting local\nvariables. This could cause deadlocks in some situations.\n\nTest: ./test.py --host -j50\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: see b/111131691\n\nBug: 111131691\nChange-Id: If681b52a2dbabc118a252436e5083f99e79b3ddd\n"
    },
    {
      "commit": "1a2b9bec01f21e28be31db1bc241c2256057c4f9",
      "tree": "f1fe2d1d6c013bb34c56435995b0b853050a39ea",
      "parents": [
        "1206a149b440dcf2c3c45d775009816ca908fbce",
        "955f0ba247863be4b2b506420f6dfe4b0fa99e4f"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 10 20:57:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 20:57:09 2018 +0000"
      },
      "message": "Merge \"Use clang integrated assembler.\""
    },
    {
      "commit": "1206a149b440dcf2c3c45d775009816ca908fbce",
      "tree": "d60c0c75773cca4aa20d3ad4bff8a9f4dd188666",
      "parents": [
        "e83d3416e09e6454af38c250a4fda81537d8da9f",
        "21f7ac143b8c680efad7b74e3c3a937839b98f64"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 10 20:54:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 20:54:22 2018 +0000"
      },
      "message": "Merge \"Handle FixUpRemotePointer for external images\""
    },
    {
      "commit": "e83d3416e09e6454af38c250a4fda81537d8da9f",
      "tree": "efa7d558db285cca5143ba30b6bba7495b616269",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878",
        "19af3b9b7fda03417a724fb7e465a3457d528eab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 10 17:46:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 17:46:09 2018 +0000"
      },
      "message": "Merge changes Id4fb7c99,I14dd4eb9,I37c2ece1,I7b4b084b,I78f1d4b3, ...\n\n* changes:\n  Move Trace to use trampolines\n  Move back to jit code on trace removal\n  Rewrite JVMTI method tracing to use trampolines\n  Don\u0027t use StringFactory.newEmptyString in compiled code\n  Ensure proxy methods are reported by instrumentation\n  Correctly send MethodExit events from exception handlers\n  Make instrumentation trampoline able to jump to jit code\n"
    },
    {
      "commit": "955f0ba247863be4b2b506420f6dfe4b0fa99e4f",
      "tree": "6f8e52f1b0cff324adddcd054050458400d201ee",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jun 28 19:01:50 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 10 09:41:44 2018 -0700"
      },
      "message": "Use clang integrated assembler.\n\n* Remove dependency on GNU assembler.\n  Avoid bug that produces non-deterministic code for mterp_arm.S.\n\n* Replace arm assembly code syntax to compile with clang assembler.\n  * change old/obselete syntax:  s/subgts/subsgt/\n  * change old/obselete syntax\n        adrl   lr, artMterpAsmInstructionStart + (${opnum} * 128)    @ Addr of primary handler.\n    to equivalent\n        adr    lr, .L_ALT_${opcode}\n        sub    lr, lr, #(.L_ALT_${opcode} - .L_${opcode})            @ Addr of primary handler.\n\n* Remove duplicated .Lmark_introspection_unmarked\\label_suffix label;\n  clang assembler treated it as an error.\n\nBug: 110953818\nTest: compare disassembled .o files from GNU and clang assemblers.\nChange-Id: I33ae305b5a6d4d7bd9efa0ad43b7f9b1509328b9\n"
    },
    {
      "commit": "19af3b9b7fda03417a724fb7e465a3457d528eab",
      "tree": "efa7d558db285cca5143ba30b6bba7495b616269",
      "parents": [
        "3e36a9c24f591097b4403fe77b1d426c03aeb56a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 13 14:51:20 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Move Trace to use trampolines\n\nChange method tracing to use instrumentation trampolines instead of\ninterpreter. This is generally faster but can slow down recursion as\nthe stack gets longer. Due to this we need to disable several tests\nwhich will no longer finish in a reasonable time.\n\nTest: ./test.py --host --trace --ntrace\n\nChange-Id: Id4fb7c997a854859f2998f72018980973d8493f8\n"
    },
    {
      "commit": "3e36a9c24f591097b4403fe77b1d426c03aeb56a",
      "tree": "64f9c8896038ada2f7a17bd7cc62c488027dd548",
      "parents": [
        "25bf44622d6359c1d49c2a8a8b45938ff099f811"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 19 09:45:05 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Move back to jit code on trace removal\n\nThis changes the lock hierarchy so the lock checker is able to\ncorrectly determine that we will not deadlock. This lets us replace\nthe jit code in the method when tracing is removed.\n\nTest: ./test.py --host\n\nChange-Id: I14dd4eb9814c73fa3639239bb56d91c8303cec60\n"
    },
    {
      "commit": "25bf44622d6359c1d49c2a8a8b45938ff099f811",
      "tree": "d1a0e1f8069001d6880723f77e95efb01385ca71",
      "parents": [
        "d109e30eab8ba25f8d89be2a83d9036e2d541af2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 10:28:06 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Rewrite JVMTI method tracing to use trampolines\n\nNow that we have working instrumentation trampolines we can rewrite\nthe MethodEntry and MethodExit events to use these instead of the\ninterpreter. This will improve performance of code being traced in\nthis way by allowing the actual code to still use optimized jit code.\n\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xjitthreshold:0 --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --debuggable --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: ./test/testrunner/testrunner.py --host --debuggable --jit --runtime-option\u003d-Xjitthreshold:0 --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: adb shell am start-activity -S --attach-agent /data/local/tmp/libtifast.so\u003dMethodEntry,MethodExit \u003csome app\u003e\n\nChange-Id: I37c2ece14b1b12a79390da7d668ebbefa2966f87\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": "c916736ca1e375c276df251446baf2ac8ff3eb13",
      "tree": "64f5243c1b95e63a24861af5508b3f71311b51c0",
      "parents": [
        "2c8206ffeb07cebe2f612b8c66c0f4f4132e2be2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 16:46:43 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Ensure proxy methods are reported by instrumentation\n\nPreviously we would not report proxy methods to instrumentation in all\ncases. Specifically if the instrumentation trampolines were not\ninstalled we would never report proxy method entry or exit. This fixes\nthat and ensures that proxy methods are always reported to\ninstrumentation regardless of what instrumentation method is being\nused. It also ensures that these methods will only ever be reported\nonce per entry.\n\nTest: ./test.py --host\nTest: ./test/testrunner/testrunner.py \\\n         --host \\\n         --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\n\nChange-Id: I78f1d4b3b3f242e8915989ab26f7c204baab08e5\n"
    },
    {
      "commit": "2c8206ffeb07cebe2f612b8c66c0f4f4132e2be2",
      "tree": "9de26eb2e85f2ab46421caf0f1ca773dfcfca7f6",
      "parents": [
        "2d441b1253cca39bf3078422e8f0b2f4ec1bb408"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 14:51:09 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Correctly send MethodExit events from exception handlers\n\nDue to the way that exceptions are handled it was possible for a\nMethodExit event to be sent multiple times for the same exception.\nThis fixes that issue by correctly keeping track of which exception\nevents have already been sent and correctly tracking the current\nexception being thrown.\n\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test.py --host\n\nChange-Id: I7fa09f0f3f82181430b18805da5ba8daf68d4b89\n"
    },
    {
      "commit": "2d441b1253cca39bf3078422e8f0b2f4ec1bb408",
      "tree": "3db740023b1322749856f943c4b25b8158da8a44",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 15:33:21 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Make instrumentation trampoline able to jump to jit code\n\nIn order to get the benefit of the instrumentation trampoline it must\nbe able to jump to jit code. This patch adds support for doing that\nand adds code to ensure that we will not be jumping back and forth\nbetween the trampoline and the interpreter all the time if the jit has\nnot yet compiled the current method.\n\nNote we also disable the jit-gc when turning on these trampolines\nsince otherwise we could end up either sending instrumentation events\nmultiple times or running uninitialized memory.\n\nBug: 110263880\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so --runtime-option\u003d-Xjitthreshhold:0\nTest: ./test.py --host\n\nChange-Id: Ie6e92ec6367452fe4fde24d520d808b7af91d1b5\n"
    },
    {
      "commit": "f66c02b9852bc22bf74ba13b34e86f1863b92964",
      "tree": "a024afffe85e47e11bfadf6a51d487f149be1f46",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jul 10 13:53:27 2018 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jul 10 14:09:27 2018 +0100"
      },
      "message": "ahat: ignore duplicate instances with the same id\n\nBug: 110447634\nBug: 111147686\nTest: m ahat-test\n\nChange-Id: I761dcdffaa9fff5d53281570ec0070cac25b1d72\n"
    },
    {
      "commit": "21f7ac143b8c680efad7b74e3c3a937839b98f64",
      "tree": "16f6b0f9ef3261da615af47ff656d7686fbb7b1e",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 09 16:18:27 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 09 16:18:27 2018 -0700"
      },
      "message": "Handle FixUpRemotePointer for external images\n\nIn the case a pointer belongs to another image, return null instead\nof aborting.\n\nBug: 111273303\nTest: manual\nChange-Id: I763a2ea4174614f4c3f37d26e63fc18f8266d9b6\n"
    },
    {
      "commit": "e824cfdcfd41d400237a806ff93caca7f2e51878",
      "tree": "23b64d702e03a413dce4db22e06c73181f628939",
      "parents": [
        "b808ddca3d4816132f6f05bebcc6676144b1f6b6",
        "b0741fc084ebca6f0dd7942fda1e5236fd916022"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 09 16:35:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 09 16:35:30 2018 +0000"
      },
      "message": "Merge \"Fix typo in INSTANCE_OF bytecode analysis\""
    },
    {
      "commit": "b0741fc084ebca6f0dd7942fda1e5236fd916022",
      "tree": "23b64d702e03a413dce4db22e06c73181f628939",
      "parents": [
        "b808ddca3d4816132f6f05bebcc6676144b1f6b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 07 13:54:44 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 07 14:12:27 2018 -0700"
      },
      "message": "Fix typo in INSTANCE_OF bytecode analysis\n\nShould have been VRegA_22c instead of VRegB_22c.\n\nTest: manual\nChange-Id: I0799465a65b45f64eb5cd229c2cf96959067cc97\n"
    },
    {
      "commit": "b808ddca3d4816132f6f05bebcc6676144b1f6b6",
      "tree": "8806f6bab46a441fb9ea68d130abd31ba876518b",
      "parents": [
        "97c465ca6ee4c76766f8abaa3a98ee0329019c5c",
        "afc97bca07c85d4c3b46801c557edd12d681fc96"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 06 13:57:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 06 13:57:41 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Add CodeInfo to JNI methods.\"\""
    },
    {
      "commit": "97c465ca6ee4c76766f8abaa3a98ee0329019c5c",
      "tree": "ea4236d021cfa3df45e27efe1556732a06c6737b",
      "parents": [
        "91b6befbb0a323ccbdce5f0631e260346e04f045",
        "753a055b5398fcf00d2633565452679c8fb93e9d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 20:05:48 2018 +0000"
      },
      "message": "Merge \"Revert \"Handle a special case of lock aliasing during lock verification\"\""
    },
    {
      "commit": "753a055b5398fcf00d2633565452679c8fb93e9d",
      "tree": "e334f68df51c6078fd51f293a38146c6fcb6c106",
      "parents": [
        "82898ed01eedfb82a5b4adfe1327b827210af3ca"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:20 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:20 2018 +0000"
      },
      "message": "Revert \"Handle a special case of lock aliasing during lock verification\"\n\nFails run-test with --tracing or --debuggable.\n\nThis reverts commit 82898ed01eedfb82a5b4adfe1327b827210af3ca.\n\nChange-Id: I8005a1fbe63c6508d9abd5bea77679201c71ab46\n"
    },
    {
      "commit": "91b6befbb0a323ccbdce5f0631e260346e04f045",
      "tree": "ceb3c5608472a396f4f090c315c5cf16386fabd1",
      "parents": [
        "4a72f8b1baec1fb93105e381edb1bad60e372540",
        "82898ed01eedfb82a5b4adfe1327b827210af3ca"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 05 16:32:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 16:32:16 2018 +0000"
      },
      "message": "Merge \"Handle a special case of lock aliasing during lock verification\""
    },
    {
      "commit": "4a72f8b1baec1fb93105e381edb1bad60e372540",
      "tree": "ea4236d021cfa3df45e27efe1556732a06c6737b",
      "parents": [
        "427c3b149310a258eacfe3762374954326e18c01",
        "2dd1681bd23a0c3640fdb3d09128770b063364ac"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 05 12:13:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 12:13:33 2018 +0000"
      },
      "message": "Merge \"ART: minor fix for no-opt debug builds\""
    },
    {
      "commit": "afc97bca07c85d4c3b46801c557edd12d681fc96",
      "tree": "fd53094370a28aa4ba4b9d419e05ff7797cf51ae",
      "parents": [
        "564fa8a1f3e3c39793c9b146ed5f21650617dc3f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 08:14:35 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 13:04:43 2018 +0100"
      },
      "message": "Revert^2 \"Add CodeInfo to JNI methods.\"\n\nIt has no stack maps. We only store the frame info there.\n\nAs a consequence of having CodeInfo, the JNI methods are\nnow classified as IsOptimized().\n\nThis does not have any real effect on .oat file size.\n\nThis reverts commit 564fa8a1f3e3c39793c9b146ed5f21650617dc3f.\n\nTest: test-art-host-gtest\nTest: test-art-target-gtest-jni_compiler_test32\nChange-Id: Ic7a1949027d89ba97cfedfc8ea453f041193b6a7\n"
    },
    {
      "commit": "427c3b149310a258eacfe3762374954326e18c01",
      "tree": "0036963d2f5c61be05b01faaa840a3361d8c9a56",
      "parents": [
        "b8cfa92d62e85e5518af688c16773809ef89e6a6",
        "d059e3a636a5ac78cef09f1c56fb334e524a710c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 05 12:01:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 12:01:16 2018 +0000"
      },
      "message": "Merge \"ART: Make boot image compilation always PIC.\""
    },
    {
      "commit": "82898ed01eedfb82a5b4adfe1327b827210af3ca",
      "tree": "c801d41b2491271324a06343efc8618d5ea063a2",
      "parents": [
        "dc53f1616d656a757fb26039f387b7ee44ff2f1d"
      ],
      "author": {
        "name": "Alexey Grebenkin",
        "email": "a.grebenkin@samsung.com",
        "time": "Thu May 31 23:42:20 2018 +0300"
      },
      "committer": {
        "name": "Alexey Grebenkin",
        "email": "a.grebenkin@samsung.com",
        "time": "Thu Jul 05 12:41:54 2018 +0300"
      },
      "message": "Handle a special case of lock aliasing during lock verification\n\nCheck whether the two instructions immediately before a monitor-enter\nare const-class, establishing previously untracked lock aliasing\nin a low-overhead manner.\n\nTest: m test-art-host\nChange-Id: I94c187cbc422f8f0c13b688b09a5d9579a735b56\n"
    },
    {
      "commit": "d059e3a636a5ac78cef09f1c56fb334e524a710c",
      "tree": "42a42b36ba28c7d569d438d385e791e9e88af53a",
      "parents": [
        "2258c2ef5f6cb25ff12a1dc6dfac1f868892c226"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 05 09:43:39 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 05 09:43:39 2018 +0100"
      },
      "message": "ART: Make boot image compilation always PIC.\n\nThe non-PIC boot image config should be used only for\ngtests, so we should not rely on --compile-pic being\npassed to dex2oat.\n\nTest: m\nBug: 111149076\nChange-Id: I4abf6ed0d85dfd9ddfe61517b16e36bbcfe58c39\n"
    },
    {
      "commit": "b8cfa92d62e85e5518af688c16773809ef89e6a6",
      "tree": "04592d0bcf8afac399dc562efdcac491072366eb",
      "parents": [
        "6f39dab247f6fc3f4febd8391d7cdec089411812",
        "cba94faf17f9446f57e1ad2848703944970e51da"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Jul 05 01:40:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 01:40:43 2018 +0000"
      },
      "message": "Merge \"Revert \"Use frame info from CodeInfo.\"\""
    },
    {
      "commit": "cba94faf17f9446f57e1ad2848703944970e51da",
      "tree": "a833bf651517419264cfa17a4c1bc61cf86c1800",
      "parents": [
        "691124fa1bbd0636225afda657712b649ab4d2ba"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Jul 05 01:35:44 2018 +0000"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Jul 05 01:35:44 2018 +0000"
      },
      "message": "Revert \"Use frame info from CodeInfo.\"\n\nThis reverts commit 691124fa1bbd0636225afda657712b649ab4d2ba.\n\nReason for revert:\nMultiple build failures due to check failure\n  oat_quick_method_header.h:162 Check failed: IsOptimized()\n\nChange-Id: I45f6f765a2067cbb13f28a2d0b783b020ac3432d\n"
    },
    {
      "commit": "6f39dab247f6fc3f4febd8391d7cdec089411812",
      "tree": "4a7dc383b50885ee848a27670ae490bdbd1c1a6b",
      "parents": [
        "a296f908e186398ff413c78f2460cb3138e531ab",
        "691124fa1bbd0636225afda657712b649ab4d2ba"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 05 00:49:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 00:49:24 2018 +0000"
      },
      "message": "Merge \"Use frame info from CodeInfo.\""
    },
    {
      "commit": "a296f908e186398ff413c78f2460cb3138e531ab",
      "tree": "04592d0bcf8afac399dc562efdcac491072366eb",
      "parents": [
        "b275072ddfb1bfcacc914aff08cb0f5774000258",
        "93bd3619de4616040d672a4ed3825976bed4bfce"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:03:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 00:03:21 2018 +0000"
      },
      "message": "Merge \"Use iterators to access stack map data.\""
    },
    {
      "commit": "b275072ddfb1bfcacc914aff08cb0f5774000258",
      "tree": "de2997300d8b8da936136e222b6a7e48735b4508",
      "parents": [
        "ea9b308e4548b704e21f4d587d9006ddc9db7b9e",
        "564fa8a1f3e3c39793c9b146ed5f21650617dc3f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:02:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 00:02:30 2018 +0000"
      },
      "message": "Merge \"Revert \"Add CodeInfo to JNI methods.\"\""
    },
    {
      "commit": "564fa8a1f3e3c39793c9b146ed5f21650617dc3f",
      "tree": "b9e960a55f5643e65ecd05e258f9ac1662288bcc",
      "parents": [
        "85f3934f364e1674bfd2a6813274918576acdf60"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:01:10 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:01:10 2018 +0000"
      },
      "message": "Revert \"Add CodeInfo to JNI methods.\"\n\nThis reverts commit 85f3934f364e1674bfd2a6813274918576acdf60.\n\nReason for revert: breaks gtests on target\n\nChange-Id: I9f97fe4e7557027677824974568120f658bbd53a\n"
    },
    {
      "commit": "ea9b308e4548b704e21f4d587d9006ddc9db7b9e",
      "tree": "7800ba6d720e36d2511022ccc5329962bdb44b45",
      "parents": [
        "64cdf56aeac47ab2dfd4f6437f976de9a9ad372d",
        "ab86413a9b5fab9eb7d3967d30277b2e7b580e9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 04 15:31:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 15:31:27 2018 +0000"
      },
      "message": "Merge \"Move a 530-checker-lse test from java to smali\""
    },
    {
      "commit": "691124fa1bbd0636225afda657712b649ab4d2ba",
      "tree": "7b13a14f0ce6d6ca11de3957664c2a44c359e8a2",
      "parents": [
        "64cdf56aeac47ab2dfd4f6437f976de9a9ad372d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:53 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 15:14:19 2018 +0000"
      },
      "message": "Use frame info from CodeInfo.\n\nStill keep the other copy around for verification.\n\nTest: test-art-host-gtest\nChange-Id: Iae4672e52d7ff3006d8f2b6238aecfac6101a1d8\n"
    },
    {
      "commit": "64cdf56aeac47ab2dfd4f6437f976de9a9ad372d",
      "tree": "a833bf651517419264cfa17a4c1bc61cf86c1800",
      "parents": [
        "85861e8095f8b9ab774a78b2a1820008da009438",
        "85f3934f364e1674bfd2a6813274918576acdf60"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 15:13:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 15:13:10 2018 +0000"
      },
      "message": "Merge \"Add CodeInfo to JNI methods.\""
    },
    {
      "commit": "85861e8095f8b9ab774a78b2a1820008da009438",
      "tree": "290d80535544fb3b8795f0f88a11b03598052d6e",
      "parents": [
        "0e4563c4ccd3a36dff11c33fc98aa9cedae722e4",
        "0e32908d0ee4be5905cdd409dd3c45331fc98465"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 04 14:22:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 14:22:11 2018 +0000"
      },
      "message": "Merge \"ART: Refactor scalar loop optimizations.\""
    },
    {
      "commit": "ab86413a9b5fab9eb7d3967d30277b2e7b580e9a",
      "tree": "aec564fbeda491eb02360ab65335d26dd924a8e5",
      "parents": [
        "0e4563c4ccd3a36dff11c33fc98aa9cedae722e4"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jul 04 15:45:13 2018 +0200"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jul 04 15:45:13 2018 +0200"
      },
      "message": "Move a 530-checker-lse test from java to smali\n\nThe test expectations was updated in\nhttps://android-review.googlesource.com/c/platform/art/+/707705 due\nto D8 also performing the same optimization.\n\nMoved the test to smali to be independent of the dexer output, and reverted\nthe test expectations to test this optimization on Art again.\n\nTest: art/test/testrunner/testrunner.py -b --host -t 530-checker-lse\nChange-Id: I8c8a37ea08adb44ea9e00284cce43d93a768e7bf\n"
    },
    {
      "commit": "93bd3619de4616040d672a4ed3825976bed4bfce",
      "tree": "2ab3424374ed3d316053ed8e9ec2d4b95ea2ef4d",
      "parents": [
        "f07d5617770c37d87447c8bddf105eb0469ab093"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 02 19:30:18 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 14:23:12 2018 +0100"
      },
      "message": "Use iterators to access stack map data.\n\nTry to simplify the code using the recently added iterators.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: I0b9f54df01749ee6ec3a67cfb07ba636a2489c89\n"
    },
    {
      "commit": "0e4563c4ccd3a36dff11c33fc98aa9cedae722e4",
      "tree": "c64221847df3d435cf0c5633a60380bad2719df4",
      "parents": [
        "0162450a86c1586c8e0d28710ea0280bfa64ae32",
        "0b6de0c0de6c760a6bdd45a37e92055f662ad4ff"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 04 13:13:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 13:13:02 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Add \u0027list\u0027 command to generate public/private API lists\""
    },
    {
      "commit": "85f3934f364e1674bfd2a6813274918576acdf60",
      "tree": "7dde44e022bfe43439982e6d2c699f5acc73efcf",
      "parents": [
        "0162450a86c1586c8e0d28710ea0280bfa64ae32"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:52 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 13:51:50 2018 +0100"
      },
      "message": "Add CodeInfo to JNI methods.\n\nIt has no stack maps. We only store the frame info there.\n\nAs a consequence of having CodeInfo, the JNI methods are\nnow classified as IsOptimized().\n\nThis does not have any real effect on .oat file size.\n\nTest: test-art-host-gtest\nChange-Id: I8d03a3af347dc7239719bb3c39ecf84c6eaece80\n"
    },
    {
      "commit": "0e32908d0ee4be5905cdd409dd3c45331fc98465",
      "tree": "592ffd19b21379b0815345302b04911932fa90f9",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jun 12 10:23:27 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jul 04 13:12:13 2018 +0100"
      },
      "message": "ART: Refactor scalar loop optimizations.\n\nRefactor scalar loop peeling and unrolling to eliminate repeated\nchecks and graph traversals, to make the code more readable and\nto make it easier to add new scalar loop opts.\n\nThis is a prerequisite for full unrolling patch.\n\nTest: 530-checker-peel-unroll.\nTest: test-art-target, test-art-host.\nChange-Id: If824a95f304033555085eefac7524e59ed540322\n"
    },
    {
      "commit": "0162450a86c1586c8e0d28710ea0280bfa64ae32",
      "tree": "b9e960a55f5643e65ecd05e258f9ac1662288bcc",
      "parents": [
        "a8d5a5f709cc7611352d58fb6f2fb50411563653",
        "0b4267720380ca746abb9090364cea9ee6cb1435"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 04 08:41:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 08:41:41 2018 +0000"
      },
      "message": "Merge \"Revert \"Refactor DexFile ownership\"\""
    },
    {
      "commit": "a8d5a5f709cc7611352d58fb6f2fb50411563653",
      "tree": "be3f0cf1d59e5797100cae0d859e12605ac0b378",
      "parents": [
        "7583d915800ad330da0232dfdb0a4d1bda2d074c",
        "8a62a4c9570b345b715a022d33d443413a634392"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 04 07:50:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 07:50:56 2018 +0000"
      },
      "message": "Merge \"Handle String.\u003cinit\u003e with a phi input.\""
    },
    {
      "commit": "0b4267720380ca746abb9090364cea9ee6cb1435",
      "tree": "3e330d7241d5608858b9084a246a4bb8b88b070f",
      "parents": [
        "7583d915800ad330da0232dfdb0a4d1bda2d074c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:42 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:56 2018 +0000"
      },
      "message": "Revert \"Refactor DexFile ownership\"\n\nThis reverts commit b095f022a9683a9123018c01e22595cf969fd88b.\n\nReason for revert: Caused huge interpreter performance regression.\n\nChange-Id: I0f27f8f234d315807695362bf679ef47f68723f7\n"
    },
    {
      "commit": "7583d915800ad330da0232dfdb0a4d1bda2d074c",
      "tree": "2a22fcf9783d34fb8ed51527541daebfeaf184ac",
      "parents": [
        "1398c8fe04673bc1cff6811c9017368fb8d4bb99",
        "9bafa8b8abeafb36b2d791e89df65c4a3b74fd54"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 03 23:03:19 2018 +0000"
      },
      "message": "Merge \"Revert \"Cache DexFile begin and size\"\""
    },
    {
      "commit": "9bafa8b8abeafb36b2d791e89df65c4a3b74fd54",
      "tree": "851fd56078bdff9edb4a8354c8695fc5c7bda2f4",
      "parents": [
        "689caf046cb99efda4462183eeaacb11a6119adb"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 21:19:34 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 21:19:34 2018 +0000"
      },
      "message": "Revert \"Cache DexFile begin and size\"\n\nThis reverts commit 689caf046cb99efda4462183eeaacb11a6119adb.\n\nReason for revert: Did not fix regression caused by prior CL.\n\nChange-Id: I8a01bacfa98539d2980095c445cd580d73e39975\n"
    },
    {
      "commit": "0b6de0c0de6c760a6bdd45a37e92055f662ad4ff",
      "tree": "e6b1398d87f31392a0dc1ff99c1ba10efbbb782e",
      "parents": [
        "2258c2ef5f6cb25ff12a1dc6dfac1f868892c226"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 28 11:56:41 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jul 03 17:21:53 2018 +0100"
      },
      "message": "hiddenapi: Add \u0027list\u0027 command to generate public/private API lists\n\nIn order to make decisions about non-SDK API restrictions, we need\na complete list of public and private class members in the boot\nclass path. This was previously done by Doclava but having to lower\nits Java view of the framework to dex level has proven cumbersome\nand error prone.\n\nThis patch adds a new command to the `hiddenapi` build tool which\nbuilds the class hierarchy of boot class path and attempts to resolve\neach member of android.jar against it. Resolved members are dumped\ninto a public API text file, the rest into a private API text file.\n\nNote that the resolution is not strictly the same as in ART and we\nmay err on the side of caution. This should be revisited to comply\nwith the spec.\n\nBug: 79409988\nTest: m out/target/common/obj/PACKAGING/hiddenapi-private-list.txt\nChange-Id: Ia82bcaad9347344aacf8dc6f7b093f769cd853ec\n"
    },
    {
      "commit": "1398c8fe04673bc1cff6811c9017368fb8d4bb99",
      "tree": "a79883828db6e2802e757fc22979169162c92fd5",
      "parents": [
        "2258c2ef5f6cb25ff12a1dc6dfac1f868892c226",
        "f5dd114e388b78c83140796615ba5ced5259fe31"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 03 14:58:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 03 14:58:08 2018 +0000"
      },
      "message": "Merge \"Disable Dex2oatImageTest.TestModesAndFilters for gtest-heap-poisoning.\""
    },
    {
      "commit": "2dd1681bd23a0c3640fdb3d09128770b063364ac",
      "tree": "fbdcdad9c7278adccdaaebb7c3c5f190398b7797",
      "parents": [
        "675673dea0d85a82a152c877a36b24d6e1e5ad1b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 03 14:16:05 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 03 14:37:50 2018 +0100"
      },
      "message": "ART: minor fix for no-opt debug builds\n\nWorks around missing symbol definition for debug builds with no\noptimization.\n\nTest: ART_BUILD_HOST_DEBUG\u003d1 ART_BUILD_TARGET_DEBUG\u003d1 \\\n      ART_DEBUG_OPT_FLAG\u003d-O0 m -j32\nChange-Id: I16f2c73855ec49b055e531b91bfdb4450bd0dc8e\n"
    },
    {
      "commit": "f5dd114e388b78c83140796615ba5ced5259fe31",
      "tree": "411034e2946f3c4895975117c91f28606223286d",
      "parents": [
        "ad78fb294dbf8bae52835f98cc3e38a6f217781f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 03 13:29:18 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 03 14:11:15 2018 +0100"
      },
      "message": "Disable Dex2oatImageTest.TestModesAndFilters for gtest-heap-poisoning.\n\nThis test is failing on the gtest-heap-poisoning configuration\n(AddressSanitizer + CMS/RosAlloc + heap-poisoning).\nTemporarily disable this test on this configuration to keep\nour automated build/testing green while we work on a fix.\n\nTest: ART_HEAP_POISONING\u003dtrue ART_USE_READ_BARRIER\u003dfalse SANITIZE_HOST\u003daddress ASAN_OPTIONS\u003d\u0027detect_leaks\u003d0\u0027 make test-art-host-gtest-dex2oat_image_test\nBug: 111061592\nChange-Id: If1cb300ed19331a203226031a294c204de767f37\n"
    },
    {
      "commit": "2258c2ef5f6cb25ff12a1dc6dfac1f868892c226",
      "tree": "48c98b4e03899ec555062b0affd7d7e8bdcb2383",
      "parents": [
        "ad78fb294dbf8bae52835f98cc3e38a6f217781f",
        "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 11:47:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 03 11:47:17 2018 +0000"
      },
      "message": "Merge \"ART: Do not use std::\u003ccontainer\u003e::at().\""
    },
    {
      "commit": "8a62a4c9570b345b715a022d33d443413a634392",
      "tree": "4b34426f14301f230e9d6b5f23486a038cf6e548",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 03 09:39:07 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 03 11:22:34 2018 +0100"
      },
      "message": "Handle String.\u003cinit\u003e with a phi input.\n\nWe wrongly assumed only irreducible loops could lead\nto this situation, but any loop can actually be in between\na String NewInstance and a String.\u003cinit\u003e.\n\nbug: 109666561\nTest: 563-checker-fakestring\nChange-Id: I018a22f7e22c15e140252544415f51d544f7cc13\n"
    },
    {
      "commit": "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0",
      "tree": "7665f6d1527be61af13c8ef53f10833dd4200cfd",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "message": "ART: Do not use std::\u003ccontainer\u003e::at().\n\nThese functions are specified as throwing std::out_of_range\nand we do not use exceptions.\n\nTest: m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I67c365ed6d779c101a18b9f386c751c48ca76e16\n"
    },
    {
      "commit": "ad78fb294dbf8bae52835f98cc3e38a6f217781f",
      "tree": "7c84bd96a90ed96c12a65a0390c171fa79867fd3",
      "parents": [
        "b3df69b26ae461aeb5c990faa9bfa4bf17574234",
        "61908880e6565acfadbafe93fa64de000014f1a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 02 12:33:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 02 12:33:58 2018 +0000"
      },
      "message": "Merge \"Emit vector mulitply and accumulate instructions for x86.\""
    },
    {
      "commit": "b3df69b26ae461aeb5c990faa9bfa4bf17574234",
      "tree": "d47ef1c292c30ec4f794af5f38388804027a17c6",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019",
        "15f95b103731a4386c784ef3ca79c47e68e27719"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 02 11:30:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 02 11:30:56 2018 +0000"
      },
      "message": "Merge \"ART: Fix HSelectGenerator for instructions which can throw.\""
    },
    {
      "commit": "61908880e6565acfadbafe93fa64de000014f1a6",
      "tree": "40b535db9175f3d959364d5bc30eaab4e2c4b4c4",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Fri Jun 29 13:06:35 2018 +0530"
      },
      "committer": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Mon Jul 02 15:37:38 2018 +0530"
      },
      "message": "Emit vector mulitply and accumulate instructions for x86.\n\nThis patch adds a new cpu vaiant named kabylake and performs\ninstruction simplification to generate VectorMulitplyAccumulate.\n\nTest: ./test.py --host --64\n\nChange-Id: Ie6cc882dadf1322dd4d3ae49bfdb600b0c447765\nSigned-off-by: Gupta Kumar, Sanjiv \u003csanjiv.kumar.gupta@intel.com\u003e\n"
    },
    {
      "commit": "b28683f43231e65860ecf91c96a8c0234542c019",
      "tree": "fcefdf8c8271a9e288043a3489bc673594671e47",
      "parents": [
        "675673dea0d85a82a152c877a36b24d6e1e5ad1b",
        "1e1260cd6868c96edaf2135593a801b814c5e099"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 02 08:43:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 02 08:43:07 2018 +0000"
      },
      "message": "Merge \"Do not restore source object hash in ImageWriter.\""
    },
    {
      "commit": "675673dea0d85a82a152c877a36b24d6e1e5ad1b",
      "tree": "74a92310a216fbcb85a8b879301ed4711ae3ef01",
      "parents": [
        "936523d4e9554b6cbc11ebcb405ed6d300d78fa4",
        "12dd8a90af1f1cfae172f6d9c3443808c4fb6e40"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 29 21:00:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 21:00:37 2018 +0000"
      },
      "message": "Merge \"Add bytecode conversion experiments\""
    },
    {
      "commit": "936523d4e9554b6cbc11ebcb405ed6d300d78fa4",
      "tree": "a36269834e511b8c21de944aaa14ef2f114ed28d",
      "parents": [
        "0a5f6972e4c3554fec362366a281183f3a2254ad",
        "aee008e77ef1f7759f6e04df2e87fab89f5ebfa7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 29 18:59:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 18:59:32 2018 +0000"
      },
      "message": "Merge \"ART: Reserve more overflow space for the interpreter\""
    },
    {
      "commit": "0a5f6972e4c3554fec362366a281183f3a2254ad",
      "tree": "d318dd6e64269150bd3844b94ebb75dc8abf8ea2",
      "parents": [
        "04a4f20f26b0935a43f74269f68ddfd67335afb8",
        "689caf046cb99efda4462183eeaacb11a6119adb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 29 18:34:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 18:34:18 2018 +0000"
      },
      "message": "Merge \"Cache DexFile begin and size\""
    },
    {
      "commit": "15f95b103731a4386c784ef3ca79c47e68e27719",
      "tree": "12a257e5889029543d960c5578c20d2600824bb0",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 29 15:30:36 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 29 19:29:53 2018 +0100"
      },
      "message": "ART: Fix HSelectGenerator for instructions which can throw.\n\nMake sure that HSelectGenerator doesn\u0027t hoist instructions which\ncan throw. Currently this doesn\u0027t happen due to\nSideEffect::CanTriggerGC however this side effect is to be removed\nfor some instructions.\n\nTest: select_generator_test.\nTest: test-art-host, test-art-target.\n\nChange-Id: I996f6cbdcee4987a36079d387a7b74b326881ab6\n"
    },
    {
      "commit": "12dd8a90af1f1cfae172f6d9c3443808c4fb6e40",
      "tree": "452b6f4de6b9054ede8528c1e3ea97933e642c75",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 12 11:17:22 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 29 10:45:37 2018 -0700"
      },
      "message": "Add bytecode conversion experiments\n\nAdd a few new instructions and measure savings:\ninvoke-xx-[1-4]-[move-result].\niget/set-this\nnew-instance-invoke-this\nif-eqz4\nif-nez4\netc..\n\nCumulative Dex bytecode savings are ~14% of the Dex size.\n\nTest: test-art-host\nBug: 77721545\n\nChange-Id: Ibe2b04614e2c5782612b515fbb7f77dbcf9eb66c\n"
    },
    {
      "commit": "aee008e77ef1f7759f6e04df2e87fab89f5ebfa7",
      "tree": "cb8b0bbd5c64f116eaeac9cb0e27c000c4881003",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 29 10:00:13 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 29 10:00:13 2018 -0700"
      },
      "message": "ART: Reserve more overflow space for the interpreter\n\nIn debuggable builds, especially under ASAN, the switch interpreter\nwith access-checks has a huge stack frame. Virtually increase the\nprotected stack space at the end for overflow handling. This is\nnecessary so that interpreter calls will create a StackOverflow\nbefore it is too late.\n\nTechnically only ASAN pushes the stack over the established limit,\nbut there is no practical downside to adding a small amount to the\noverflow (note that the reserved size is small for non-ASAN builds),\nand this avoids the proliferation of memory_tool.h.\n\nNon-debug builds are approximately protected by frame-size compiler\nchecks. Compiled code does not need additional space, as the actual\noverflow handling fits into the carved-out space.\n\nBug: 109813469\nTest: SANITIZE_HOST\u003daddress art/test/testrunner/testrunner.py -b --host --interp-ac -t 004-SignalTest\nChange-Id: I1bdd2fc586a6da30720a8be62f3247180ce48e93\n"
    },
    {
      "commit": "689caf046cb99efda4462183eeaacb11a6119adb",
      "tree": "d318dd6e64269150bd3844b94ebb75dc8abf8ea2",
      "parents": [
        "04a4f20f26b0935a43f74269f68ddfd67335afb8"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jun 29 09:31:30 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jun 29 09:50:55 2018 -0700"
      },
      "message": "Cache DexFile begin and size\n\nAvoid virtual function invocations in DexFile Begin() and Size() methods\nby caching duplicate copies of the beginning address and size at construction.\n\nBug: 110980617\nTest: make -j 50 test-art-host\nChange-Id: I70867bcd69e30a93b91873171d365a916b76bc96\n"
    },
    {
      "commit": "04a4f20f26b0935a43f74269f68ddfd67335afb8",
      "tree": "851fd56078bdff9edb4a8354c8695fc5c7bda2f4",
      "parents": [
        "97ac9cc3c62fe8d93af316763a20d13b3495b993",
        "6fd1606a3f3fc2dd53ab4f8b371e420b3e33c74f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 15:39:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 15:39:58 2018 +0000"
      },
      "message": "Merge \"Implement Integer.valueOf() intrinsic for boot image.\""
    },
    {
      "commit": "1e1260cd6868c96edaf2135593a801b814c5e099",
      "tree": "0fb9839ce62f74a5c382789dd3d2d5f4d21c14e0",
      "parents": [
        "6fd1606a3f3fc2dd53ab4f8b371e420b3e33c74f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 16:31:40 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 16:36:49 2018 +0100"
      },
      "message": "Do not restore source object hash in ImageWriter.\n\nWriting the image is the last step, so these values shall\nnot be needed anymore. And if we decided to restore the heap\nto a usable state, we would have to clear the lockword of\nall other objects as well.\n\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nChange-Id: I6cc807808b49f89e20f0141bcc2ad20b9005a614\n"
    },
    {
      "commit": "6fd1606a3f3fc2dd53ab4f8b371e420b3e33c74f",
      "tree": "9f944d267ce3616eb969c027665e4a451c2b3879",
      "parents": [
        "bb089b6bf850c87e0e42917a383cc7298dcb09c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 26 11:02:04 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 14:39:00 2018 +0100"
      },
      "message": "Implement Integer.valueOf() intrinsic for boot image.\n\nAnd generate only one \"boot image live objects\" array rather\nthan one per boot*.art file.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 71526895\nChange-Id: I23af7f47fea5150805f801cd2512f2d152ee5b73\n"
    },
    {
      "commit": "97ac9cc3c62fe8d93af316763a20d13b3495b993",
      "tree": "bafe28742d1bdfb3e8e119fcd1c5844c29ce7b23",
      "parents": [
        "956753a5952a74aa43d9e16454b97062d7eddb8c",
        "bb089b6bf850c87e0e42917a383cc7298dcb09c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 12:04:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 12:04:07 2018 +0000"
      },
      "message": "Merge \"Remove CompilerDriver::support_boot_image_fixup_.\""
    },
    {
      "commit": "956753a5952a74aa43d9e16454b97062d7eddb8c",
      "tree": "b543544220bac59ee33a7e88a7d82e7ec2d887de",
      "parents": [
        "d9e590d6c98b5260018c8d347aba5df1d498e125",
        "f3352415cb12b1e53ab9e1178a315a74409960a7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 29 09:47:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 09:47:27 2018 +0000"
      },
      "message": "Merge \"Remove useless assertions in ConcurrentCopying::MarkNonMoving.\""
    },
    {
      "commit": "d9e590d6c98b5260018c8d347aba5df1d498e125",
      "tree": "9a4f5d5906ef9dbb0fffb7ce4c6c30ffa4a75ed1",
      "parents": [
        "b2ab807bd1feb25d04ad5bdcb336c281a6ce88ff",
        "003e64b4108125d6f59bc1b663fd71864abadab9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 29 08:40:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 08:40:55 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Refactor before new features are added\""
    },
    {
      "commit": "b2ab807bd1feb25d04ad5bdcb336c281a6ce88ff",
      "tree": "2ed74172c0a4e8dbcb72c575f0e88c597d357f6b",
      "parents": [
        "4e2000ac8f444f92df6633b57fa3e69203f4c3b7",
        "dcfcce4241fc706fd249bb3fec67f8a1dc434af6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Delay init of classes of pre-allocated exceptions.\"\""
    },
    {
      "commit": "4e2000ac8f444f92df6633b57fa3e69203f4c3b7",
      "tree": "2a5dbaf6752357b537fe956ec18f09ab3d8ee79f",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c",
        "8ad7a3b4f7875546f471f8955967da17c9728a00"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 29 02:45:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 02:45:03 2018 +0000"
      },
      "message": "Merge \"ART: Improve Constructor.newInstance\""
    },
    {
      "commit": "8ad7a3b4f7875546f471f8955967da17c9728a00",
      "tree": "2a5dbaf6752357b537fe956ec18f09ab3d8ee79f",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 22 16:08:52 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 28 14:33:23 2018 -0700"
      },
      "message": "ART: Improve Constructor.newInstance\n\nSpecial-case InvokeMethod to be constructor-specific so as to avoid\nunnecessary and duplicate checks. Refactor for some code sharing.\n\nReduces Constructor.newInstance for Integer by approximately 15%\n(ten runs of 10000000 invocations, reporting mean per invocation,\nhost x86-64 optimizing, perf stat numbers are for complete run\nand do not exclude, for example, setup and prologue GC):\n\n                   Before      After\n\n(perf stat)\nInstructions       2503.4      2149.8\nBranches           450.8       384.4\nBranch-misses      1.83        0.85\n\n(time)\nTime (ns)          335.17      278.58\n\nBug: 20269715\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id105e542a19d72efaace60ad39fcef5e42dde006\n"
    },
    {
      "commit": "003e64b4108125d6f59bc1b663fd71864abadab9",
      "tree": "488f963dc86f905245df46a6ba99e534b1666edd",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 27 13:20:52 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 28 19:43:13 2018 +0100"
      },
      "message": "hiddenapi: Refactor before new features are added\n\nRefactor the hiddenapi build tool to take a command name as its\nfirst argument and create a notion of a \"class path\" group of dex\nfiles. These changes will be needed for creating a new command\nthat resolves SDK stubs against the boot class path.\n\nBug: 79409988\nTest: m hiddenapi\nTest: m test-art-host-gtest-hiddenapi_test\nTest: art/test.py -r -t 674-hiddenapi -t 999-redefine-hiddenapi\nChange-Id: I93c36154cc8c5e8c0e9414cf02e2c6ea298ae0e8\n"
    },
    {
      "commit": "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c",
      "tree": "ccbf6e69ca17f4677186f4e148e1f9baf8bc7ae4",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07",
        "b095f022a9683a9123018c01e22595cf969fd88b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jun 28 16:59:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 28 16:59:00 2018 +0000"
      },
      "message": "Merge \"Refactor DexFile ownership\""
    },
    {
      "commit": "bb089b6bf850c87e0e42917a383cc7298dcb09c5",
      "tree": "9076775ab1a00bf7321a6b4a457ddd81f20c10c1",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 28 17:30:16 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 28 17:55:01 2018 +0100"
      },
      "message": "Remove CompilerDriver::support_boot_image_fixup_.\n\nCheck for non-PIC boot image as a testing config instead.\nHonor the config for HInvokeStaticOrDirect sharpening.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I3645f4fefe322f1fd64ea88a2b41a35ceccea688\n"
    },
    {
      "commit": "f3352415cb12b1e53ab9e1178a315a74409960a7",
      "tree": "7221cb16cd081642f7fb26902b8f92926b9b1abc",
      "parents": [
        "fad8ad743e27b5d809f4e7d71d50fe3726cc7b2a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 26 14:44:25 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 28 15:32:27 2018 +0100"
      },
      "message": "Remove useless assertions in ConcurrentCopying::MarkNonMoving.\n\nThese assertions were checking that the read barrier state was\n\"marked\" (\"gray\" or \"black\") when the reference passed as argument was\nalready marked in the corresponding bitmap. However, when the read\nbarrier \"black\" state was folded into the \"white\" state, these\nassertions essentially became checks verifiying that the read barrier\nstate was \"gray\" or \"non-gray\", which is a tautology.\n\nTest: art/test.py\nBug: 110812755\nChange-Id: Icec68c85de88b3f188b23a2d59bdd5dd60cc72ed\n"
    },
    {
      "commit": "b095f022a9683a9123018c01e22595cf969fd88b",
      "tree": "ccbf6e69ca17f4677186f4e148e1f9baf8bc7ae4",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jun 22 14:38:51 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jun 27 18:14:50 2018 -0700"
      },
      "message": "Refactor DexFile ownership\n\nAvoid bare pointers in DexFileLoader APIs, which caused clang-tidy\nissues and other problems.\n\nBug: none\nTest: build and boot\nChange-Id: Ic277bc83af1997774b42c55d3d631ec940b9c015\n"
    },
    {
      "commit": "b5271dd44a30f498689e503340d3c8d01bf31f07",
      "tree": "ed8270e3a5d0161ebe5bec0606a24cd5e3123e59",
      "parents": [
        "0799b9eb29a9009214fd607922fac3f80bf8352e",
        "f0f3c594404aeb3d758e31ba748be400dc5b78a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 17:23:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 17:23:46 2018 +0000"
      },
      "message": "Merge \"ART: Clean up jit_code_cache.h\""
    },
    {
      "commit": "0799b9eb29a9009214fd607922fac3f80bf8352e",
      "tree": "a97df4bbaaafcb6ba32479ef8bba5dd4ab2afefa",
      "parents": [
        "ac85c697c6f0b4fad4e0eb6aebe3bfd2d75cd872",
        "6e75beeee0a92b235192b775282cf1573770fa09"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 16:54:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 16:54:18 2018 +0000"
      },
      "message": "Merge \"dexanalyze: distinguish fields from other classes.\""
    },
    {
      "commit": "ac85c697c6f0b4fad4e0eb6aebe3bfd2d75cd872",
      "tree": "2b0b521c47df71cd782f4f014347cd8a6cb6866d",
      "parents": [
        "f5020eecfde4e91e4499418f9e189f08cd4ecbd5",
        "16206cfe02161b7c3c69385b4904f6c3961aacf5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 16:32:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 16:32:15 2018 +0000"
      },
      "message": "Merge \"ART: Fix RelativePatcherTest::TearDown() for ASAN.\""
    },
    {
      "commit": "f5020eecfde4e91e4499418f9e189f08cd4ecbd5",
      "tree": "f4777bfc1b122a4c9dfa15e7eb35ac3c306baf2f",
      "parents": [
        "0028ce042e6b0f8446d59d0632c344824aae20fc",
        "b40d361019897e8b8484b772ccc0be433abafb5f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 15:49:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 15:49:25 2018 +0000"
      },
      "message": "Merge \"ART: Finish old move of OatDexFile\""
    },
    {
      "commit": "f0f3c594404aeb3d758e31ba748be400dc5b78a9",
      "tree": "e5c247c1aedfbf4de832d2fc3ccf415aca8366c6",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 13:28:00 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 27 08:37:43 2018 -0700"
      },
      "message": "ART: Clean up jit_code_cache.h\n\nRefactor to reduce transitive includes.\n\nTest: mmma art\nChange-Id: I32caf422dc9a59b8e3d495b88b182f072ef4de84\n"
    },
    {
      "commit": "16206cfe02161b7c3c69385b4904f6c3961aacf5",
      "tree": "c49325a354f52924ee6d1d055a0c4e925bc13631",
      "parents": [
        "de4efa65db3c38df49c680159bedf72afcc1fc71"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 15:36:55 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 15:36:55 2018 +0100"
      },
      "message": "ART: Fix RelativePatcherTest::TearDown() for ASAN.\n\nTest: run_build_test_target.py art-gtest-asan\nChange-Id: I3bb383aa63ee3eda5b41e11fef1d28c189b2a63a\n"
    },
    {
      "commit": "0028ce042e6b0f8446d59d0632c344824aae20fc",
      "tree": "d8c778319501177a583f52ae4562ce56ef06831c",
      "parents": [
        "cd059b6568f5ada2922ef34a45603720f03945e2",
        "975cd094da5323b9ecdce9076677152bb12703b7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 13:47:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 13:47:00 2018 +0000"
      },
      "message": "Merge \"Distinguish between soft/weak/phantom/etc references in ahat.\""
    },
    {
      "commit": "cd059b6568f5ada2922ef34a45603720f03945e2",
      "tree": "004971d8017619e41a86656372afa7021877e4c4",
      "parents": [
        "86c84f7edbe58a7a18ac40abba0ef268ed367271",
        "5084cda031d1ffcc1819070d127215adf17a1835"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 13:25:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 13:25:03 2018 +0000"
      },
      "message": "Merge \"ART: disable 638-no-line-number after move to d8\""
    },
    {
      "commit": "86c84f7edbe58a7a18ac40abba0ef268ed367271",
      "tree": "84c8c19fd2f50bd9bc385df3ab2a339d908c0ef3",
      "parents": [
        "de4efa65db3c38df49c680159bedf72afcc1fc71",
        "f9e90541479502840c19274cf4d5b7ff22e51193"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 13:18:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 13:18:12 2018 +0000"
      },
      "message": "Merge \"ART: Refactor Int64ConstantFrom to use Int64FromConstant; rename it to Int64FromLocation\""
    },
    {
      "commit": "de4efa65db3c38df49c680159bedf72afcc1fc71",
      "tree": "42566e66d3dd8581bc961758c4a5caef324fc933",
      "parents": [
        "f07d5617770c37d87447c8bddf105eb0469ab093",
        "0044b53dfb4752a3379211e696506c29b5ce039f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 12:45:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 12:45:05 2018 +0000"
      },
      "message": "Merge \"ART: Clean-up d8 expections\""
    },
    {
      "commit": "f9e90541479502840c19274cf4d5b7ff22e51193",
      "tree": "a5ba846c0d493aae7db126ee91d635765250a6e9",
      "parents": [
        "a3234e96206a841c83f9f5bf0d4e14fb07b72a5e"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Mon Jun 25 13:43:53 2018 +0100"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jun 27 13:24:35 2018 +0100"
      },
      "message": "ART: Refactor Int64ConstantFrom to use Int64FromConstant; rename it to Int64FromLocation\n\nInt64ConstantFrom function duplicates code of the Int64FromConstant. Its\ncode can be replaced with a call: Int64FromConstant(location.getConstant()).\n\nThe patch removes the duplicating code. It also changes the function name to\nInt64FromLocation to be consistent with its usage.\n\nTest: test-art-host, test-art-target\nChange-Id: I5624259aa72523f97ca8fc132a6152f338425c8e\n"
    },
    {
      "commit": "f07d5617770c37d87447c8bddf105eb0469ab093",
      "tree": "e6b15b904e591a3b805b292ce9afd9b0cecbf40d",
      "parents": [
        "2dc252e37d4df0c4160cd20b6fc852f5f28b7b87",
        "a043111e3a2c09b549708a6227a1f54d91da76aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 12:23:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 12:23:54 2018 +0000"
      },
      "message": "Merge \"Move instruction_set_ to CompilerOptions.\""
    },
    {
      "commit": "2dc252e37d4df0c4160cd20b6fc852f5f28b7b87",
      "tree": "5d3f59bb106801aac2076369aa4de2ebe072c501",
      "parents": [
        "4ced1a8537f887d9d878042d9ea2415b1b959512",
        "a38e6cf2aaf4fd3d92b05c0a7a146fb5525ea72d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 27 12:23:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 12:23:30 2018 +0000"
      },
      "message": "Merge \"Remove explicit size from CodeInfo.\""
    }
  ],
  "next": "dcfcce4241fc706fd249bb3fec67f8a1dc434af6"
}
