)]}'
{
  "log": [
    {
      "commit": "4586fb6fe8a5df17e5dc02b3c1ae8d284815274f",
      "tree": "d3a23eea80f6fa4bc2a7e21e86e18320860d7624",
      "parents": [
        "33c5aac7efcf82c86a907b321d700e673f95d648"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 16:22:11 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 16:22:11 2014 +0000"
      },
      "message": "Print the right default for the compiler backend.\n\nChange-Id: I7083c640af6e2af1c333d5551ba2391ab672954d\n"
    },
    {
      "commit": "9bb492a33c97e72d0c43a4ee968e34cc32534981",
      "tree": "93c3b4218e2bdecf80e55ebe77eda6dbeb2df2f9",
      "parents": [
        "dc00c73d24a46c8522176fbc539f3e39710807c2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 23:42:00 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 23:56:30 2014 +0000"
      },
      "message": "Add ART_USE_OPTIMIZING_COMPILER flag.\n\nChange-Id: I86065aec5bfe59729c6a4064a3e54d5b523ca45c\n"
    },
    {
      "commit": "10e477df468a1f6a09236b9b49417d6538c559f0",
      "tree": "92a150d77451c37085952d3cc2c43903bb8ab049",
      "parents": [
        "af6dad6cbb6685f92d7274f9e8c45baa98232c79"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 19 12:57:42 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 20 08:42:34 2014 -0800"
      },
      "message": "ART: Split image and non-image case in dex2oat\n\nExplicitly split out the cases (even if there is redundancy). Have\nexplicit flush and close operations.\n\nChange-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87\n"
    },
    {
      "commit": "4303ba97313458491e038d78efa041d41cf7bb43",
      "tree": "5a5873651db918416c9ff63f4bb06b6eb7f4c71a",
      "parents": [
        "a971100be7870544360fa8a46311ef7f5adb6902"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 01:00:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 18 17:26:06 2014 -0800"
      },
      "message": "ART: Track Flush \u0026 Close in FdFile\n\nImplement a check that aborts when a file hasn\u0027t been explicitly\nflushed and closed when it is destructed.\n\nAdd WARN_UNUSED to FdFile methods.\n\nUpdate dex2oat, patchoat, scoped_flock and some gtests to pass with\nthis.\n\n(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)\n\nChange-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "4bf3ae9930a155f238dfd471413c866912b2579e",
      "tree": "bf97adf68ec9f39be03075664eef5c53576bd72c",
      "parents": [
        "67ab6192a9cf1781521692212fa48889a8d36e94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 13:28:29 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 13 13:25:14 2014 -0800"
      },
      "message": "ART: Compiled-classes list for compiler-driver\n\nSimilar to the image-classes list, introduce a list of class names\nthat are to be compiled when creating a boot image. This defaults\nto all classes.\n\nBug: 18336591\n\n(cherry picked from commit 26318f722958ac1cba6a812026a1377f37c54941)\n\nChange-Id: I95f69afdb500a9defb6795803d4040bbe67c5a01\n"
    },
    {
      "commit": "0d8db99ac5d838f81e0d3be83a5b00d5475edf86",
      "tree": "de1bb824aaf8cb2320ded80394dd65a44355fa52",
      "parents": [
        "36750ca45fcbe4706d3a3419cf7f988a129a876c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 11 14:40:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 09:33:10 2014 +0000"
      },
      "message": "Implement invokesuper in optimizing.\n\n- Ensure dex2oat is in PIC mode, as this will drive the decisions\n  made in the compiler driver, and optimizing only suppots PIC\n  anyway.\n\n- Since invokesuper is sharpened into invoke-direct, also support\n  sharpening of invokeinterface and invokevirtual.\n\nChange-Id: I0a1bd79a13dc1c9e67e3cb11d38f0cd4459968ae\n"
    },
    {
      "commit": "88ec7f45c0e2c3f659048fbe4b1dc78730fdaea8",
      "tree": "fe5479ad8683d4f63344bdcb819642d07629c351",
      "parents": [
        "b7ce2074ef43ff221cdec6ddba953f0b0c67447b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 05 10:18:32 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 23:06:12 2014 -0800"
      },
      "message": "ART: Refactor dex2oat\n\nTake the huge dex2oat main function apart. Move to ScopedLogging.\n\nBug: 18276913\nBug: 17444504\nChange-Id: Iab3d7437d60508088cb16bf33da0c5defbf7ae03\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "263f20b7a04b33f0e4b8f43b9a69ee9a1ddba564",
      "tree": "00b241fb34665cdf905712d8e1b9892fe2ba8498",
      "parents": [
        "26dcecb0ef620fb225cd5dd39f6e41b07e34c83d",
        "872dd8208f00c667af8d9e0fd07fdd0ada56d437"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 18:31:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 30 18:31:28 2014 +0000"
      },
      "message": "Merge \"Tidy and reduce ART library dependencies on the host.\""
    },
    {
      "commit": "872dd8208f00c667af8d9e0fd07fdd0ada56d437",
      "tree": "2f69282f19c72ef157dad9fdc7b6c6daf8a1bf38",
      "parents": [
        "af62cf99a1a4320157e1074c1e65c5fbb0320349"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "message": "Tidy and reduce ART library dependencies on the host.\n\nMove to shared rather than static libraries. Avoids capture of all static\nlibraries library dependencies.\n\nChange-Id: I2be96e92dad4ed1842d76b044745f2a2e15372eb\n"
    },
    {
      "commit": "70587a24fdec9a14192e57fe148aeb3374b10635",
      "tree": "cda22f3057827eb85090ad0c83a884c8e65c51e7",
      "parents": [
        "af62cf99a1a4320157e1074c1e65c5fbb0320349"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 29 09:35:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 29 09:35:44 2014 -0700"
      },
      "message": "ART: Fix multi-image testing\n\nAlso, make an unknown compiler backend string fail dex2oat.\n\nChange-Id: I878aef47d3c2c84b8479420e1a7ea2852993de35\n"
    },
    {
      "commit": "46774767fcf7780d1455e755729198648d08742e",
      "tree": "09a5d87ff0acbc7eb1fa94ec901ba10009178f03",
      "parents": [
        "11bd683f6dbebe2f3d02fa383fc9dbc69a83ace8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 27 20:19:37 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "7ba649636c4475c3992fa15a57acd2546d69ff38",
      "tree": "63b3e30483d2a838bcaa3337535d4828f3c1ea33",
      "parents": [
        "e74b720d752469d3883f3589de863e8fc82c6338"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 23 11:37:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 27 18:52:28 2014 -0700"
      },
      "message": "ART: Add pic flag to oat header store\n\nAdd the compile-time PIC flag to the oat-header key-value store.\nIgnore image offset and patch delta when loading PIC oat files.\n\nChange-Id: Ie1f1ef37125386a968228033d1e2bec565315510\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "d7a11bc4b207fbc1455f90873d99c95c4576667c",
      "tree": "af03e1277a3c20919e2f9aa0606a0cfa5ff3e4fb",
      "parents": [
        "8dcb9afc60972fddf1c6ee06cf7b272269d12766"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 17 10:32:58 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 17 10:32:58 2014 +0100"
      },
      "message": "Fix dex2oat cross-compilation.\n\nThe instruction set features was not correctly set when it was not\ngiven in the command line.\n\nChange-Id: I649cc077e7bbc830d281ae59af43e59fd0541c1b\n"
    },
    {
      "commit": "dddb8d891adad3f55308a725658134b6c9f5559b",
      "tree": "b1747dff4f90b9454b48dd6143ccf1ff84c6b4c7",
      "parents": [
        "b3f18cf7466f85e15c6b7f005f544867a4d6847a",
        "d6dee676acdd1ab0aa4e5ba6834ee7c40a6dd8ab"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 17 03:13:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 17 03:13:06 2014 +0000"
      },
      "message": "Merge \"dex2oat: Add a --compile-pic option\""
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "d6dee676acdd1ab0aa4e5ba6834ee7c40a6dd8ab",
      "tree": "727a86edd5ecbcdf60639b5dff5490e9573b5b56",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 16 18:36:16 2014 -0700"
      },
      "message": "dex2oat: Add a --compile-pic option\n\nChange-Id: I80e03613e3b6ac079bcbc7e068bbaae760c364c9\n"
    },
    {
      "commit": "6e88ef6b604a7a945a466784580c42e6554c1289",
      "tree": "1e296564787b51514cf2eca5b732647c1a82912e",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:43:21 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\n"
    },
    {
      "commit": "7223d44a4893522e90d00bca38b119f710e55122",
      "tree": "c0bbe3f7b3cf04750b4b5359a03c2d63fc90978b",
      "parents": [
        "3f5b8a1e7dfdf010591e17396d1d126740c5706c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 20:05:39 2014 -0700"
      },
      "message": "Switch to C++11 style [[noreturn]].\n\nAlso remove old comment about calls to Abort getting merged. We have few\nLOG(FATAL)s so merging is less of an issue. Also, recompiling with O0 and\nsimilar will avoid the optimization and we expect that for GDB debugging.\n\nChange-Id: I840dc6f4b8511294be0e117c634ec15b745e7be5\n"
    },
    {
      "commit": "647b1a86f518d8db0331b3d52a96392b7a62504b",
      "tree": "7370f795ef3c7fbdd2695d23bc6f8171f40f43f1",
      "parents": [
        "acfbbd4df2fc1c79a7102587bebf398f95b5e5de"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 11:02:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 10 12:26:02 2014 -0700"
      },
      "message": "Fix 2 new sets of clang compiler warnings.\n\nFix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.\nIn the case of -Wfloat-equal the current cases in regular code are deliberate,\nso the change is to silence the warning. For gtest code the appropriate fix is\nto switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.\nThe -Wmissing-noreturn warning isn\u0027t enabled due to a missing noreturn in\ngtest. This issue has been reported to gtest.\n\nChange-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8\n"
    },
    {
      "commit": "62d1ca3182a6cbb921799825f43ad36821233fd7",
      "tree": "54d9663f5ce10f41e95fe774d4e4841c1a78bbc3",
      "parents": [
        "63462448ca4e377074a10a4720aa22f71154dbe9"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Sep 03 17:24:56 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Oct 03 11:25:11 2014 -0700"
      },
      "message": "ART: Prepare for ELF64.\n\nOnly expose necessary interface in ElfFile, and move all details into template class ElfFileImpl.\n\nChange-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74\n"
    },
    {
      "commit": "f4da675bbc4615c5f854c81964cac9dd1153baea",
      "tree": "ea78bafc7ee543e11e7bd824ab40d5f5f3d82f9d",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 01 19:04:18 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:56:34 2014 +0100"
      },
      "message": "Implement method calls using relative BL on ARM.\n\nStore the linker patches with each CompiledMethod instead of\nkeeping them in CompilerDriver. Reorganize oat file creation\nto apply the patches as we\u0027re writing the method code. Add\nframework for platform-specific relative call patches in the\nOatWriter. Implement relative call patches for ARM.\n\nChange-Id: Ie2effb3d92b61ac8f356140eba09dc37d62290f8\n"
    },
    {
      "commit": "4f694baebb578b3ecc0c431f2a05c92efb9a50b3",
      "tree": "33c14cf4133ce5efa716721289a922dfa00f4803",
      "parents": [
        "f038ed9f031acb9c4fdf8a7f86e3c7ffad537e37"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 23 21:13:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 23 23:58:19 2014 -0700"
      },
      "message": "dex2oat should truncate files opened from file descriptors\n\nBug: 17622827\n\n(cherry picked from commit aa93129ca54cc897fdc2c8ddd0a7136f7b5632ed)\n\nChange-Id: I5467d488b4a57f7be35c72c16775df5bd5d69a52\n"
    },
    {
      "commit": "1b5a5dc82b9618d9deef62962954bfb9871a88d1",
      "tree": "f9a882292875d867040ba91b91125bebdc393e61",
      "parents": [
        "347409fdbdf8b9d3638beb7dbdb8c51b843bd899",
        "33cb94e5e5b50330fb9fbafe90d1a2a6bd026e2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 17 21:49:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 17 21:49:47 2014 +0000"
      },
      "message": "Merge \"ART: Sync oat file to disk before patching\""
    },
    {
      "commit": "33cb94e5e5b50330fb9fbafe90d1a2a6bd026e2f",
      "tree": "0b02b157d163b51e60f9a3e85b6d96b6ee27fa3a",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 16 16:40:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 17 14:46:48 2014 -0700"
      },
      "message": "ART: Sync oat file to disk before patching\n\nBug: 15567083, 17439961, 17510489, 17478752\n\n(cherry picked from commit 035592c51fee2995a3d90a9043f91a7a3128df2b)\n\nChange-Id: I828dc6775044b5050c2520eb097abe6a920fd3ee\n"
    },
    {
      "commit": "88157efc1e16707d4ae10775d4acb15121c50fe7",
      "tree": "37934ec3933ca89224a674b13f5dc3415a06786a",
      "parents": [
        "bace0378d720a1d2938ec7f6be17e2814671d20a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 12 10:29:53 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 11:02:37 2014 +0100"
      },
      "message": "Add the \"time\" compilation filter and output compilation stats.\n\nA \"time\" compiler filter means the compiler optimizes for\ncompile time.\n\nChange-Id: Id1a207ceb2d95f3548aae5e45d51b80695da2029\n"
    },
    {
      "commit": "daab38ca60c5b91787e29c87a161a2bb8c1b6f11",
      "tree": "0b155557e516ec1ff571c359af904e00d31d0c43",
      "parents": [
        "d2e5a6934ca1a07c9e1e87d3d0b21b63e1011934"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 18:38:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 22:34:11 2014 -0700"
      },
      "message": "ART: Make elf loading not abort\n\nChanges elf_file code to use less CHECKs and instead return error\nvalues (usually nullptr). This avoids aborts.\n\nIn oat_file, when loading an oat file fails, try to unlink at. If\nthis succeeds, on the next run we may compile again.\n\nBug: 17491333\n\n(cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a)\n\nChange-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af\n"
    },
    {
      "commit": "13b9f435d08ed269e7e5725ae829b1f61039a715",
      "tree": "88fecbb762a5be8c51f7bd06663a03177a5f187f",
      "parents": [
        "e1a851c161db964e42be642c6db470e289100f40"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 17:26:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 09 19:13:49 2014 -0700"
      },
      "message": "Increase dex2oat timeouts for debug builds\n\nShould fix the 056-const-string-jumbo test.\n\n(cherry picked from commit 0bff4f375d8013a4a59cf70b3427fb461a17e6de)\n\nChange-Id: I38d03fa7f981f0c067c52782e57938bbcbabef17\n"
    },
    {
      "commit": "bd25d4bff69e4775b7844d48630618b5ad8d3343",
      "tree": "b6837d257d9f292845c5a1d51a94e3be2f62e332",
      "parents": [
        "a9ffc181c61f5634753bf1039ed50bf22c800fde"
      ],
      "author": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Wed Jul 02 18:16:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 26 17:24:59 2014 -0700"
      },
      "message": "ART: Add capability for a pass to have options\n\nThis patch adds capability to have pass options. These are needed when a pass\nhas multiple flags that can be tweaked. The user is now allowed to pass those\noptions via command line.\n\nSince passes are treated as singletons and they are immutable, the overridden\noptions provided by user are set on the compilation unit. Doing this way also\nallows a selectivity system to tweak the option per compilation instead of\ndoing it globally (due to the single pass existing).\n\nThe following command line flags have been added:\n--print-pass-options - This prints all passes that have options along with\ntheir defaults.\n--pass-options\u003d - This is used to pass the overridden options in format of\nPassName:PassOption:PassOptionSetting\n\nChange-Id: Ib5156f5d2ff51a0c64c4ea0fa050bd2170663417\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "1ff3c98775a4577cf053dba9a0c2d5c21c07b298",
      "tree": "2d09c27c69678b53b4c9dc486024f3547efd4bca",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 02:30:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 16:08:05 2014 -0700"
      },
      "message": "Avoid use of std::string where we have const char*.\n\nRemoving the ClassHelper caused std::string creation for all calls to\nClass::GetDescriptor and a significant performance regression. Make the\nstd::string an out argument so the caller can maintain it and its life time\nwhile allowing GetDescriptor to return the common const char* case.\n\nDon\u0027t generate GC maps when compilation is disabled.\n\nRemove other uses of std::string that are occuring on critical paths.\nUse the cheaper SkipClass in CompileMethod in CompilerDriver.\nSpecialize the utf8 as utf16 comparison code for the common shorter byte\nencoding.\nForce a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing\ncode), add some LIKELYs.\n\nx86-64 host 1-thread interpret-only of 57 apks:\nBefore: 29.539s\nAfter: 23.467s\n\nRegular compile:\nBefore: 1m35.347s\nAfter: 1m20.056s\n\nBug: 16853450\nChange-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad\n"
    },
    {
      "commit": "f0d54278d02a69e659432fa1cf2e8a8b388565da",
      "tree": "1554c307b8e7c8ec24b6ab2d7b1a497b04663322",
      "parents": [
        "c5ec29d29a2044454900290e3ccc8f092ab201d1",
        "bf40ddb83e1ea05ba4bc101149cd79f0160c8996"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Aug 09 01:20:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 09 00:52:40 2014 +0000"
      },
      "message": "Merge \"ART: Turn on dex2oat watchdog on target\""
    },
    {
      "commit": "dfd3b47813c14c5f1607cbe7b10a28b1b2f29cbc",
      "tree": "b71dbae2ef905c08eb4cf615c8b44868cc314531",
      "parents": [
        "8b62dc0f993d0445401655fc274e5225498fa81c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 16:04:32 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 07 09:26:35 2014 -0700"
      },
      "message": "Add implicit checks for x86_64 architecture.\n\nThis combines the x86 and x86_64 fault handlers into one.  It also\nmerges in the change to the entrypoints for X86_64.\n\nReplaces generic instruction length calculator with one that only\nworks with the specific instructions we use.\n\nBug: 16256184\n\nChange-Id: I1e8ab5ad43f46060de9597615b423c89a836035c\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "81550fa92a02f6c656d13b12dc188fc73ac0fb39",
      "tree": "63603ae16f5a6979ff95c7ee08cb4e5436fc76e7",
      "parents": [
        "b30d8584bea83eb713b7a6b097225087d42828ff",
        "d5c78f44dc53ef9fda47a95ad3e9799be850c2b2"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 07 00:20:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 23:49:29 2014 +0000"
      },
      "message": "Merge \"AArch64: Implicit StackOverflow/NPE/Suspend checks.\""
    },
    {
      "commit": "b30d8584bea83eb713b7a6b097225087d42828ff",
      "tree": "ad081d110f36b541dcf1dd9d9e0ef75ee8b58ae5",
      "parents": [
        "9c597674fb99025a48476aff90de0fc81e44036a",
        "03f92f4e2ba358c701aa1c02a73372670d616e5a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 07 00:11:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 06 23:49:29 2014 +0000"
      },
      "message": "Merge \"Fix art build script.\""
    },
    {
      "commit": "d5c78f44dc53ef9fda47a95ad3e9799be850c2b2",
      "tree": "bc86b741193ad3487d9e0166cc324d99a200c738",
      "parents": [
        "a947ebc45d2785522b3c9d3295be68fd35d548be"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Jun 11 16:44:46 2014 +0100"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 06 12:42:45 2014 -0700"
      },
      "message": "AArch64: Implicit StackOverflow/NPE/Suspend checks.\n\nThis implements implicit stack overflow checks and null pointer exceptions\nfor AArch64.  Suspend checks are implemented but not switched on yet.\n\nChange-Id: I2eb076f2c0c9d94793d5a898fea49cf409b4eb66\nSigned-off-by: Stuart Monteith \u003cstuart.monteith@arm.com\u003e\n"
    },
    {
      "commit": "a62a588a9202f69e53fbeb3045ea8ea5ec2587f8",
      "tree": "afbbcca1eaa59d40fa94db6babeb2ea909777357",
      "parents": [
        "b5c5646b5ffd3d451af5e8d52b50743bf61d4c40"
      ],
      "author": {
        "name": "Jim_Guo",
        "email": "jim_guo@htc.com",
        "time": "Mon Apr 28 11:11:57 2014 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 04 22:27:52 2014 -0700"
      },
      "message": "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)\n\nRoot Cause:\n  The overlapped memory region will be unmapped by\n  (1) ~MemMap() of reservation MemMap (reserve) and\n  (2) ~MemMap() of \"reuse\" MemMap (segment).\n  Someone takes the memory region after (1) and it will be unmapped in (2).\n  So, SIGSEGV occurs when using the unmapped memory region.\n\nSolution:\n  Fixes this issue by skip unmap \"reuse\" MemMap in destructor.\n  And always create reservation MemMap before \"reuse\" MemMap. (It also solved\n  the fixupELF case which does not reserve the whole needed memory region).\n\nBug: 16486685\nChange-Id: I8f2538861d5c3fa7b9a04d2c3f516319cc060291\n"
    },
    {
      "commit": "03f92f4e2ba358c701aa1c02a73372670d616e5a",
      "tree": "a152910b11c380ce675f0404d4fbeddb18db3553",
      "parents": [
        "89c210bf418a152ccabfbbf853ddcce33aea450d"
      ],
      "author": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:29 2014 +0900"
      },
      "committer": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:56 2014 +0900"
      },
      "message": "Fix art build script.\n\nUse ART_BUILD_HOST_NDEBUG instead of ART_BUILD_NDEBUG.\n\nChange-Id: I1fcca4c52e79bad93dcdd750989f6223df2b0df4\nSigned-off-by: Junmo Park \u003cjunmoz.park@samsung.com\u003e\n"
    },
    {
      "commit": "cf4bf386ef3f527825c70e01130b9276da4f786a",
      "tree": "0f99e56bc53e150e070447410a66e8e5acca4a0a",
      "parents": [
        "9fbe946f49724ff7ae30da5d366a002d1e6addfa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 24 11:29:14 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 25 09:47:56 2014 -0700"
      },
      "message": "Tweaks to patchoat and other related things.\n\nRemoved some flags from patchoat that were poorly specified and fixed\nsome other issues with the relocation system.\n\nBug: 15358152\n\nChange-Id: Ia6d47b1a008f02373307d833ba45f00ea408d76f\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "bf40ddb83e1ea05ba4bc101149cd79f0160c8996",
      "tree": "577464850af88f5940c9ad982559b734f590e48f",
      "parents": [
        "aab012d6196bd29b3167963ec8acb0b9780672b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 17 10:18:46 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 17 10:18:46 2014 -0700"
      },
      "message": "ART: Turn on dex2oat watchdog on target\n\nActivates the watchdog on device.\n\nBug: 16364458\nChange-Id: Id7c86f5a345da35b97bc7fa1a95c86e8685f8fcd\n"
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "22f8e5c82d12951be38cd893426e13bee33fd69d",
      "tree": "f575655ba55315205b7a73f1e02773497913b157",
      "parents": [
        "946a55fa7aec5058d357b601ac3554e242cd1afa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 09 11:38:21 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 11 15:53:27 2014 -0700"
      },
      "message": "Revert \"Revert \"ART: Key-Value Store in Oat header\"\"\n\nThis reverts commit 452bee5da9811f62123978e142bd67b385e9ff82.\n\nHeap-allocate a couple of objects in dex2oat to avoid large frame\nsize.\n\nIncludes fixes originally in 100596 and 100605.\n\nChange-Id: Id51a44198c973c91f0a3f87b9d992a5dc110c6f8\n"
    },
    {
      "commit": "4e99b3d8955131f3fc71aa113f0fa71f0092cb6f",
      "tree": "bcaf4e5119a74c836d8598e064a20cdead757efb",
      "parents": [
        "5fa647d5f663033e4ed3d398aece1f8211d7f460"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jun 24 14:35:40 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jul 10 17:03:15 2014 +0200"
      },
      "message": "Add missing class initialization during compilation and tests\n\nAdds missing class initialization during compilation and tests, especially\njava.lang.Class. Otherwise, we\u0027d be able to execute code while the referring\nclass is not initialized or initializing.\n\nAlso adds mirror::Class::AssertInitializedOrInitializingInThread method to\ncheck class initialization when entering the interpreter: the called method\u0027s\ndeclaring class must either be initialized or be initializing by the current\nthread (other threads must be waiting for the class initialization to complete\nholding its lock). Note we only do this check in debug build.\n\nBump oat version to force compilation.\n\nBug: 15899971\nChange-Id: I9a4edd3739a3ca4cf1c4929dcbb44cdf7a1ca1fe\n"
    },
    {
      "commit": "3d14eb620716e92c21c4d2c2d11a95be53319791",
      "tree": "aadce4d6bb70e549b74b537c6f75617cf533576a",
      "parents": [
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "message": "Revert \"Add implicit null and stack checks for x86\"\n\nIt breaks cross compilation with x86_64.\n\nThis reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.\n\nChange-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7\n"
    },
    {
      "commit": "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf",
      "tree": "76901cff2cddd6d30cb7a4e83ad4e0c9bb673fe1",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:20:04 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 16:19:59 2014 -0700"
      },
      "message": "Add implicit null and stack checks for x86\n\nThis adds compiler and runtime changes for x86\nimplicit checks.  32 bit only.\n\nBoth host and target are supported.\nBy default, on the host, the implicit checks are null pointer and\nstack overflow.  Suspend is implemented but not switched on.\n\nChange-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a\n"
    },
    {
      "commit": "452bee5da9811f62123978e142bd67b385e9ff82",
      "tree": "3da88d3fb1bd2a03897aaac8bb015c12796d2cdf",
      "parents": [
        "c87d27b25994da8670d82a8f7bad6327b693bfff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "message": "Revert \"ART: Key-Value Store in Oat header\"\n\nBroke arm64 build.\n\nThis reverts commit c87d27b25994da8670d82a8f7bad6327b693bfff.\n\nChange-Id: I4c2ade295d2b5aa77fc3ad810e0e859629a5bf09\n"
    },
    {
      "commit": "c87d27b25994da8670d82a8f7bad6327b693bfff",
      "tree": "e8ad0fa224f050c5c3e3e30ccdc0912f28650f42",
      "parents": [
        "e8a30f37bf1530a80a7df17692dbe7a68764ac30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 26 16:11:07 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 08 12:14:38 2014 -0700"
      },
      "message": "ART: Key-Value Store in Oat header\n\nAllows the storage of string-string pairs in the oat header. The\nfirst significant use of this is storing the implicit-check flags,\nso that an oat file can be rejected if it doesn\u0027t agree with the\ncurrent runtime.\n\nBump the oat version as the header structure changes.\n\nChange-Id: I15a1c16886e6b8fa7b881c918c19c1efa5c7c00f\n"
    },
    {
      "commit": "53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c",
      "tree": "c0129ef3de7148dc6a114449b4f751a560283eb0",
      "parents": [
        "ae2efea4582df773f80be274bdc754f732b07df3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 12 11:26:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 07 15:19:58 2014 -0700"
      },
      "message": "Add patchoat tool to Art.\n\nAdd a new executable called patchoat to art. This tool takes already\ncompiled images and oat files and changes their base address, acting as\na cheap form of relocation.\n\nAdd a --include-patch-information flag to dex2oat and code to add\nrequired patch information to oat files created with the quick compiler.\n\nBug: 15358152\n\nChange-Id: Ie0c580db45bb14ec180deb84930def6c3628d97d\n"
    },
    {
      "commit": "44c5ee7a14bde25207032ac7c2427e8629b8ff42",
      "tree": "069f468c519807a6a7a75c86712a82772a260348",
      "parents": [
        "1a7d4bfeabc5987e95ff8e102f600360c264cf5a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 02 14:00:33 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 02 14:01:00 2014 +0100"
      },
      "message": "Relax limits for profiler based compilation options.\n\nChange-Id: I57a7b11588f5c5b5f12217239ecf58f59ae02e2b\n"
    },
    {
      "commit": "f9872f0b5f713af867b4e32e647a1b92f94fb01a",
      "tree": "5c975e4deba287222748389dc20c7be7f7c76e2f",
      "parents": [
        "7a59a24987beb52877b72b4e3f841e406413bb6d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 01 19:00:09 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 01 19:00:09 2014 -0700"
      },
      "message": "ART: Fix size error reported by ARM64 backend\n\nAlso removes a spurious LOG in dex2oat.\n\nChange-Id: Ia264fbfb3cb8d59978f3a61e814eb6940e272ece\n"
    },
    {
      "commit": "3470ab4011b5e18d590d5375e2f13a1e3bd69222",
      "tree": "79efa1be55a16a43447f7373f0aa8722828204d5",
      "parents": [
        "baa1323d66a05fd2d7b9c6c131b232945b0a4ebb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 18 10:35:45 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 27 16:46:29 2014 -0700"
      },
      "message": "Fixed gdb support and added some ElfFile functions\n\nFixed gdb support so that it would continue working even when debug\nsymbols or other sections are included in the elf file. Also made it\nactually read parts of the DWARF information so it should work even if\nthere are minor changes to how and where DWARF information is written\nout.\n\nAdded a dwarf.h file with the dwarf constants.\n\nAdded a FindSectionByName function, a FindDynamicSymbol function, and\nthe ability to specify the mmap protection and flags directly if we are\nmapping in the whole file.\n\nModified elf_writer_quick.cc to use the dwarf constants from dwarf.h.\n\nChange-Id: I09e15c425fab252b331a2e4719863552e8b6b137\n"
    },
    {
      "commit": "2db3e269e3051dacb3c8a4af8f03fdad9b0fd740",
      "tree": "9653675093f7c7af9f56ce133acb1476ddf42a5d",
      "parents": [
        "a64d728836712e9295ada7de44d8cc3165d595a8"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas@mips.com",
        "time": "Wed Jun 25 16:02:55 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Jun 27 10:44:27 2014 -0700"
      },
      "message": "Fix quick mode bugs for Mips.\n\nThis patch enable quick mode for Mips and allows the emulator to boot.\nHowever the emulator is still not 100% functional. It still have problems\nlaunching some apps.\n\nChange-Id: Id46a39a649a2fd431a9f13b06ecf34cbd1d20930\nSigned-off-by: Douglas Leung \u003cdouglas@mips.com\u003e\n"
    },
    {
      "commit": "833a48501d560c9fa7fc78ef619888138c2d374f",
      "tree": "add308298a5486d44caddea120cc9200dd70c38a",
      "parents": [
        "b849f6dd638fd1246724160cd5c01ab1a5ff33bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 18:46:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 25 19:34:58 2014 -0700"
      },
      "message": "ART: Native support for multidex\n\nNative support for zip files with multiple classesX.dex.\n\nWorks by explicitly looking for those files in ascending order. As\nthese files have no file system representation for themselves,\nintroduce synthetic dex locations: the name of the originating file\nplus a colon plus the name of the dex file, e.g., test.jar:classes2.dex.\n\nOpening a zip dex file will return all dex files in this way. This\nkeeps the changes to dex2oat minimal.\n\nTo hide multidex/synthetic names from the Java layer, let the handle\nof dalvik.system.DexFile refer to a vector of DexFile objects. When\nopening a location, test possible synthetic names and add them to the\nvector. Thus, the original multidex jar in the classpath will be\nassociated with all embedded dex files.\n\nChange-Id: I0de107e1369cbc94416c544aca3b17525c9eac8b\n"
    },
    {
      "commit": "f5997b4d3f889569d5a2b724d83d764bfbb8d106",
      "tree": "f0d3b3890a604a8b3c4c87c0f408f86df041690e",
      "parents": [
        "9658d24deaa9bd07781bfac860d2a6dd89066d55"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 20 10:37:54 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 24 13:45:05 2014 -0700"
      },
      "message": "More advanced timing loggers.\n\nThe new timing loggers have lower overhead since they only push into\na vector. The new format has two types, a start timing and a stop\ntiming. You can thing of these as brackets associated with a\ntimestamp. It uses these to construct various statistics when needed,\nsuch as: Total time, exclusive time, and nesting depth.\n\nChanged PrettyDuration to have a default of 3 digits after the decimal\npoint.\n\nExaple of a GC dump with exclusive / total times and indenting:\nI/art     (23546): GC iteration timing logger [Exclusive time] [Total time]\nI/art     (23546):   0ms InitializePhase\nI/art     (23546):   0.305ms/167.746ms MarkingPhase\nI/art     (23546):     0ms BindBitmaps\nI/art     (23546):     0ms FindDefaultSpaceBitmap\nI/art     (23546):     0ms/1.709ms ProcessCards\nI/art     (23546):       0.183ms ImageModUnionClearCards\nI/art     (23546):       0.916ms ZygoteModUnionClearCards\nI/art     (23546):       0.610ms AllocSpaceClearCards\nI/art     (23546):       1.373ms AllocSpaceClearCards\nI/art     (23546):     0.305ms/6.318ms MarkRoots\nI/art     (23546):       2.106ms MarkRootsCheckpoint\nI/art     (23546):       0.153ms MarkNonThreadRoots\nI/art     (23546):       4.287ms MarkConcurrentRoots\nI/art     (23546):     43.461ms UpdateAndMarkImageModUnionTable\nI/art     (23546):     0ms/112.712ms RecursiveMark\nI/art     (23546):       112.712ms ProcessMarkStack\nI/art     (23546):     0.610ms/2.777ms PreCleanCards\nI/art     (23546):       0.305ms/0.855ms ProcessCards\nI/art     (23546):         0.153ms ImageModUnionClearCards\nI/art     (23546):         0.610ms ZygoteModUnionClearCards\nI/art     (23546):         0.610ms AllocSpaceClearCards\nI/art     (23546):         0.549ms AllocSpaceClearCards\nI/art     (23546):       0.549ms MarkRootsCheckpoint\nI/art     (23546):       0.610ms MarkNonThreadRoots\nI/art     (23546):       0ms MarkConcurrentRoots\nI/art     (23546):       0.610ms ScanGrayImageSpaceObjects\nI/art     (23546):       0.305ms ScanGrayZygoteSpaceObjects\nI/art     (23546):       0.305ms ScanGrayAllocSpaceObjects\nI/art     (23546):       1.129ms ScanGrayAllocSpaceObjects\nI/art     (23546):       0ms ProcessMarkStack\nI/art     (23546):   0ms/0.977ms (Paused)PausePhase\nI/art     (23546):     0.244ms ReMarkRoots\nI/art     (23546):     0.672ms (Paused)ScanGrayObjects\nI/art     (23546):     0ms (Paused)ProcessMarkStack\nI/art     (23546):     0ms/0.610ms SwapStacks\nI/art     (23546):       0.610ms RevokeAllThreadLocalAllocationStacks\nI/art     (23546):     0ms PreSweepingGcVerification\nI/art     (23546):   0ms/10.621ms ReclaimPhase\nI/art     (23546):     0.610ms/0.702ms ProcessReferences\nI/art     (23546):       0.214ms/0.641ms EnqueueFinalizerReferences\nI/art     (23546):         0.427ms ProcessMarkStack\nI/art     (23546):     0.488ms SweepSystemWeaks\nI/art     (23546):     0.824ms/9.400ms Sweep\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       0.214ms SweepZygoteSpace\nI/art     (23546):       0.122ms SweepMallocSpace\nI/art     (23546):       6.226ms SweepMallocSpace\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       2.144ms SweepLargeObjects\nI/art     (23546):     0.305ms SwapBitmaps\nI/art     (23546):     0ms UnBindBitmaps\nI/art     (23546):   0.275ms FinishPhase\nI/art     (23546): GC iteration timing logger: end, 178.971ms\n\nChange-Id: Ia55b65609468f212b3cd65cda66b843da42be645\n"
    },
    {
      "commit": "b03a0ec8cf841bf49d2e146e140cb3ca21eca752",
      "tree": "d09086a1bb1b3b4a095fcbe342ce7396902738a3",
      "parents": [
        "fbd18f1923334f3208cfe6ba5f1d4f9eb421b063"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 24 10:27:40 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 24 12:15:46 2014 -0700"
      },
      "message": "Fixed ImageWriter timings not being written out.\n\nDuring host runs of dex2oat the timings for ImageWriter would not be\nwritten out.\n\nChange-Id: I74ce8bae724d1e732a6a1efb1c82804473081693\n"
    },
    {
      "commit": "ca3aabac5748c256c42839dd16e8c80a09d99a48",
      "tree": "d96cb1643a4e544289a1a3b31d35cd24a7126660",
      "parents": [
        "9462a31caedefac3e04bd4aa5088e050ed188b30"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Jun 23 14:46:53 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Jun 23 15:24:55 2014 -0700"
      },
      "message": "Fix implicit check option handling for non-cross-compiles\n\nThis fixes an issue where the compiler was not being told to\ngenerate implicit checks but the runtime was expecting them.\n\nBug: 15747876\nChange-Id: I65e7475bac245c44d5094eb666d67bc1af327ab1\n"
    },
    {
      "commit": "5c1ad33701beac62afbfb144bb6f52755503c9f2",
      "tree": "2818a4e605cdebf75b4fde7c8ada87a6c5341dff",
      "parents": [
        "b493c2983016a78de498c3a3aef302b1353dca99",
        "887235845e203fce046c17120e86d4cac4c56035"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Jun 21 23:15:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 21 03:13:40 2014 +0000"
      },
      "message": "Merge \"Use command line android root in dex2oat to find image.\""
    },
    {
      "commit": "9cad72d80603b3ff59be66b2cffd3f6dcbd9947f",
      "tree": "d3616ecf95efe4db9c3cb24cfdc96193a26d0ccb",
      "parents": [
        "4a47f829ddcb82ca88f2a64da35ceca332066929"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jun 19 16:08:48 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Jun 20 12:44:34 2014 -0700"
      },
      "message": "Quick compiler: enable Arm64 compilation\n\nChange-Id: I19058defaff1c60b4b6b4d1ad82e0a42d50506a6\n"
    },
    {
      "commit": "4f975b9e2cb7eb50db27093eaa842b7400e52834",
      "tree": "08269f0f93868d382ea578ba69e029d0ad8ae943",
      "parents": [
        "70ac0d09987eb38cc7f55a6b6f8fd92fa67706ce",
        "0c416fe40f675a3bff4d8cfb591d66fb69b73958"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Thu Jun 19 20:18:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 19 17:43:22 2014 +0000"
      },
      "message": "Merge \"x86_64: Enable core.oat/boot.oat compilation\""
    },
    {
      "commit": "0c416fe40f675a3bff4d8cfb591d66fb69b73958",
      "tree": "1369214a82a7a67e7ef82f553a46c515be8e4294",
      "parents": [
        "4b855675b7c77e265aa69a9134dd50cc21273095"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Jun 13 15:15:32 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Wed Jun 18 16:37:43 2014 +0000"
      },
      "message": "x86_64: Enable core.oat/boot.oat compilation\n\nThis patch enabled compilation of image.\n\nChange-Id: Idacce4a3898964d3a05762925dba236d7254a254\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "5655e84e8d71697d8ef3ea901a0b853af42c559e",
      "tree": "3c00ffd42ad1465acc12128e41fe4ca1d46d5f39",
      "parents": [
        "ad6a328506e30b7feb8ddfd2867dec7633a3e52b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 17 16:36:07 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 18 20:19:58 2014 -0700"
      },
      "message": "ART: Implicit checks in the compiler are independent from Runtime\n\nWhen cross-compiling, those flags are independent. This is an\ninitial CL that helps bypass fatal failures when cross-compiling,\nas not all architectures support (and have turned on) implicit\nchecks.\n\nThe actual transport for the target architecture when it is\ndifferent from the runtime needs to be implemented in a follow-up\nCL.\n\nBug: 15703710\nChange-Id: Idc881a9a4abfd38643b862a491a5af9b8841f693\n"
    },
    {
      "commit": "33ae5583bdd69847a7316ab38a8fa8ccd63093ef",
      "tree": "a693a89ec7442adf00a8f3751ea8385586250247",
      "parents": [
        "799605088f51dace7fddaf8493c8c6f3090fdaf6"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jun 12 14:56:32 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jun 16 08:43:09 2014 -0700"
      },
      "message": "Arm64 hard-float\n\nBasic enabling of hard-float for Arm64.  In future CLs we\u0027ll\nconsolidate the various targets - there is a lot of overlap.\n\nCompilation remains turned off in this CL, but I expect\nto enable a subset shortly.  With compilation fully enabled\n(including the EXPERIMENTAL opcodes with the exception of\nREM and THROW), we get the following run-test results:\n\n003-omnibus-opcode failures:\n     Classes.checkCast\n     Classes.arrayInstance\n     UnresTest2\nHaven\u0027t gone deep, but these appear to be related to throw/catch and/or\nstacktrace.\n\nFor REM, the generated code looks reasonable to me - my guess is that\nwe\u0027ve got something wrong on the transition to the runtime.  Haven\u0027t\nlooked deeper yet, though.\n\nThe bulk of the other failure also appear to be related to transitioning\nto the runtime system, or handling try/catch.\n\nrun-test status:\nStatus with optimizations disabled, REM_FLOAT/DOUBLE and THROW disabled:\nsucceeded tests: 94\nfailed tests: 22\nfailed: 003-omnibus-opcodes\nfailed: 004-annotations\nfailed: 009-instanceof2\nfailed: 024-illegal-access\nfailed: 025-access-controller\nfailed: 031-class-attributes\nfailed: 044-proxy\nfailed: 045-reflect-array\nfailed: 046-reflect\nfailed: 058-enum-order\nfailed: 062-character-encodings\nfailed: 063-process-manager\nfailed: 064-field-access\nfailed: 068-classloader\nfailed: 071-dexfile\nfailed: 083-compiler-regressions\nfailed: 084-class-init\nfailed: 086-null-super\nfailed: 087-gc-after-link\nfailed: 100-reflect2\nfailed: 107-int-math2\nfailed: 201-built-in-exception-detail-messages\n\nChange-Id: Ib66209285cad8998d77a14781de300af02a96b15\n"
    },
    {
      "commit": "887235845e203fce046c17120e86d4cac4c56035",
      "tree": "58defac8a4a34c25ca757a6ca85af71bb8e9a4e5",
      "parents": [
        "73d1f2767d5866593c780bede8091f3aee81aecf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 13 11:38:54 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 13 11:38:54 2014 -0700"
      },
      "message": "Use command line android root in dex2oat to find image.\n\nChange-Id: I20a025e07da3792131d7126ef0e5863b923c794b\n"
    },
    {
      "commit": "df88a9e44673655009cc560947d29c1400516f12",
      "tree": "878228922b84dedc1ac7ad21d4ce565e5c23369a",
      "parents": [
        "579256715d16170ad821a132a43568ae696f4545",
        "136aaee2993a4a5fd93eb9371584161c6d1c7445"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Jun 14 06:51:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 12 03:32:07 2014 +0000"
      },
      "message": "Merge \"x86_64: Enable compilation\""
    },
    {
      "commit": "136aaee2993a4a5fd93eb9371584161c6d1c7445",
      "tree": "43a13a8deead9640390b2e3b37d4063cfeb0530c",
      "parents": [
        "3316ff53b8745707a492d0442a94174abc679ece"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Jun 06 15:18:14 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Jun 13 17:07:56 2014 +0000"
      },
      "message": "x86_64: Enable compilation\n\nThis patch enables compilation of all methods for x86_64\nexcept image.\n\nChange-Id: Ie210809f2595cc25da688a4ad0363c258bcf8233\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "78382fa44ee505cf16835e4d22515e7252a90864",
      "tree": "b944fcc149ab09c4260c57b41128cfd6ffe09cdc",
      "parents": [
        "1f968319c95136cafe8e5a813ef822f0a8963b98"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 06 15:45:32 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 12 15:49:56 2014 -0700"
      },
      "message": "Optionally add debug symbols to ELF files made by quick compiler.\n\nAdded debug symbols to ELF files created by dex2oat using\nthe quick compiler. Adds two flags --include-debug-symbols and\n--no-include-debug-symbols for dex2oat that control the inclusion of these\ndebug symbols. Debug info is added by default if kIsDebugBuild is true.\n\nFixed bug where Intel DWARF information would not correctly deal with\ndeduplicated code the binary.\n\nChanged the portable compiler code path in dex2oat.cc so that symbols\nwill not be stripped when run with --include-debug-symbols.\n\nChange-Id: Ia2eb2f654dedf0e5e8606f7744e05b8d14155fb1\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "20aa7cbe93d782e0e756a36e70d610fe84b4bbb4",
      "tree": "cfaaa9770d5ddbc1034b2c9770a12e6ff4d19b7b",
      "parents": [
        "eab52e3318dd0ab0f357a8420f0a8ccea69d61f1",
        "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "message": "Merge \"Fixed and refactored profiler options handling\""
    },
    {
      "commit": "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6",
      "tree": "250455427da979409a075a2b3197bd43ccd40fe1",
      "parents": [
        "bb0b53f58f11c628f077603b56077dfed1a18f11"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 30 23:44:11 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 12:14:01 2014 +0100"
      },
      "message": "Fixed and refactored profiler options handling\n\n- extracted profiler options in a separate class\n- switched from system property reading to command line arguments\n- added profile based compilation options to CompilerOptions\n- removed no longer used kProfile compilation filter\n- optimize dex files only if the profiler is enabled\n- clean up unused arguments\n\nBug: 12877748\nBug: 15275634\nChange-Id: I37ff68e7694370950ce8db2360562e9058ecebb7\n"
    },
    {
      "commit": "f94b781745e715463482695e22addfa95198b548",
      "tree": "8adc21fdc6c97441625b12a07e904eb646f96573",
      "parents": [
        "341a0c56ec6687431736edf28294767d7fcf9513"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 15:48:04 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 17:31:48 2014 +0100"
      },
      "message": "Workaround for running out of address space on N7v1.\n\nBug: 13564922\nChange-Id: I2ac466f613e465691078c41b2693f2327d07a0a8\n"
    },
    {
      "commit": "2469e60e6ff08c2a0b4cd1e209246c5d91027679",
      "tree": "37b2f537fca7ba56cb787913557ee12d6e533d55",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue May 06 20:36:55 2014 -0700"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 30 10:15:48 2014 +0100"
      },
      "message": "ART: Setting up cleanup\n\n- Moved code around to actually have the clean-up code in a PassDriver format.\n    This allows us to better control what is being called after an optimization\n    It also allows the use of a centralized pass system for both optimizations\n      and cleanup.\n\nChange-Id: I9d21e9bb9ee663739722f440d82adf04f73e380c\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Yixin Shou \u003cyixin.shou@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "a9f1ce6fbe8a9247d0d8e20727f590b091e816da",
      "tree": "fc165edcc2c68a19e3df1edfb65f6c3599aebdfb",
      "parents": [
        "b661a80aab8b8f25590f3165b08647d1df7021f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 28 21:41:35 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 29 09:54:08 2014 +0100"
      },
      "message": "Fix pass driver\u0027s dump_pass_list_ and print_pass_list_.\n\nThe lists were allocated with new char[], so they should\nhave been held by std::unique_ptr\u003cconst char[]\u003e rather than\nstd::unique_ptr\u003cconst char\u003e. However, it\u0027s much cleaner with\nstd::string.\n\nChange-Id: Ie7c604773272194345f5e6e3c4803c3a914edf99\n"
    },
    {
      "commit": "6d25996baef5037d0aa8beb2f517755f2fb7b91f",
      "tree": "b3f859dade2bf440909de4fe981cadb69f591cd2",
      "parents": [
        "11138c73e0c5f8a90d1eeed3c48a2b63b310671c",
        "8bceccec7eddff8cd872aa20505b4a3a6be60a16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 28 19:47:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 28 19:47:01 2014 +0000"
      },
      "message": "Merge \"ART: Print and dump functionalities per pass\""
    },
    {
      "commit": "8bceccec7eddff8cd872aa20505b4a3a6be60a16",
      "tree": "c0f7fb0dcf4041542ec8de58c881faf03db07b54",
      "parents": [
        "132236a802a82cc7d27f82e34e40082ef5c17375"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue Apr 29 13:42:08 2014 -0700"
      },
      "committer": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue May 27 11:41:29 2014 -0700"
      },
      "message": "ART: Print and dump functionalities per pass\n\nLOG is a great logging tool but sometimes a pass has some debugging text it\n want to be able to turn on/off easily.\n\nBy going via a print_pass flag, we can actually turn it on/off easily per pass\n when debugging/instrumenting.\n\n- Added a pass printer to help debug messages for future passes.\n- Added a print_pass flag in CompilationUnit to filter out messages.\n\nAt the same time, did a similar system for dumping the CFG.\n\n- Also moved some API into public from protected.\n\nChange-Id: Ie0e89a8fc773e8583f3e4ffd6e4bd2eebdbb2bf4\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Yixin Shou \u003cyixin.shou@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "0aa504b5bb19f0944d50941b20c8eeaca4165328",
      "tree": "8ec437c95a023c649dc96d9e88e2403d93c77392",
      "parents": [
        "52925af1e3136bcf68bc5754fbfa407950235217"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 23 02:47:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 23 13:52:01 2014 -0700"
      },
      "message": "Fix ExtractToMemMap to show original zip file name in ashmem\n\n(cherry picked from commit 1fca8e91f32dc8b13d3129b7ef4a0194839736e6)\n\nChange-Id: Id7d22600496b090ac32150c8c6424da89964b6be\n"
    },
    {
      "commit": "4f59668b3d51f63601ebe59dbd2b7e8a7c5bd093",
      "tree": "cf93995a8e42da6799e895918ee2ee52dc1c03a0",
      "parents": [
        "59f3f62534581311c7c403c832f56c272426a17c"
      ],
      "author": {
        "name": "James C Scott",
        "email": "james.c.scott@intel.com",
        "time": "Thu May 01 05:52:04 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu May 22 06:42:23 2014 -0700"
      },
      "message": "ART: Pass driver generalization\n\n- Generalizing Pass Driver.\n- Migrating ME Pass Driver to use the new generalized Pass Driver.\n\nThere will be some more changes after in the compiler code to generalize\n it a bit more by separating what is being done by the optimizing passes\n and post-pass cleanups.\n\nChange-Id: I140a70e88483d7c3991b7d336bd593b2613ae194\nSigned-off-by: James C Scott \u003cjames.c.scott@intel.com\u003e\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "6cd2845c8697074c97b01a68f241314aded9f492",
      "tree": "69b052b3b1ea0076b39a9f282f164af1c9e90603",
      "parents": [
        "ed4b6267dde3bc93fae9ce7000880ca017e04114"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 16 15:45:02 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 16 15:45:02 2014 -0700"
      },
      "message": "ART: Turn off ARM64 compilation for now\n\nWhen no compiler filter string is given to dex2oat for ARM64,\ndefault to interpreter.\n\nChange-Id: I2a97e07b1d9b75a04aafe4aaa4437e500bdaf202\n"
    },
    {
      "commit": "3ac05bba3eadccb33d26b41d9797f63e8378125f",
      "tree": "4c801c5dc41290a7e7a1cbc2915a357a416ecd7e",
      "parents": [
        "c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 13 19:31:38 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 14 09:25:34 2014 -0700"
      },
      "message": "Remove ISA from boot image name.\n\nPartially reverts b9beb2e2efb6a204a69ca660d478b45f851e8f09\n\nBug: 14882223\n\n(cherry picked from commit 3da44327c8306bb354c0163a7c7779dea6eeb38a)\n\nChange-Id: Idc9266a97d1047434c110ef140e2f2708c4aadef\n"
    },
    {
      "commit": "5131638f826b74c4e2af62b8ac70eeef1232c99b",
      "tree": "ae06103a9e0af30fba75ba626655c5e8c43b3469",
      "parents": [
        "20cdc069f06f34828e51bcf89597bebe5df445d5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 13 14:59:37 2014 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 13 15:05:24 2014 -0700"
      },
      "message": "dex2oat: convert NULL to nullptr\n\nChange-Id: I658511212f7ab265de473e198f8fe3625bbc9b46\n"
    },
    {
      "commit": "20cdc069f06f34828e51bcf89597bebe5df445d5",
      "tree": "916f48e3aa5c688fb5b0642f4a6963f595b64a93",
      "parents": [
        "b720c4b7c6e484c9d0740d805c8d7c3dbeb2a545",
        "d5185344e19d9feb7ac268369e0af6a467d1cb48"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 13 22:03:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 22:03:05 2014 +0000"
      },
      "message": "Merge \"Changes for vogar compatibility\""
    },
    {
      "commit": "d5185344e19d9feb7ac268369e0af6a467d1cb48",
      "tree": "bf5e7174ff631a86b5776ff6ddfa0dfa9de810fb",
      "parents": [
        "a47dcbf4bc226b5bbf30618fc052e7c79672af7a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 13 14:47:05 2014 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 13 14:47:11 2014 -0700"
      },
      "message": "Changes for vogar compatibility\n\nMake sure dex2oat can make an image with an empty list of image_classes.\nAdd in some checks to make sure that no bad arguments sneak into\nCompilerDriver.\n\nIf we\u0027re not on the ART_TARGET, we should check for the \"hostdex\"\nversions of the libraries to substitute in our libart version.\n\nChange-Id: I5e8485c6089d25664492f0217b43ef64ca84c061\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "ad930da1d67968600aab8441c24f5c4cc6e001bd",
      "tree": "8ce7f544da7b4b0be26d19e85c70e2861b068da1",
      "parents": [
        "6f2b602999a9b5253de98e4c8749f821b0046ac2",
        "7624d25dad2d1ba25969ae704fccf68649103ae5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 15:56:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 15:56:14 2014 +0000"
      },
      "message": "Merge \"Move quick frame info to OatQuickMethodHeader.\""
    },
    {
      "commit": "7624d25dad2d1ba25969ae704fccf68649103ae5",
      "tree": "de72194b76a4e23e0b15ec4085447ae7e4425815",
      "parents": [
        "e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 14:40:15 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 11:43:22 2014 +0100"
      },
      "message": "Move quick frame info to OatQuickMethodHeader.\n\nRename OatMethodHeader to OatQuickMethodHeader, move frame\ninfo from OatMethodOffsets to OatQuickMethodHeader. Retrieve\nthe info from other places for non-quick methods (portable\ncompiled bytecode or jni stub, generic jni, runtime,\nabstract and proxy).\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields for frame size and spills.\"\n  https://android-review.googlesource.com/94164\n\nBug: 11767815\nChange-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f\n"
    },
    {
      "commit": "b9beb2e2efb6a204a69ca660d478b45f851e8f09",
      "tree": "168765e73d342712800566b562fb5276f63e49ef",
      "parents": [
        "6393eb7043517c5744935c48e3fd45a482915c2b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 09 16:57:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 12 15:18:23 2014 -0700"
      },
      "message": "Place ISA into boot image name.\n\nDepends upon:\nhttps://android-review.googlesource.com/94078\n\nChange-Id: I22c18b03b2c0db7a3f792920064e7710363b58b4\n"
    },
    {
      "commit": "674744e635ddbdfb311fbd25b5a27356560d30c3",
      "tree": "c61c3979cbb25bda24954d41f19c64521fbe3b9d",
      "parents": [
        "18694f430b1e499954e5e4fcdbd6ac07a07763ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 24 15:18:26 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 08 18:45:59 2014 +0100"
      },
      "message": "Use atomic load/store for volatile IGET/IPUT/SGET/SPUT.\n\nBug: 14112919\nChange-Id: I79316f438dd3adea9b2653ffc968af83671ad282\n"
    },
    {
      "commit": "9e06c8cd4a2e1471754470e09aaab63c0795b4af",
      "tree": "c8f7889b9740c9189ac0f11720ff9e18a41b1102",
      "parents": [
        "7189fee4268c70d7ed0151e988ff7c7cd85f2a30"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Tue May 06 18:06:07 2014 +0100"
      },
      "committer": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Wed May 07 15:06:29 2014 +0100"
      },
      "message": "AArch64: Add fake arm64 backend, and disable it by method filter.\n\nJust create an ArmCodeGenerator for arm64, but currently no code will\nbe generated for arm64.\n\nThe method filter can:\n1. Skip methods with unsupported prototype.\n2. Skip methods with unsupported dalvik byte code.\n3. Skip methods with invocation to unsupported prototype.\n\nThese are temporary codes and should be removed later. But with this\npatch, it won\u0027t break anything when we merge partly implemented arm64\nbackend later.\n\nChange-Id: Ib9180d7b8a978f0a5ebaf6b4893e7e3724897113\n"
    },
    {
      "commit": "43221f789244a898dc9f14e8b063d4c73326b47a",
      "tree": "142d314839f1b980535bcd396688f2a1ccaf307d",
      "parents": [
        "394d4e772e88a304fed8b721755bc7a8d97fb247",
        "7ca278be5f6f15681350e9f05af434df4aab59ca"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 01 23:19:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 01 23:19:20 2014 +0000"
      },
      "message": "Merge \"Disable the ahead-of-time compilation for MIPS.\""
    },
    {
      "commit": "7ca278be5f6f15681350e9f05af434df4aab59ca",
      "tree": "1ca52f9168a37b7348a717ac3efd822ea90b886e",
      "parents": [
        "b3016551e5f264264dbb633a1ddf03ac97f9c66c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 01 12:24:37 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 01 12:24:49 2014 -0700"
      },
      "message": "Disable the ahead-of-time compilation for MIPS.\n\nBug: 14464004\n\nChange-Id: I551c0dc4122853a1a9ab566d03bac74cc057cba5\n"
    },
    {
      "commit": "11d9f06a96a6909905c248ed684366190140095c",
      "tree": "27b02ab216b98ba1656d66072fd46c5adec61242",
      "parents": [
        "b3016551e5f264264dbb633a1ddf03ac97f9c66c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 23 20:24:57 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:25:07 2014 +0100"
      },
      "message": "Use instruction specific dalvik cache dirs.\n\n- All oat \u0026 art files are now placed under /data/dalvik-cache/\u003cisa\u003e/.\n- GetDalvikCacheOrDie now requires a mandatory subdirectory argument,\n  and is implicitly rooted under /data/.\n- Added helper methods to convert InstructionSet enums into strings\n  and vice versa.\n\n(cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe)\n\nChange-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd\n"
    },
    {
      "commit": "bf25f7e3a007ecfe4b2bcfa0a9abcb784ff54e26",
      "tree": "6e53daa44e2c03ce13c9a29d38fdbfdc79c2cb08",
      "parents": [
        "0db6d06d1e4dec2ac36ca9c085876eea40d46a50",
        "9cb554a7784307d97c20991d90c76d9cf8a12e01"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Apr 28 04:23:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 28 04:23:01 2014 +0000"
      },
      "message": "Merge \"Fix typo of --oat-fd description in help\""
    },
    {
      "commit": "9cb554a7784307d97c20991d90c76d9cf8a12e01",
      "tree": "655402199725897568ffc5d27e8e7d80ff10312c",
      "parents": [
        "da6e4feb6a02fed7f307e1ef3b90e716a99ba24c"
      ],
      "author": {
        "name": "Wonil Kim",
        "email": "wonil.kim@gmail.com",
        "time": "Mon Apr 28 11:26:55 2014 +0900"
      },
      "committer": {
        "name": "Wonil Kim",
        "email": "wonil.kim@gmail.com",
        "time": "Mon Apr 28 11:26:55 2014 +0900"
      },
      "message": "Fix typo of --oat-fd description in help\n\n--oat-fd description in help was copied from --oat-file description.\n\nChange-Id: Idbf36018af58db169f6d65382a7602ec950cce99\nSigned-off-by: Wonil Kim \u003cwonil.kim@gmail.com\u003e\n"
    },
    {
      "commit": "09881a85579cab1779ddf6ba9a91eed861a13cb2",
      "tree": "fae410053b1cc8f0497abb744e820c124015d7b1",
      "parents": [
        "011005100214eb40c2aaad3f8fe9c3dc9465bcec"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 18 17:44:01 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 25 15:40:04 2014 -0700"
      },
      "message": "Do not require dexopt when previous profile does not exist\n\nAlso turn down some dex2oat related noise\n\nBug: 14184659\nChange-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f\n"
    }
  ],
  "next": "5a9cef81718465118662b22cfa616457cf91b27a"
}
