)]}'
{
  "log": [
    {
      "commit": "fd678beb171a4686a4f2d53ca4188a4ade8fa54e",
      "tree": "ab932e92d683d8033241bb2248da98e76249d3eb",
      "parents": [
        "5bfa60ffcc953340feb711ed05cf576ac821905e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 30 14:50:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 04 14:58:14 2012 -0700"
      },
      "message": "Additional heap verification for the Gc\n\nThere are now two verification booleans which can be enabled. When these get enabled, it verifies that each live object only references other live objects.\n\nChanged SetClass to use SetFieldPtr to avoid having an extra card mark. This is safe since all classes are held live by the class linker.\n\nChange-Id: I005bb59e5cc8153a79d3ccb3d7b5cabd29fb4051\n"
    },
    {
      "commit": "5bfa60ffcc953340feb711ed05cf576ac821905e",
      "tree": "6a204b7913b437a8d5a08886e5b7cd34e2864ac7",
      "parents": [
        "87e552db94588455c081efd87dbde0cd96d02942"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 02 21:17:56 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Sep 02 21:17:56 2012 -0700"
      },
      "message": "Fix DDMS crash\n\nCheck the liveness of an object rather than heap containing to avoid\nsegv. Move the lock outside the of the visitor to ensure lock level\nrules are followed.\n\nChange-Id: I237c7a31a18b783853d1b1956a5c1d1961b2a142\n"
    },
    {
      "commit": "87e552db94588455c081efd87dbde0cd96d02942",
      "tree": "02fc47be772d65e3ba4f2453f5d330b7dd111d1a",
      "parents": [
        "c747cffa950b8398cb8844d47e2253214c855750"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 15:54:48 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 01 00:23:33 2012 -0700"
      },
      "message": "Make ICCE logic common, refactor throws.\n\nThere were 2 sets of ICCE logic in ClassLinker::ResolveMethod and\nMethod::CheckIncompatibleClassChange, merged into just 1 piece of logic\nin Method::CheckIncompatibleClassChange.\n\nMove Throw... routines into own file and make adding the dex location to\nthe detail message more thorough.\n\nChange-Id: I953dbfa3fed3767f35799b2f82b16637c437dbbe\n"
    },
    {
      "commit": "c747cffa950b8398cb8844d47e2253214c855750",
      "tree": "4b77ecc1dc6f2a76c755381a2925f34ed080c74f",
      "parents": [
        "faf459e5decdfcf6dd7844947898beefe31e6435"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 18:20:08 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 18:26:30 2012 -0700"
      },
      "message": "Runnable -\u003e Suspended -\u003e Runnable, avoid 2 locks\n\nAllow some freedom in the Transtion code to change thread state without\nholding a lock in 2 cases where it is safe.\n\n1) into Suspended we know that we\u0027re suspended and so checking the\nsuspend count is a mute point.\n2) when going into Runnable we can do a racy check before doing a\nsecondary check after we\u0027ve acquired a share on the mutator lock.\n\nChange-Id: Ibf0e5f42acc1ff3cf06312ef001a74344d4dfa8c\n"
    },
    {
      "commit": "faf459e5decdfcf6dd7844947898beefe31e6435",
      "tree": "7f08cafc93b75b068fc8576633fefa8d92208a46",
      "parents": [
        "692be80cb2278ae585a776a163bc4b3ef60cae88"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 31 15:32:47 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 31 16:07:57 2012 -0700"
      },
      "message": "Verifier no longer checks dead code after failing instruction at runtime.\n\nWhen a failure is detected by the verifier at runtime, the code\nfollowing the failing instruction is unreachable, and is no longer\nchecked. This prevents further failures from causing the whole class to\nbe thrown out. OTP is working again.\n\nChange-Id: I143a76370a2bc9998df526b03219b3ae40a77093\n"
    },
    {
      "commit": "692be80cb2278ae585a776a163bc4b3ef60cae88",
      "tree": "7ddadb6753024b2b6b864a192e56c4a4047354ee",
      "parents": [
        "9a4f003f9a6da8e4c6ee279bd2a13aac37648183"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 29 15:52:59 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 31 14:46:26 2012 -0700"
      },
      "message": "Quick compiler: reuse llvm context \u0026 ir builder\n\nWith this CL, we avoid setting up an llvm context, module and intrinsic\ndefinitions for each method, and considerably speed up compilation time.\nThis does not represent a final form - we\u0027ll be reworking the compiler driver\nto support Quick \u0026 Portable via the command line, and this code will likely\nchange at that time.\n\nChange-Id: I19e298a011141c3bc35c4f28175b2b20653fd5e4\n"
    },
    {
      "commit": "9a4f003f9a6da8e4c6ee279bd2a13aac37648183",
      "tree": "ce78afe7c842c8ff99d52c0a09bfe758d67d037f",
      "parents": [
        "cfb21d92796087963c092b69110a2e7ff7a03a55"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 16:17:40 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 31 10:49:06 2012 -0700"
      },
      "message": "Remove the THROW_VERIFICATION_ERROR op and supporting code.\n\nChange-Id: Idc40a2c379048c7e3d74f50b2bd765a507a417ce\n"
    },
    {
      "commit": "cfb21d92796087963c092b69110a2e7ff7a03a55",
      "tree": "87029f97ea62aec34c692e5e0a970e41ed25c51b",
      "parents": [
        "da6a90e179b29aa45a383cbc0bbe7f907417c408",
        "15bf2d34efa2218e287b584fb3653d268b9edc8d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 10:17:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 10:17:32 2012 -0700"
      },
      "message": "Merge \"Use bionic\u0027s dlmalloc 2.8.5.\" into dalvik-dev"
    },
    {
      "commit": "da6a90e179b29aa45a383cbc0bbe7f907417c408",
      "tree": "4ccda67f6274f0febdc1879c852b18fedb2b8e4c",
      "parents": [
        "e4f0b2ab4abd8e942a099e9b9b4682fbdd9eb21c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 18:49:03 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 18:49:03 2012 -0700"
      },
      "message": "Prevent miranda methods from being thrown away during resolution.\n\nThis fixes the maps issue.\n\nChange-Id: I70ec279c19de5ecfa04e20eaed90fab019953d9c\n"
    },
    {
      "commit": "15bf2d34efa2218e287b584fb3653d268b9edc8d",
      "tree": "4435664bd2c9a041d8c355940f2b5c95e03d38f7",
      "parents": [
        "e4f0b2ab4abd8e942a099e9b9b4682fbdd9eb21c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 17:33:04 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 30 17:22:52 2012 -0700"
      },
      "message": "Use bionic\u0027s dlmalloc 2.8.5.\n\nAlso fix free space computations for DDMS.\n\nChange-Id: Icbc045b5461af89a0516f37f01acaaa815205348\n"
    },
    {
      "commit": "e4f0b2ab4abd8e942a099e9b9b4682fbdd9eb21c",
      "tree": "1f7f1365914264de80ac992916d1bcea5c1e709e",
      "parents": [
        "2fc1427ee9c534ed44d72184ad6d74ea65f3d5b3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 11:18:57 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 30 11:18:57 2012 -0700"
      },
      "message": "Allow soft failures at runtime and fix null referrer for ICCE and NSME.\n\nChange-Id: I814369f4e41cebf37007cb514a8bf19cbaf17e94\n"
    },
    {
      "commit": "2fc1427ee9c534ed44d72184ad6d74ea65f3d5b3",
      "tree": "7759b3b2f7e25ac66a2d05a48ac9ff918b95eb80",
      "parents": [
        "b9a287cc1c1f4f303acc186b7c97756f326d3537"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 30 10:56:57 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 30 10:56:57 2012 -0700"
      },
      "message": "Fix location of ICCEs and NoSuchMethodErrors.\n\nAlso add detail as to why verifier believes an ICCE.\n\nChange-Id: Ie16ea2847fb94e157969c560a780c9345b1e7441\n"
    },
    {
      "commit": "b9a287cc1c1f4f303acc186b7c97756f326d3537",
      "tree": "bf5f1c872c462a201277c55bf02df711ad498df3",
      "parents": [
        "6950e65dd9f26ca174d7840f4f2913f170e502cf",
        "c0228b8f02c05ed58bea58490e0d8bdcaf8c5bb8"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:30:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 18:30:23 2012 -0700"
      },
      "message": "Merge \"Fixes to verifier and slowpaths for cts invoke tests.\" into dalvik-dev"
    },
    {
      "commit": "c0228b8f02c05ed58bea58490e0d8bdcaf8c5bb8",
      "tree": "afbfe1592284d1978ae619e0f9b5aae642b48197",
      "parents": [
        "08f753d5859936f8d3524e9e4faa6cee353873ea"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:15:05 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:29:36 2012 -0700"
      },
      "message": "Fixes to verifier and slowpaths for cts invoke tests.\n\nInstructions are never rewritten, so that has been removed from the\nverifier. Also, the slowpath now checks for access errors when it\ncan\u0027t properly resolve a method.\n\nChange-Id: Ie38eacec8eb092ba23502471a0b27ca8ce38fe68\n"
    },
    {
      "commit": "6950e65dd9f26ca174d7840f4f2913f170e502cf",
      "tree": "33390a37f137e4da6e46257c8a1589930249cf25",
      "parents": [
        "08f753d5859936f8d3524e9e4faa6cee353873ea"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 18:20:00 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 18:28:53 2012 -0700"
      },
      "message": "Fix test-art-host-run-test.\n\n055-enum-performance runs too slowly with extra debug checking, force to\nalways run with -O.\n\nFix the -O option for run-test on the host.\n\nChange-Id: I394d99f12934bb117f28812b476776b4b4f1b8e3\n"
    },
    {
      "commit": "08f753d5859936f8d3524e9e4faa6cee353873ea",
      "tree": "5679a9ad8be6827e2a10de282cd28e3d000917de",
      "parents": [
        "b0b2be7688109cff548d2ddc8f02eecbad49ecd2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:35:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 11:34:56 2012 -0700"
      },
      "message": "Avoid compile time rewriting of dex code by verifier.\n\nCompile time rewriting of dex code leads to dead code that is causing\nissues with the LLVM compiler. Make instantiation and incompatible class\nchange errors be detected in slow path field and invoke logic so its\nsafe for the compile time verification just to softly fail the effected\nclasses.\n\nThis change places incompatible class change logic into the class\nlinkers ResolveMethod and consequently changes a number of APIs.\n\nChange-Id: Ifb25f09accea348d15180f6ff041e38dfe0d536e\n"
    },
    {
      "commit": "b0b2be7688109cff548d2ddc8f02eecbad49ecd2",
      "tree": "82825040f147a28106affb75886c9bdbece158b4",
      "parents": [
        "dfd46c95aab1c7ec8c77016ea419ae1acab3c3c7",
        "48efc2b5c4b95ac507de5150cd315c6e1c96b381"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 27 17:28:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 17:28:37 2012 -0700"
      },
      "message": "Merge \"Fix locking issue in oatdump.\" into dalvik-dev"
    },
    {
      "commit": "48efc2b5c4b95ac507de5150cd315c6e1c96b381",
      "tree": "0ba0603edd505ab6ab138318af4c48d45fb069c0",
      "parents": [
        "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 27 17:20:31 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 27 17:20:31 2012 -0700"
      },
      "message": "Fix locking issue in oatdump.\n\nCalling FieldHelper GetType may cause class loading, only do this for\nnon-null fields where we expect the type is part of the image.\n\nChange-Id: I3c016f27fb619cc0da755bd3cecfe98326bda83b\n"
    },
    {
      "commit": "dfd46c95aab1c7ec8c77016ea419ae1acab3c3c7",
      "tree": "f9c59854091fe505a67d138fc720dea872b4dc42",
      "parents": [
        "fc7120c0293b96218d55abee29882f101acbc79b",
        "bd93c3023ea2171bfcdf127d03a05d903ee7c9d8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 17:10:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 17:10:22 2012 -0700"
      },
      "message": "Merge \"Comment on use of 0 and -1 values in mutex implementation\" into dalvik-dev"
    },
    {
      "commit": "bd93c3023ea2171bfcdf127d03a05d903ee7c9d8",
      "tree": "8df67ff9be6b3af140260bf05abd145d398b70a2",
      "parents": [
        "0ac41d58258a97c62d41c0137338a4c3b9ceb95d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 16:58:28 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 16:58:28 2012 -0700"
      },
      "message": "Comment on use of 0 and -1 values in mutex implementation\n\nChange-Id: I4834feb2aa78962086c39c1512483964a3a2a52a\n"
    },
    {
      "commit": "fc7120c0293b96218d55abee29882f101acbc79b",
      "tree": "330c7f5d020d3cbdd2cd201d9b55d2d04dc8297d",
      "parents": [
        "0ac41d58258a97c62d41c0137338a4c3b9ceb95d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 13:43:25 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 27 14:41:28 2012 -0700"
      },
      "message": "Fix JNI Compiler for x86 target\n\nChange-Id: Ia247de328d234c4a57ddd93f394cad2c63e48153\n"
    },
    {
      "commit": "0ac41d58258a97c62d41c0137338a4c3b9ceb95d",
      "tree": "936ab11f4e86eebe465a5a1f4b363880bef2b628",
      "parents": [
        "7fbee0731b14b5bf392a4254f5cd84685ab517da"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 13:07:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 13:07:54 2012 -0700"
      },
      "message": "Fix llvm build for mips.\n\nChange-Id: I733c7e4ef2392e0becd04501cae5f954886b0980\n"
    },
    {
      "commit": "7fbee0731b14b5bf392a4254f5cd84685ab517da",
      "tree": "b24cf6d9eed7935e3b26d63cf2292fd8c008005b",
      "parents": [
        "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 24 17:56:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 11:33:05 2012 -0700"
      },
      "message": "Preliminary changes to allow mips target to build.\n\nIt compiles, but it doesn\u0027t work yet.\n\nChange-Id: I2973a03bd956d8d398b9cfd1047e66fbf3ff439c\n"
    },
    {
      "commit": "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7",
      "tree": "c1a552f7d21691d4c5c4b7632cfcfd1edc213a13",
      "parents": [
        "a5d602c87ca780030caf82a64701b60ce118fb2f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 24 11:06:02 2012 -0700"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 24 15:49:48 2012 -0700"
      },
      "message": "Make Mutexes work on Mac OS X 10.6\n\nChange-Id: I1692f78df5891be91d620050b7214083fbafb10f\n"
    },
    {
      "commit": "a5d602c87ca780030caf82a64701b60ce118fb2f",
      "tree": "e9cb1374de05b6ea2ed46674239adfdc20f5aad0",
      "parents": [
        "6f1712d2dd3c9405815cb09a944257ccdb3bf203",
        "37e2bb8670ce198c66adb8611f6297ee2a54d1fd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:35:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 14:35:02 2012 -0700"
      },
      "message": "Merge \"Extra debug output in test.\" into dalvik-dev"
    },
    {
      "commit": "37e2bb8670ce198c66adb8611f6297ee2a54d1fd",
      "tree": "acb2599ec95ef4f39fee0098b6a53209f6dedf1d",
      "parents": [
        "9da7f59c9059397182b9a97e898a42ec06d4d646"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:31:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:31:10 2012 -0700"
      },
      "message": "Extra debug output in test.\n\nFix a debug output for a failing case and add the stack trace details as\nwe have it.\n\nChange-Id: I634c1743a7714a661d23905eccbd5044e48487e6\n"
    },
    {
      "commit": "6f1712d2dd3c9405815cb09a944257ccdb3bf203",
      "tree": "d06abb6efff4998da2ba8740d24ddd8785d01b51",
      "parents": [
        "efd4a9ce22a018a070226b291fedbd78184a0083",
        "ca7a5e484ac02927247cc77ad40f291bf6613ed5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 24 14:20:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 14:20:03 2012 -0700"
      },
      "message": "Merge \"Quick compiler: restore optimizations\" into dalvik-dev"
    },
    {
      "commit": "efd4a9ce22a018a070226b291fedbd78184a0083",
      "tree": "ab801785388b794f996ed3132229934a6e6a8b1e",
      "parents": [
        "037813dfa7f575ad31ab0275892726c9b9b2ea4e",
        "3bdcd3dc77b8564d443c0f9e2fbbfda0124b5508"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 24 10:45:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 24 10:45:57 2012 -0700"
      },
      "message": "Merge \"Remove build warnings due to now unnecessary LOCAL_MODULE_TAGS\" into dalvik-dev"
    },
    {
      "commit": "3bdcd3dc77b8564d443c0f9e2fbbfda0124b5508",
      "tree": "60b25dca584ea650d90ae4610c6e55cd2a82dc6a",
      "parents": [
        "1cd9c5ccb15a7d9dd6219851b5df3d8c9e3393be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 23 23:24:26 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 23 23:24:26 2012 -0700"
      },
      "message": "Remove build warnings due to now unnecessary LOCAL_MODULE_TAGS\n\nChange-Id: I90b413525b00de930ab9319546c32dece0ec1e77\n"
    },
    {
      "commit": "037813dfa7f575ad31ab0275892726c9b9b2ea4e",
      "tree": "35de964b0e2d64b1c000c86b0670c8ebabaa5405",
      "parents": [
        "1cd9c5ccb15a7d9dd6219851b5df3d8c9e3393be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 23 16:44:59 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 23 18:43:14 2012 -0700"
      },
      "message": "Record allocation after SetClass to have memory fence for SetClass card mark.\n\nRecord allocation is now called after SetClass to ensure that our SetClass card mark is behind a fence.\n\nAlso:\nRemoved remaining LOCKS_EXCLUDED mentionning statistics lock.\nCleaned up some of the code in heap.cc\n\nChange-Id: Id781c6a9780ad72e90330acea647432974b240c6\n"
    },
    {
      "commit": "1cd9c5ccb15a7d9dd6219851b5df3d8c9e3393be",
      "tree": "c25a64a53ecf8a6577a18294fb4e89a5a7d0b9da",
      "parents": [
        "b18e77abdb06a443744fbb6589e0932fa89f6073"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 23 10:52:44 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 23 16:04:33 2012 -0700"
      },
      "message": "Fix JPC regression\n\nJPC had regressed in boot time since we were incorrectly doing too many GCs.\n\nHaving the ImageSpace allocations counted as used memory caused us to incorrectly schedule concurrent GCs.\n\nChange-Id: Ic466a1281ffc68141a5a19f3e7b8f7dea45fbdf8\n"
    },
    {
      "commit": "ca7a5e484ac02927247cc77ad40f291bf6613ed5",
      "tree": "5dd6f55984fe8eb0dd2cf80bd3b2aff5f514afa2",
      "parents": [
        "b18e77abdb06a443744fbb6589e0932fa89f6073"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Aug 20 11:12:18 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 23 15:22:25 2012 -0700"
      },
      "message": "Quick compiler: restore optimizations\n\nThis CL re-enables optizations on the Quick compile path.\nNotes:\n\n  o Although all optimization are enabled, several are now useless\n    because of llvm and bitcode constraints:\n      - Large method de-optimization (i.e. - skipping expensive dataflow\n        analysis) can\u0027t be done because we have to do the analysis to\n        produce a CFG that makes the bitcode verifier happy.\n      - Small method pattern matching isn\u0027t applicable w/ bitcode (though\n        I can probably do something similar in the Quick backend, but\n        looking for bitcode instead of dex patterns).\n      - Branch fusing doesn\u0027t translate to bitcode.\n      - Bitcode generation has de-optimized code layout.  We\u0027ll try to\n        repair the damage in a subsequent CL.\n\n  o There is an ugly workaround related to the way we\u0027re loading and\n    unloading the compiler .so containing llvm. [See comment in compiler.cc]\n\n  o We\u0027re still running single-threaded - need to add the magic to allow\n    multi-threaded use of llvm.\n\n  o With the CL, the phone boots, all target tests pass and all cts VM\n    tests pass (except those being dealt with via a verifier change).\n\n  o Compile time is pretty bad - when flashing it\u0027s best to follow\n    with an adb sync to avoid on-device compilation of system apps.\n\nChange-Id: I1c98f9e64aefbcbd24b957c71544c28450eb2023\n"
    },
    {
      "commit": "b18e77abdb06a443744fbb6589e0932fa89f6073",
      "tree": "0e77099cfedbbb13a1fee3c1b93c34305b447d1c",
      "parents": [
        "22ad71521f3006b9bf344738c0276a501934fc01"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:21 2012 -0700"
      },
      "message": "Switch art over to the new bionic dlmalloc 2.8.5 callback\n\nChange-Id: I1314e87a51553fd358dbf9c44f804a7eb2de3a7d\n"
    },
    {
      "commit": "22ad71521f3006b9bf344738c0276a501934fc01",
      "tree": "9e7657a76815e05ad07b4291ecc65338b7a607db",
      "parents": [
        "9da7f59c9059397182b9a97e898a42ec06d4d646",
        "556fad3316f691e8ab39f187cfaae52e02c9f862"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 09:48:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 09:48:07 2012 -0700"
      },
      "message": "Merge \"Fix mac build pointer aliasing warnings\" into dalvik-dev"
    },
    {
      "commit": "9da7f59c9059397182b9a97e898a42ec06d4d646",
      "tree": "b360af4af3d632c308723057110dfa37b96ecc0c",
      "parents": [
        "1b09b094a85e03f6ef5f687f58bb91c433273ba1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 17:14:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 17:14:28 2012 -0700"
      },
      "message": "Remove bogus assert in JniAbort.\n\nJniAbort asserts its not in runnable but is inside a ScopedObjectAccess.\nDo the right thing wrt the mutator_lock_.\nAlso adds missing LOCKS_EXCLUDED for thread transitions.\n\nChange-Id: I748efe4d8a82469d0c26ea7b17786820d70436df\n"
    },
    {
      "commit": "556fad3316f691e8ab39f187cfaae52e02c9f862",
      "tree": "9c2463da17f2b3da5d1084a77655ac5e146d6670",
      "parents": [
        "003e870b32ac2df76964d12ce7ef7706a2e66bff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 20 16:13:20 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 20 16:49:04 2012 -0700"
      },
      "message": "Fix mac build pointer aliasing warnings\n\nNow we cast to size_t before going to int32_t*, this removes the aliasing warning.\n\nChange-Id: I696f509a4d64c036b434f353293eb3c97eee7c18\n"
    },
    {
      "commit": "1b09b094a85e03f6ef5f687f58bb91c433273ba1",
      "tree": "6b039e520ee3b73e6ba5fb23954b9e01ecc68fc9",
      "parents": [
        "931c278aed62d7a97b87cf1bb9cfdd189e77eb24"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "message": "Syntax clean up to make clang happy.\n\nChange-Id: I0984c395bbd1ee4b206eafd19915b6f68781dd16\n"
    },
    {
      "commit": "931c278aed62d7a97b87cf1bb9cfdd189e77eb24",
      "tree": "f53d3c7b6446c8c069220787c5cf220ca5f26b1a",
      "parents": [
        "003e870b32ac2df76964d12ce7ef7706a2e66bff"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 14:46:21 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 14:46:21 2012 -0700"
      },
      "message": "Remove build flag brought over from dalvik.\n\nChange-Id: Icf6d3f87f7300c923f9f13cc176f129ecb9dafb4\n"
    },
    {
      "commit": "003e870b32ac2df76964d12ce7ef7706a2e66bff",
      "tree": "1fb47cb1bfea8ab68e5f67adf4693c6249b9f9a9",
      "parents": [
        "20f07ce55cef1024c5764e1df26d93c1ffbcfce4",
        "637e34860a22a61f2a0aa47bf37f2316f0dd3947"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 10:32:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 10:32:18 2012 -0700"
      },
      "message": "Merge \"Remove statistics lock to improve performance.\" into dalvik-dev"
    },
    {
      "commit": "637e34860a22a61f2a0aa47bf37f2316f0dd3947",
      "tree": "a095e4c3a07bbb42b2250e85693f811cf3279639",
      "parents": [
        "c7c18df6effe46669c2c197e6b5d3926728687b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 17 10:41:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 20 10:22:39 2012 -0700"
      },
      "message": "Remove statistics lock to improve performance.\n\nRemoves the statistics lock for performance improvements. We now use android atomic operations to avoid write race conditions.\n\nA few other fixes are bundled with this change list.\n\nDeltablue time now down to ~17s,\n\nChange-Id: Ib80ea66c5362903bf637a32eeb8140941457fb7f\n"
    },
    {
      "commit": "20f07ce55cef1024c5764e1df26d93c1ffbcfce4",
      "tree": "4a1c38bb86bcdac56543e46ef5ebb5cf0e2379b9",
      "parents": [
        "c7c18df6effe46669c2c197e6b5d3926728687b7",
        "9efc3e03982f042c3ce67cc2c64dbe0f0986119b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 17 18:23:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 18:23:14 2012 -0700"
      },
      "message": "Merge \"Fix x86 build where compiler found lock issue\" into dalvik-dev"
    },
    {
      "commit": "9efc3e03982f042c3ce67cc2c64dbe0f0986119b",
      "tree": "3b2ba9bc2b64f1ef3bccc10fb62aec37fcac3d43",
      "parents": [
        "cd30d82113913125222454d41981c8740724fb30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 17 17:47:17 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 17 17:47:17 2012 -0700"
      },
      "message": "Fix x86 build where compiler found lock issue\n\nChange-Id: I00eba554539cf9f700c38ccf42eeafd011725a9f\n"
    },
    {
      "commit": "c7c18df6effe46669c2c197e6b5d3926728687b7",
      "tree": "307ca824894cdac7b72d93e1172a20030577eb9c",
      "parents": [
        "cd30d82113913125222454d41981c8740724fb30",
        "357e9be24c17a6bc2ae9fb53f25c73503116101d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 17 15:12:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 15:12:30 2012 -0700"
      },
      "message": "Merge \"Sticky mark bits \"generational\" GC\" into dalvik-dev"
    },
    {
      "commit": "357e9be24c17a6bc2ae9fb53f25c73503116101d",
      "tree": "a170276eabf319d107242f928a68463fe0b5ebfb",
      "parents": [
        "66aee5cd571cf4739d2735769304202ea5051fb8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 01 11:00:14 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 17 10:06:50 2012 -0700"
      },
      "message": "Sticky mark bits \"generational\" GC\n\nSticky mark bits GC. Sticky mark bits implemented using allocation stack which enables us to use the previous GC live bitmap as the mark bitmap.\n\nRemoved heap_end_ since checking versus it caused more overhead than it saved.\n\nRemoved check for impossible allocations at the start of AllocObject since these allocations will just fall through and fail anyways.\nThese allocations do not happen often enough for it to be worth checking for.\n\nA bunch of constant optimization performance improvements.\n\nPre locking regression benchmark improvements:\nDeltablue: ~0.3 sec runtime.\nCaffeineMark: ~300 total score due to improved string score.\n\nChange-Id: I15016f1ae7fdf76fc3aadb5774b527bf802d9701\n"
    },
    {
      "commit": "cd30d82113913125222454d41981c8740724fb30",
      "tree": "338a7f0a77af657e1643b9d5fb33cf5585680a2c",
      "parents": [
        "627fc20794cd280164f5021e5359f938512247ef",
        "178cdcccdeced1c24ddfe5e96ed39d9a99ee85b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 17:12:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 17:12:55 2012 -0700"
      },
      "message": "Merge \"Port multi-user support to art.\" into dalvik-dev"
    },
    {
      "commit": "627fc20794cd280164f5021e5359f938512247ef",
      "tree": "6f16c758afffae777a77b473ff93bc111e66058f",
      "parents": [
        "f25448336f549de64c62c57f43a20b9079ef56c3",
        "3eace7061b8a854b5d0566d15646302da57caf75"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 16 17:04:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 17:04:21 2012 -0700"
      },
      "message": "Merge \"Tidy up some raw Object access cruft.\" into dalvik-dev"
    },
    {
      "commit": "178cdcccdeced1c24ddfe5e96ed39d9a99ee85b1",
      "tree": "57d11d49bc4efbe096451be081a564931696503e",
      "parents": [
        "f25448336f549de64c62c57f43a20b9079ef56c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 16:47:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 16:59:44 2012 -0700"
      },
      "message": "Port multi-user support to art.\n\nDisabled for now, but will blow up in the right place as soon as our\ntree has the rest of the support.\n\nChange-Id: I668176784a2a855c3d22236dc57df53b7fd3ae67\n"
    },
    {
      "commit": "f25448336f549de64c62c57f43a20b9079ef56c3",
      "tree": "e9a8b02961b7071362e7424a936301eeea90364a",
      "parents": [
        "66aee5cd571cf4739d2735769304202ea5051fb8",
        "c9f40dd0a3dba696fc694d51fb82b61dcff19066"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 16 15:01:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 15:01:15 2012 -0700"
      },
      "message": "Merge \"Restore \"CFG rework for explicit exception edges\"\" into dalvik-dev"
    },
    {
      "commit": "3eace7061b8a854b5d0566d15646302da57caf75",
      "tree": "f6fe6c5d65e69758e4363d8310e0df7fa3f8d925",
      "parents": [
        "66aee5cd571cf4739d2735769304202ea5051fb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 16 10:44:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 16 10:44:47 2012 -0700"
      },
      "message": "Tidy up some raw Object access cruft.\n\nChange-Id: I42fee7eb1f549a795a6c83d3f971ed478e9e5ee5\n"
    },
    {
      "commit": "66aee5cd571cf4739d2735769304202ea5051fb8",
      "tree": "0fd162020be916dc358550ff376fd3706d0a14dd",
      "parents": [
        "a5acfd318d46c4720bb9b25181021ee7471b6be9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 15 17:17:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 15 17:17:47 2012 -0700"
      },
      "message": "Mac build fix. Macs don\u0027t support timeouts on locks.\n\nChange-Id: I75665300d9b99420972865109026c8c090748cef\n"
    },
    {
      "commit": "a5acfd318d46c4720bb9b25181021ee7471b6be9",
      "tree": "87ba3fc6b98ef3bd531d2e21f05d7efc675055e0",
      "parents": [
        "3d71d80626fdc0fe1f61c84bb52e9f7d96c95060"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 15 11:50:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 15 14:06:01 2012 -0700"
      },
      "message": "Mac build fix for global lock levels.\n\nChange-Id: Iebaa4509a95de16d606f0325bc9fc77ef72566d3\n"
    },
    {
      "commit": "c9f40dd0a3dba696fc694d51fb82b61dcff19066",
      "tree": "c4c44c15500e53b78e9988983301823c11d18c76",
      "parents": [
        "3d71d80626fdc0fe1f61c84bb52e9f7d96c95060"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 15 11:35:25 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 15 13:21:36 2012 -0700"
      },
      "message": "Restore \"CFG rework for explicit exception edges\"\n\nRestores, with fix, I9fa359c912e25ca6a75e2f69d0975126d0687c33\n\nHere\u0027s the original commit message:\n\nPreviously, basic blocks were terminated by any Dalvik opcode\nwhich might throw, and the exception edges were represented\nas a list of successor basic blocks.  This resulted in a\nSSA renaming bug: any Dalvik register definition caused by\na throwing instruction (such as IGET) would incorrectly be considered\nto be visible across the exception edges.  For the Art compiler (and JIT)\nthis was a benign bug.  But for llvm, it means an invalid CFG.\n\nThe other problem this CL is addressing is the llvm bitcode requirement\nthat all exception edges be explicit.  Because we can\u0027t use\nthe llvm bitcode \"invoke\" (it doesn\u0027t match our exception handling),\nall exception edges must be represented as explicit branches in the\nbitcode (further contributing to the llvm bitcode bloat).\n\nWe split all potentially throwing instructions into two parts: a\ncheck prologue followed by the body.  If there are any catch blocks\nassociated with the potentially throwing instruction, we make a call\nto the intrinisc dex_lang_catch_targets().  Though it should never\nexpand into actual code, this intrinsic returns a switch key that\nfeeds into an immediately-following switch statement.  That switch\nstatement will include edges to all necessary catch blocks, with the\ndefault target referencing the block conaining the \"work\" portion of\nthe pair.\n\nIncluded in this CL are also fixes for .dot file generation\n(previously there was an issue with non-unique block names), and an\nenhancement to include the block number on Phi incoming arcs.\n\nAlso reworked dissasembly to use StringPrintf.\n\nNote: the insertion of new basic blocks following computation of\ndepth-first-search order badly degrades code layout.  DFS order\ncomputation can be expensive, so I\u0027ll be looking for a workaround\nin a future CL to avoid a full dfs order regeneration.\n\nWith this CL, the device boots, all target tests pass, all methods\nare converted to Greenland Bitcode and all well-formed converted methods\npass llvm\u0027s function validation pass without error or warning.\n\nWe still have some cts failures related to the verifier\u0027s\ninstruction rewriting to THROW_VERIFICATION_ERROR.  In those cases\nwe can have a malformed graph - but we still must be able to convert\nit to legal llvm bitcode.  If executed, it will throw.\n\nWe\u0027ll detect that situation and bitcast these mismatches away in a\nsubsequent CL.\n\n[Update: since this original CL, we\u0027ve determined that the\nTHROW_VERIFICATION_ERROR problem is best solved by changes in the\nverifier to avoid the problem of malformed code.  Structural\nverification failures will be treated as hard.]\n\nThis reverts commit 937b73eea7a473395f3572e0db1fdc9c6a094db5\n\nChange-Id: I8ba7fe080d8720c14bf74a342403077c150e4a71\n"
    },
    {
      "commit": "3d71d80626fdc0fe1f61c84bb52e9f7d96c95060",
      "tree": "b65d908c11f270e6f54e241f332b01aa27134d68",
      "parents": [
        "cd05a6274782c50a2b990c18b5f8d5ae5e44d509"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 03:47:03 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 04:01:19 2012 -0700"
      },
      "message": "Fix JNI compiler for portable path.\n\nChange-Id: Ic2cbfcf126137b1b72f3b51e7af5a9be87987737\n"
    },
    {
      "commit": "cd05a6274782c50a2b990c18b5f8d5ae5e44d509",
      "tree": "1a202f979454f8b6a1e4294776d52d20c526efc0",
      "parents": [
        "ef0a2ca1f719f64af59db08861edb73739bf5220"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Aug 15 00:02:05 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Aug 15 04:01:15 2012 -0700"
      },
      "message": "Global lock levels for the LLVM side.\n\nChange-Id: Id2807c8775686bc38f79e13c097fadda2d96d042\n"
    },
    {
      "commit": "ef0a2ca1f719f64af59db08861edb73739bf5220",
      "tree": "d1a198026d199c5734db21dec1cb6b5955ba06f5",
      "parents": [
        "bce872c496710a18b71508315773f12051dedc83",
        "c5e3d761a390b891dd5d842ac2c073eac7970425"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 16:38:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 16:38:58 2012 -0700"
      },
      "message": "Merge \"Fix runtime_support_llvm for ART_USE_LLVM_COMPILER.\" into dalvik-dev"
    },
    {
      "commit": "c5e3d761a390b891dd5d842ac2c073eac7970425",
      "tree": "ad832eda7e8345cac372fb9877afd5cbe9a34dce",
      "parents": [
        "c05f85a61fde3de5cc7d6f53dc504e23f74185d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 16:33:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 16:33:47 2012 -0700"
      },
      "message": "Fix runtime_support_llvm for ART_USE_LLVM_COMPILER.\n\nChange-Id: Icd742af098fd9bb17f9cfe2e086f3136bbd01816\n"
    },
    {
      "commit": "bce872c496710a18b71508315773f12051dedc83",
      "tree": "717297a3ba1ec4f843ed964256bd37b81770b6c0",
      "parents": [
        "c05f85a61fde3de5cc7d6f53dc504e23f74185d0",
        "865e6e01486e3d7d61b7d0d952b420e5912c8219"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 16:07:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 16:07:32 2012 -0700"
      },
      "message": "Merge \"Callee-save frame fix\" into dalvik-dev"
    },
    {
      "commit": "865e6e01486e3d7d61b7d0d952b420e5912c8219",
      "tree": "07cd2ba3dcd98ec4bff361f6dae4b6efebdc2e8d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 15:09:57 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 14 16:04:32 2012 -0700"
      },
      "message": "Callee-save frame fix\n\nPreviously, the callee-frame stubs tried to be a little too efficient\nin stack usage by re-using the storage allocated for the Method* to pass\nan argument.  Unfortunately, if the compiler decided to do a tail-call\noptimization on the called routine, it could end up re-using that same\nslot for outgoing arguments (thus clobbering the Method*, and breaking\na subsequent stack crawl).\n\nThis CL fixes the problem by not re-using the Method* slot (at the cost\nof a few extra instructions and 16 bytes of stack).\n\nChange-Id: Ibce43ed84f81a8e332c2e77674e355c338efaaf0\n"
    },
    {
      "commit": "c05f85a61fde3de5cc7d6f53dc504e23f74185d0",
      "tree": "767041fc3c168b84784838a2e5fec487e5486236",
      "parents": [
        "0fb6bb558feebfcb9e0ddc1a58cbcb3f61da758d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:39:34 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:39:34 2012 -0700"
      },
      "message": "Fix compiler for ART_USE_LLVM_COMPILER.\n\nChange-Id: Id81d5fbf84a9ca4dcd4b5b9d022ddfc2bd1e4823\n"
    },
    {
      "commit": "0fb6bb558feebfcb9e0ddc1a58cbcb3f61da758d",
      "tree": "ad89430cac6ea05b7c5f113e09533d743520b442",
      "parents": [
        "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:10:19 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:10:19 2012 -0700"
      },
      "message": "Fix exception_test for ART_USE_LLVM_COMPILER.\n\nChange-Id: I1de9d3ba431a652260ec4e97b3c4e00829e1c6d1\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "634ea28f78c4a138e6a1de54eae8696095422415",
      "tree": "9852d454d5168462f3d75c5497d6582cfb1e950f",
      "parents": [
        "86e4671975752b112b2e8969ac6652c72c8e86c7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 10 13:04:01 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 10 13:04:01 2012 -0700"
      },
      "message": "Implemented inline of String charAton x86.\n\nChange-Id: I5899d5169096adf9b2563a7160c60d05e2ab3e9d\n"
    },
    {
      "commit": "86e4671975752b112b2e8969ac6652c72c8e86c7",
      "tree": "44be48718a716ce58a7c087c33ddd264c7943450",
      "parents": [
        "46a23638436afdf17330870ef150f5b8eb66410c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 08 17:30:59 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 10 09:52:15 2012 -0700"
      },
      "message": "Implemented inline of String indexOf and compareTo on x86.\n\nChange-Id: Ia141d4900e9ab9dd563e718af0d10dcd445794cb\n"
    },
    {
      "commit": "46a23638436afdf17330870ef150f5b8eb66410c",
      "tree": "d9dec192977e0bf75a1bc7ada5b3a90ec9333345",
      "parents": [
        "77ae36b35d47393335bf5399cab9c91ccf08e88f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 07 18:44:40 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 09:47:05 2012 -0700"
      },
      "message": "Fix SweepSystemWeaks not checking the correct bitmaps due to bitmap swapping.\n\nThis error was causing GCs to occasionally free weak objects which were still in use (Monitors, etc..).\n\nChange-Id: I2f4cfee1e76f2bb01d745ec8316774205f69c42f\n"
    },
    {
      "commit": "77ae36b35d47393335bf5399cab9c91ccf08e88f",
      "tree": "736bfd865e7bfd7caf6c8bc282fa9d04d16232f7",
      "parents": [
        "e37543ed52379bcf08f57ebb3510846294a7102c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 07 14:18:16 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 07 16:24:08 2012 -0700"
      },
      "message": "Fix and enable inlining of some intrinsics on x86.\n\nInlined min/max int, String isEmpty/length, and abs int/long.\n\nChange-Id: I24aa1b403ee5c8437d63c58dbe1504494ce106ef\n"
    },
    {
      "commit": "e37543ed52379bcf08f57ebb3510846294a7102c",
      "tree": "d3e28d72db66d5d4313685e2159d5b4fe71cdcb0",
      "parents": [
        "0e3ac14885bb646b187cda5ff8dab08cf6c99b43",
        "e6a5b765c458eb0306468fafe29bee20cbff3bbe"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Aug 07 11:33:08 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 07 11:33:08 2012 -0700"
      },
      "message": "am e6a5b765: Rename int_to_byte to int_to_short.\n\n* commit \u0027e6a5b765c458eb0306468fafe29bee20cbff3bbe\u0027:\n  Rename int_to_byte to int_to_short.\n"
    },
    {
      "commit": "e6a5b765c458eb0306468fafe29bee20cbff3bbe",
      "tree": "54695347630c95620c072e8d593532a138846335",
      "parents": [
        "63ebbb68631caaf1de0588ece186af4018c33cfd"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Aug 03 09:10:09 2012 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Aug 06 09:39:21 2012 +0800"
      },
      "message": "Rename int_to_byte to int_to_short.\n\nFix copy-n-paste error.\n\nChange-Id: I6c0eb7835a07243c0674808a9d29419f0435efa0\n"
    },
    {
      "commit": "0e3ac14885bb646b187cda5ff8dab08cf6c99b43",
      "tree": "31433c0319dd9a18cf8e260fd1585433f888ab2f",
      "parents": [
        "1dc7e3eaf922b79f08dafde5656ad6a9928106b2"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 03 18:24:38 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 03 18:24:38 2012 -0700"
      },
      "message": "Fix fused branches, so vm-tests work again.\n\nChange-Id: Ia6f4dce1a86f63cdf20a9ccb9df518f4ac590efa\n"
    },
    {
      "commit": "1dc7e3eaf922b79f08dafde5656ad6a9928106b2",
      "tree": "09f7e668186cc37869b392586683ca9a5d5c9986",
      "parents": [
        "626aaa987b171c0addab75d7d300a91c24f9a5cc",
        "eb31113ad46fbf31ca8a0b3ebe94310be9bb20d4"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 03 17:52:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 17:52:00 2012 -0700"
      },
      "message": "Merge \"Primitive type mismatches are now hard failures in the verifier.\" into dalvik-dev"
    },
    {
      "commit": "eb31113ad46fbf31ca8a0b3ebe94310be9bb20d4",
      "tree": "088be876eae06547d35e331da3de21ca38bbd9d6",
      "parents": [
        "259487a86ea29c840d586610f099e8177aab3f40"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 02 18:29:08 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 03 17:50:26 2012 -0700"
      },
      "message": "Primitive type mismatches are now hard failures in the verifier.\n\nChange-Id: Ib2e9e4acc5096d5ad42f579c936176a461e71cfd\n"
    },
    {
      "commit": "626aaa987b171c0addab75d7d300a91c24f9a5cc",
      "tree": "020411da9658eae76036851f49c74515f8c6f481",
      "parents": [
        "dcf8d7283bd51714f3faa55b631ae4103dc98b51",
        "63ebbb68631caaf1de0588ece186af4018c33cfd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 03 14:44:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 03 14:44:06 2012 -0700"
      },
      "message": "am 63ebbb68: Quick compiler: fix NOT_LONG codegen\n\n* commit \u002763ebbb68631caaf1de0588ece186af4018c33cfd\u0027:\n  Quick compiler: fix NOT_LONG codegen\n"
    },
    {
      "commit": "63ebbb68631caaf1de0588ece186af4018c33cfd",
      "tree": "5898dceb78e4753e2d2bb411204b5f3c7f47173d",
      "parents": [
        "8b503db0432981c6b0b2271723f9bcf9448a554a"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 03 14:05:41 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 03 14:05:41 2012 -0700"
      },
      "message": "Quick compiler: fix NOT_LONG codegen\n\nThe llvm ir-builder converts Not operands into xor w/ -1.  Detect\nand restore original operation on the GBC to LIR path.\n\nChange-Id: I219bcdc6b2e3ee8bb6cfea4c0b159deb10207359\n"
    },
    {
      "commit": "dcf8d7283bd51714f3faa55b631ae4103dc98b51",
      "tree": "ce4f6f1b836387d9b448fa1583295a38d7d743b8",
      "parents": [
        "259487a86ea29c840d586610f099e8177aab3f40"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 02 14:55:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 03 12:41:54 2012 -0700"
      },
      "message": "Fix zygote live/mark bitmap size.\n\nFixed some errors with the sizes of mark/live bitmaps after zygote space creation.\n\nThis was causing us to occasionally have overlapping mark/live bitmaps.\n\nAdded a new verify objects mode called VERIFY_OBJECT_FAST which only checks objects and not their classes.\n\nRefactored/optimized some of the scanning code to use xor to clear bits instead of and+not.\n\nChange-Id: Iec87d9157f69e6a558e300950b51d8781679e3f7\n"
    },
    {
      "commit": "259487a86ea29c840d586610f099e8177aab3f40",
      "tree": "0a67b20ce0546e9a2529dad30c2c6deb2341d438",
      "parents": [
        "babda950caf2d577aa57102c3281f0f3c36f3d6d",
        "cae6f06d19da0eba4c6eb8480545a3ecb7c9fba9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 02 17:36:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 17:36:26 2012 -0700"
      },
      "message": "Merge \"Change art script to use exec\" into dalvik-dev"
    },
    {
      "commit": "cae6f06d19da0eba4c6eb8480545a3ecb7c9fba9",
      "tree": "e7fd86589a3ce4384d96a4b85b7d8469a652a973",
      "parents": [
        "937b73eea7a473395f3572e0db1fdc9c6a094db5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 02 17:16:27 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 02 17:16:27 2012 -0700"
      },
      "message": "Change art script to use exec\n\nChange-Id: I0ae2a7e35ba4bc2675836b45677aa535eccf0850\n"
    },
    {
      "commit": "babda950caf2d577aa57102c3281f0f3c36f3d6d",
      "tree": "469a16ecb709ab0bad151f01bb15253be0d9512e",
      "parents": [
        "8302576126efae240eb21c7545cda7982437bd26"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 02 15:55:30 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 02 15:57:46 2012 -0700"
      },
      "message": "Populate call info and inline float/double conversions on x86.\n\nAlso cleaned up neg-float/neg-double implementation.\n\nChange-Id: I8e7fe76e36d3c31bae0a82a956691202c09b8e0c\n"
    },
    {
      "commit": "8302576126efae240eb21c7545cda7982437bd26",
      "tree": "c49a698c034951cc6f3799472dabefb5ccdaaf7f",
      "parents": [
        "937b73eea7a473395f3572e0db1fdc9c6a094db5"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 02 11:08:56 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 02 11:08:56 2012 -0700"
      },
      "message": "Added thin-lock fast path for monitor-enter/exit on x86.\n\nChange-Id: Iba187ae1acde6e341ae510d4b47f59e6984fc354\n"
    },
    {
      "commit": "937b73eea7a473395f3572e0db1fdc9c6a094db5",
      "tree": "73c6d5d2f44ac27b6750b5377b272dfd19618b02",
      "parents": [
        "034f76b91225bea769d6185d7dad5e243af4ffa0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 16:09:16 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 16:09:16 2012 -0700"
      },
      "message": "Revert \"CFG rework for explicit exception edges\"\n\nThis reverts commit 8b503db0432981c6b0b2271723f9bcf9448a554a.\n\nChange-Id: I21d5255d827c63de6a229ef419f372fbcf4d16ed\n"
    },
    {
      "commit": "034f76b91225bea769d6185d7dad5e243af4ffa0",
      "tree": "56732a2b9847c5c791cb8f2336222ca9f853b277",
      "parents": [
        "f2ba9cbe81b0762a7c8c659cdb86ba79b2dbbc40"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 15:51:58 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 15:51:58 2012 -0700"
      },
      "message": "Check for null thread groups at initialization\n\nChange-Id: Ia6fffe9f416ac4bd2588016b99b172cf023f3c5d\n"
    },
    {
      "commit": "f2ba9cbe81b0762a7c8c659cdb86ba79b2dbbc40",
      "tree": "3a7944e695c65fb25ebdcd27bc640b84e6f4fd38",
      "parents": [
        "573b42936ba7fbf296452875cdcadedc619418ef",
        "8b503db0432981c6b0b2271723f9bcf9448a554a"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 01 10:01:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 01 10:01:59 2012 -0700"
      },
      "message": "am 8b503db0: CFG rework for explicit exception edges\n\n* commit \u00278b503db0432981c6b0b2271723f9bcf9448a554a\u0027:\n  CFG rework for explicit exception edges\n"
    },
    {
      "commit": "8b503db0432981c6b0b2271723f9bcf9448a554a",
      "tree": "fb729e6813484499ad983a08ddff844d6b576846",
      "parents": [
        "9a2487f94efeb88016a695af823bf26799ef0f06"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Jul 20 15:36:47 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 01 09:52:02 2012 -0700"
      },
      "message": "CFG rework for explicit exception edges\n\nPreviously, basic blocks were terminated by any Dalvik opcode\nwhich might throw, and the exception edges were represented\nas a list of successor basic blocks.  This resulted in a\nSSA renaming bug: any Dalvik register definition caused by\na throwing instruction (such as IGET) would incorrectly be considered\nto be visible across the exception edges.  For the Art compiler (and JIT)\nthis was a benign bug.  But for llvm, it means an invalid CFG.\n\nThe other problem this CL is addressing is the llvm bitcode requirement\nthat all exception edges be explicit.  Because we can\u0027t use\nthe llvm bitcode \"invoke\" (it doesn\u0027t match our exception handling),\nall exception edges must be represented as explicit branches in the\nbitcode (further contributing to the llvm bitcode bloat).\n\nWe split all potentially throwing instructions into two parts: a\ncheck prologue followed by the body.  If there are any catch blocks\nassociated with the potentially throwing instruction, we make a call\nto the intrinisc dex_lang_catch_targets().  Though it should never\nexpand into actual code, this intrinsic returns a switch key that\nfeeds into an immediately-following switch statement.  That switch\nstatement will include edges to all necessary catch blocks, with the\ndefault target referencing the block conaining the \"work\" portion of\nthe pair.\n\nIncluded in this CL are also fixes for .dot file generation\n(previously there was an issue with non-unique block names), and an\nenhancement to include the block number on Phi incoming arcs.\n\nAlso reworked dissasembly to use StringPrintf.\n\nNote: the insertion of new basic blocks following computation of\ndepth-first-search order badly degrades code layout.  DFS order\ncomputation can be expensive, so I\u0027ll be looking for a workaround\nin a future CL to avoid a full dfs order regeneration.\n\nWith this CL, the device boots, all target tests pass, all methods\nare converted to Greenland Bitcode and all well-formed converted methods\npass llvm\u0027s function validation pass without error or warning.\n\nWe still have some cts failures related to the verifier\u0027s\ninstruction rewriting to THROW_VERIFICATION_ERROR.  In those cases\nwe can have a malformed graph - but we still must be able to convert\nit to legal llvm bitcode.  If executed, it will throw.\n\nWe\u0027ll detect that situation and bitcast these mismatches away in a\nsubsequent CL.\n\nChange-Id: I9fa359c912e25ca6a75e2f69d0975126d0687c33\n"
    },
    {
      "commit": "573b42936ba7fbf296452875cdcadedc619418ef",
      "tree": "8d0edb778bd3b5e598fedb1aa9fdc45f9f6ac585",
      "parents": [
        "bb5f32837926bde201bf5744778dcf2573ea0c68"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 30 16:37:41 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 30 16:37:41 2012 -0700"
      },
      "message": "Enable load store elimination on x86.\n\nIncludes a fix to prevent stores from being sunk between cmp and jcc\nops. Also fixes neg-float/double when the source and destination are the\nsame register. All optis are enabled by default on x86 now.\n\nChange-Id: Ie6f1a3a5ba94fd1b5298df87779d70d9868e8baa\n"
    },
    {
      "commit": "bb5f32837926bde201bf5744778dcf2573ea0c68",
      "tree": "0db8cb23fc81e975faacba7c7024ec2562f497fc",
      "parents": [
        "6f653d9bb93d1fa12d2776b528faa00ace505eb8",
        "4b771a09fe1d947dee7265e3c018d7f1dd89a5d3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 30 10:08:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 30 10:08:38 2012 -0700"
      },
      "message": "Merge \"Implemented fused branches for long and fp on x86.\" into dalvik-dev"
    },
    {
      "commit": "4b771a09fe1d947dee7265e3c018d7f1dd89a5d3",
      "tree": "cfb02aaca1f8d389c73c5f6996775734859c7e5f",
      "parents": [
        "8772f7d8b066887340e39bcb99a0009dd168b4d2"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 25 15:07:21 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 30 09:56:41 2012 -0700"
      },
      "message": "Implemented fused branches for long and fp on x86.\n\nAlso marked mips fused branches as unimplemented.\n\nChange-Id: I2d845874d73b03dfadcaf5a56d1d315bb1e63763\n"
    },
    {
      "commit": "6f653d9bb93d1fa12d2776b528faa00ace505eb8",
      "tree": "01743d257da4497af56185ac9a9891cf323dcab4",
      "parents": [
        "e0c39d6e2331eb6c4747c879e820640d35f02736"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 28 00:07:10 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jul 28 00:07:41 2012 -0700"
      },
      "message": "Remove overloading from MarkReferences\n\nChange-Id: I480bacaec82f8ad7237405affd3eb43b7abe80cc\n"
    },
    {
      "commit": "e0c39d6e2331eb6c4747c879e820640d35f02736",
      "tree": "b9b750568cddae12bf3e483c40e465abc634b46c",
      "parents": [
        "8772f7d8b066887340e39bcb99a0009dd168b4d2",
        "cc236d74772dda5a4161d9bc5f497fd3d956eb87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 27 15:25:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 27 15:25:02 2012 -0700"
      },
      "message": "Merge \"Zygote space / partial collection support.\" into dalvik-dev"
    },
    {
      "commit": "cc236d74772dda5a4161d9bc5f497fd3d956eb87",
      "tree": "2cd44e980357edc5b1a477fb261adb590d34c7c7",
      "parents": [
        "f1ea6b072b8b473eabf91d1d582fb5966ffea4ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 20 10:29:05 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 27 14:30:51 2012 -0700"
      },
      "message": "Zygote space / partial collection support.\n\nThe zygote space is now created right before zygote fork. This space has new allocations into it disabled, this reduces memory usage since we have more shared pages.\n\nPartial collection works by marking all the zygote space -\u003e alloc space references by using a mod-union table and then recursively marking only over the alloc space.\n\nApproximate improvements;\n\nDeltablue time goes down ~0.5 seconds.\n\nCaffeinemark score goes up ~300.\n\nSystem memory usage goes down ~7MB.\n\nChange-Id: I198389371d23deacd9b4534f39727eb641786b34\n"
    },
    {
      "commit": "8772f7d8b066887340e39bcb99a0009dd168b4d2",
      "tree": "10c43fd229bd9d74ee624ee219c874454253544c",
      "parents": [
        "f1ea6b072b8b473eabf91d1d582fb5966ffea4ba",
        "9a2487f94efeb88016a695af823bf26799ef0f06"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Jul 27 06:46:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 27 06:46:50 2012 -0700"
      },
      "message": "am 9a2487f9: Quick compiler - NOT_LONG and verification fixes\n\n* commit \u00279a2487f94efeb88016a695af823bf26799ef0f06\u0027:\n  Quick compiler - NOT_LONG and verification fixes\n"
    },
    {
      "commit": "9a2487f94efeb88016a695af823bf26799ef0f06",
      "tree": "19525acc9c56763a35a12afc2e900fa346c3444d",
      "parents": [
        "854029c13351fd3a8f7794eb6c2c73af0fde8ac8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jul 26 14:01:13 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jul 26 14:01:13 2012 -0700"
      },
      "message": "Quick compiler - NOT_LONG and verification fixes\n\nWe continue to have issues when the verifier rewrites Dalvik\nbyte codes.  This is a workaround to fix the GBC -\u003e LIR\nconversion, but I suspect I\u0027m going to have to add a dead code\nelimination pass to get things working properly for llvm.  The\nbasic problem is that if the re-written instruction defined a\nDalvik virtual register, then we lose the definition.  The\nMIR to GBC converter doesn\u0027t handle uses without definitions\nvery well.\n\nChange-Id: Ia235c299b686ce080755f9bb4c05c719c16c0d77\n"
    },
    {
      "commit": "f1ea6b072b8b473eabf91d1d582fb5966ffea4ba",
      "tree": "7b964348bca02512e1d1591269127147c2952047",
      "parents": [
        "08836618c4505544c2a134ee317543829c07a5e9",
        "854029c13351fd3a8f7794eb6c2c73af0fde8ac8"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 25 10:06:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 25 10:06:17 2012 -0700"
      },
      "message": "am 854029c1: Fixes to x86 register promotion and load hoisting.\n\n* commit \u0027854029c13351fd3a8f7794eb6c2c73af0fde8ac8\u0027:\n  Fixes to x86 register promotion and load hoisting.\n"
    },
    {
      "commit": "854029c13351fd3a8f7794eb6c2c73af0fde8ac8",
      "tree": "3f2968be0023fa1d22303e74a989a1961ea402c9",
      "parents": [
        "22fc28eb95191a1957025b219452c09c7fbb6bd0"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 23 17:31:30 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jul 24 16:33:07 2012 -0700"
      },
      "message": "Fixes to x86 register promotion and load hoisting.\n\nFixed a check to ensure that the mvzxb source register can be byte\naccessed, not the destination reg.\n\nDisabled branch fusion for x86 since code generation for that is\nunimplemented.\n\nChanged regId mask for x86 to allow proper masking of double registers.\n\nAlso added more output to the disassembler.\n\nChange-Id: Idc0a949755ec9ae7b6d5dba38caa5ac01fcc5713\n"
    },
    {
      "commit": "08836618c4505544c2a134ee317543829c07a5e9",
      "tree": "674da8547698b6c90d81765f8f1a4b27328baff0",
      "parents": [
        "28a02bd7998931bfe06f278761c71d8cf402a224",
        "529781dad1d4bc5685fd9ebbf04c1369246c2403"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 24 10:03:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 10:03:49 2012 -0700"
      },
      "message": "Merge \"Avoid cases of deriving information from unresolved types giving conflict.\" into dalvik-dev"
    },
    {
      "commit": "529781dad1d4bc5685fd9ebbf04c1369246c2403",
      "tree": "1313f6af94e592fc3c0cc7bf7c043f589329d996",
      "parents": [
        "ca7fd901bb6b5b014e8b2f3376a06c06a4c7ab87"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 23 17:24:29 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 24 10:01:45 2012 -0700"
      },
      "message": "Avoid cases of deriving information from unresolved types giving conflict.\n\nPreviously non-trivial merges of unresolved types resulted in conflict\n(bottom), introduce a new type to represent this case. Similarly\nimplement a type for unresolved super classes.\n\nChange-Id: Ib84ba082cb9409ad3acaa49dafbc6b1dd1c7772d\n"
    },
    {
      "commit": "28a02bd7998931bfe06f278761c71d8cf402a224",
      "tree": "13c1162878a0eec8867b0d1dbd5783017f21e268",
      "parents": [
        "1eb16c161c1c49153a0da60c5eea19e2543b49d6",
        "22fc28eb95191a1957025b219452c09c7fbb6bd0"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 23:01:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 23 23:01:53 2012 -0700"
      },
      "message": "am 22fc28eb: Merge \"Reorder the included header.\" into ics-mr1-plus-art\n\n* commit \u002722fc28eb95191a1957025b219452c09c7fbb6bd0\u0027:\n  Reorder the included header.\n"
    },
    {
      "commit": "1eb16c161c1c49153a0da60c5eea19e2543b49d6",
      "tree": "08ecb7f7bc1520e69c2356269d351195811e2e4a",
      "parents": [
        "467ef4c9031f78129ca4658054d4057f8b9b5f2a",
        "703f2cd1f4d1eb5ab5c9792ca2de9ffb39378203"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 23 23:01:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 23 23:01:44 2012 -0700"
      },
      "message": "am 703f2cd1: Numerous fixes to enable PromoteRegs, though it\\\u0027s still broken.\n\n* commit \u0027703f2cd1f4d1eb5ab5c9792ca2de9ffb39378203\u0027:\n  Numerous fixes to enable PromoteRegs, though it\u0027s still broken.\n"
    },
    {
      "commit": "467ef4c9031f78129ca4658054d4057f8b9b5f2a",
      "tree": "500f96c30c02ee4219458054b0cad3d56da6f2d2",
      "parents": [
        "1e1cb520a9073c0001ecc2d143bac59aff0a4f15",
        "1335a959a4a192fb5ffabb9756b30e5c152c8c8f"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 21:55:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 23 21:55:18 2012 -0700"
      },
      "message": "Merge \"Use native target build to reduce dependences.\" into dalvik-dev"
    },
    {
      "commit": "1335a959a4a192fb5ffabb9756b30e5c152c8c8f",
      "tree": "26132b383fd8e6c5f335306979e41ba1e640af27",
      "parents": [
        "4407e61aa4cd75e6f31919cfca6a544d18b88c53"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 18:03:00 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 21:54:15 2012 -0700"
      },
      "message": "Use native target build to reduce dependences.\n\nChange-Id: I912e8ceb713fa7cebbdb7cbc340298d32a3ea388\n"
    },
    {
      "commit": "1e1cb520a9073c0001ecc2d143bac59aff0a4f15",
      "tree": "c81f6e20eecaa379e1425e5219cadd378f424ba3",
      "parents": [
        "ca7fd901bb6b5b014e8b2f3376a06c06a4c7ab87",
        "cdc6690a59ad63186b3c3e5f1f52e363c3381e39"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 18:12:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 23 18:12:31 2012 -0700"
      },
      "message": "Merge \"Switch to use libbcc and single copy of LLVM.\" into dalvik-dev"
    },
    {
      "commit": "cdc6690a59ad63186b3c3e5f1f52e363c3381e39",
      "tree": "f165a0658ffca0ea3b5fd6deb877f364f4f1e3ed",
      "parents": [
        "4407e61aa4cd75e6f31919cfca6a544d18b88c53"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Jul 22 16:45:37 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Jul 23 18:08:19 2012 -0700"
      },
      "message": "Switch to use libbcc and single copy of LLVM.\n\nDon\u0027t check this in until libbcc\u0027s 6841435 and API refactoring CLs are checked in.\n\nChange-Id: Ie49e1e9c2dc11bd92240d9153b60edf04296869c\n"
    },
    {
      "commit": "ca7fd901bb6b5b014e8b2f3376a06c06a4c7ab87",
      "tree": "33c136b14b08fcaa395b3723b65910c5aa1714c7",
      "parents": [
        "b46c94c1efc2a03b7885d237faf903a211c9d9dc",
        "a92f971e55fa68d93d06294e0100674ceac6ec4c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 23 16:09:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 23 16:09:58 2012 -0700"
      },
      "message": "Merge \"Additional log output for artInvokeCommon code \u003d\u003d NULL.\" into dalvik-dev"
    }
  ],
  "next": "22fc28eb95191a1957025b219452c09c7fbb6bd0"
}
