)]}'
{
  "log": [
    {
      "commit": "e94d9b23c52ec0f36c8a132914eac33bc707faff",
      "tree": "53a3b1262f9f01f12507ec2aa1f1fd6fa774fc72",
      "parents": [
        "024cf66d3359c015fabca8f5f3964592973e3f6e"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue May 22 09:01:24 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon May 28 21:04:37 2012 -0700"
      },
      "message": "Add dex_lang as common frontend to lir and LLVM. dex_lang + bc2lir \u003d\nGreenland\n\nFirst commit of Greenland compiler: It\u0027s working in the sense of oat\ntests. E.g., mm test-art-host-oat-Fibonacci. It shows the correct\nbitcode before lir.\n\nChange-Id: I91cbb02188325eb1fa605ed71ec7108fd2b0dbb9\n"
    },
    {
      "commit": "742e25ef8cc9655c7bb27f3c34a7e3b4e3607d99",
      "tree": "950bbef9b3cd1f010a265be2315949720937e7a0",
      "parents": [
        "98e2017cac7ca554602480fcefabbbe630a4a39b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 18:11:08 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 18:11:08 2012 -0700"
      },
      "message": "More MIPS support.\n\nChange-Id: I0c2433ecbcfc549720acea53a3ca79a687a87a55\n"
    },
    {
      "commit": "937105a220983351695bf4c8924171ba5d17a68c",
      "tree": "4e259853c80e0d28e12ecf54c6e0ffa178797497",
      "parents": [
        "0c717dd1c56bd29cf860d0feda8e629dab2cadb3"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 02 02:37:37 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Apr 06 17:04:56 2012 -0700"
      },
      "message": "Use ELF function index to distinguish generated functions.\n\nWe replaced LLVMLongName and LLVMStubName with ElfFuncName,\nand we are using the simple name: Art0, Art1, ..., ArtN,\nas the function name of every generated functions.  This\ngives us 3 benefits:\n\n1. We can avoid the ambiguous function name returned by\n   LLVMLongName() in some special situation.\n\n2. We don\u0027t need to have the art::Method object during\n   the executable linking procedure.  Besides, this will\n   make bootstrapping easier.\n\n3. Reduce the size of the ELF executable, since we don\u0027t\n   have to save a long function name, which usually contains\n   more than 30 characters.\n\nChange-Id: Ib698062b272458e847ad5545d7acf33a4dc9eb85\n"
    },
    {
      "commit": "6920bceb9636910fd82c710946313d6577fbfdfc",
      "tree": "e84d04d49189377aecb06ad57ec6b14b598beb6d",
      "parents": [
        "6546ec57eefb0c28e79c0d80ed5a298c15aa8fbe"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sat Mar 17 21:44:01 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:56:04 2012 -0700"
      },
      "message": "Add ELF index to art::CompiledMethod.\n\n(cherry picked from commit fd9514dbab8eaca357b6d712bb7e1b635617f92e)\n\nChange-Id: I79bff6bf9d05ce6ffc25c3cef41d1acefc4d8d2a\n"
    },
    {
      "commit": "16da88c70c4bdbd97b8482be8b42103a52f22d59",
      "tree": "905c1bfc68c7a301706a5cd2b7a3d7d9084a06b3",
      "parents": [
        "b41b33b5e5f08083e35f84818b4f44d26feb4a8b"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 20 10:38:17 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 20 14:36:11 2012 -0700"
      },
      "message": "Custom codegen for small frameless methods.\n\nAdded a general mechanism that will allow pattern matching of\nsmall methods and (generally) frameless code generation.  Prevously,\nall frames were at least 16 bytes, not you can have zero-length\nframes (and thus some old asserts had to go).\n\nChange-Id: Ic786940a602e25b48cbc317ac601ac84cc307762\n"
    },
    {
      "commit": "b41b33b5e5f08083e35f84818b4f44d26feb4a8b",
      "tree": "a888c3c40bd6070acc459700ed5c79055c6984f4",
      "parents": [
        "49ac9bfa63aea6d331e4c9aa5011953777bf98ad"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 20 14:22:54 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 20 14:24:39 2012 -0700"
      },
      "message": "Add 3rd argument register to X86.\n\nImplement more instructions.\n\nChange-Id: I3af7bbaf18eedc6537f1cfc2d57c4f6106fb5164\n"
    },
    {
      "commit": "f7d9ad39541dd09030e26d54d3b73a076f90cc74",
      "tree": "aa0a9bc7b422ecc31432471fedd1b5fb496866b1",
      "parents": [
        "f320b639eee1ec0e9d99e8d6c2a805892d016807"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 13 18:45:39 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 14 23:25:39 2012 -0700"
      },
      "message": "Enable all JNI internal compiler tests on the host.\n\n(cherry picked from commit abda43c90f70963909128c1cc495190d60fd8372)\n\nChange-Id: I0a7fc96e84dacf34108551271760aae13d5ee010\n"
    },
    {
      "commit": "3fa1b7e7a7fc9785ba4e8335d730e5caf6343322",
      "tree": "b20075991a2f9260d043accf818f629d368baec0",
      "parents": [
        "2f1deb5753ef39b82752fd01e7bc0fc4c15004b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 17:06:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 18:33:25 2012 -0700"
      },
      "message": "Unify the invoke stubs and replace \"oat\" with \"Art\" in the API.\n\nChange-Id: Ic1529d7568bd5297fdce4da69ede67c2f48487a4\n"
    },
    {
      "commit": "c4c9881e5d22432f3f1a30eeec5aa109dfc08a7d",
      "tree": "98f1125db961451699880019c8663d76e7b94d02",
      "parents": [
        "1580379bb02ee7866ca94d54851a4d08de12a5a4"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Mar 10 21:55:51 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 13 10:26:51 2012 -0700"
      },
      "message": "Fix the LLVM build. Separate out libart-compiler-llvm.so.\n\nAfter this refactoring:\nIf (!USE_LLVM_COMPILER), I pass the test-art and boot the phone alright.\nThe behavior is the same for non-LLVM builds as before. Multi-target\nart-compiler shared libraries are generated as before.\nIf (USE_LLVM_COMPILER), I generate libart-compiler-llvm.so successfully.\n\nNote that the ideal refactoring for the next step will be to always build\nart-compiler and LLVM-[arm|mips|x86] shared libraries. Currently, we\nhaven\u0027t removed all the ifdefs for libart.so yet, so this is not ideal yet.\nReason for not-done-yet is that the next step requires discussions.\nI can remove all the ifdefs today, but then the (!USE_LLVM_COMPILER)\nbuild will incur extra fields and overhead.\n\nThis refactoring allows us to restore the LLVM build situation to be before\nthe breakage yesterday, so we can continue making forward progress again.\n\nOne difficulty in the refactoring is that LLVM is not a method compiler\nin default, unlike (!USE_LLVM_COMPILER). LLVM actually compiles an LLVM module\nat a time normally. So we need to do more call backs and tell\nlibart-compiler-llvm.so in each invocation where we are in terms of\nOatCompilationUnit.\n\nAnother difficulty is that currently our LLVM compiler is not\nmultithreaded and requires locking, unlike (!USE_LLVM_COMPILER). So more\ncallbacks are needed. This will be fixed when we fix the multithreading\nissue.\n\nChange-Id: I93bce21b6d673254188f2a60b1a7f91b508e497f\n"
    },
    {
      "commit": "b5d09b2f87202bc132ac3991d4b6d71f4f6d9264",
      "tree": "e9d805a956b42fd9958163a1f5feef68e8c7d97b",
      "parents": [
        "79ab9e32c6880e7b342c192a479c858c9dccf496"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 06 22:14:17 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 12 16:01:37 2012 -0700"
      },
      "message": "Method prologue and epilogues, add missing x86 functionality.\n\nEnables compiling and running a number of JNI internal managed code\nmethods on the host.\n\nChange-Id: I56fceb813d0cb24637bc784ba57f2d1d16911d48\n"
    },
    {
      "commit": "ab058bb04d11ed086116d95f2d55bf6b35e8cc35",
      "tree": "eb6d9f03207431ce9bcb262fe661765cfcca8b5e",
      "parents": [
        "49c4894f76f6a7aec4d6a1ec2c901700c9108944"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 22:19:38 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 22:40:50 2012 -0700"
      },
      "message": "Make code buffer units 8bit rather than 16bit.\n\nChange-Id: I1ca087c4f7f820a8816388095405603f4163b354\n"
    },
    {
      "commit": "f04364f0ff789935d05490ee684f01c3de431780",
      "tree": "a47070af79126f5aa315480280b7b44ba7205ef1",
      "parents": [
        "7caf37e2aebdb9e6f10f691a8148dd3d3405f157"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Feb 10 12:01:39 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Feb 19 02:50:04 2012 -0800"
      },
      "message": "Add upcall compiler.\n\nUpcall compiler compiles the invoke stub for native-to-managed\nmethod invocation.\n\nChange-Id: I09fb1e4b3f166e8da5de73e8f39509cd9be6c152\n"
    },
    {
      "commit": "d1fec81868a3567560a3868350e0a945248e925b",
      "tree": "749615f244e92d7f18b1713950d8110322b7645f",
      "parents": [
        "0401b68ec5ddf2aface872d756558aafcada3655"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Feb 13 09:51:10 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Feb 14 23:46:16 2012 -0800"
      },
      "message": "Beginning of LLVM backend for ART.\n\nChange-Id: I03466aed94670ac72d489ebc6e34d7ee1c9c857e\n"
    },
    {
      "commit": "2faa5f1271587cda765f26bcf2951065300a01ff",
      "tree": "c59557857c36741cfcd1b6bf5ae039886a8ad6e7",
      "parents": [
        "0850c69c88d49efd4075288511b70d6c032bd0c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 14:42:07 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 16:46:29 2012 -0800"
      },
      "message": "Fix copyright headers.\n\nChange-Id: I5b7bc76a370238d810d78522bd5531600746700f\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "754128802c6f85c256f845721d684bd00febddc9",
      "tree": "c1f873ccf9414f4163ed315972227dfb3b619d6a",
      "parents": [
        "5fedcf46538aeb036a1f68e022463703c372d825"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 18 01:26:54 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 18 14:10:27 2012 -0800"
      },
      "message": "Ensure method GC maps are setup during runtime verification\n\nChange-Id: Icd5013710a269cc6df439e36c534a8d40c1e3324\n"
    },
    {
      "commit": "e7d856b911222aa000ca2be0f8f63f5b292141c3",
      "tree": "9628ef94e879c7ae026dd37ec05e1ab3251d830a",
      "parents": [
        "a51dc5b0a57fdf0574c069a15e065ccc96958f02"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 18:10:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 17 17:42:34 2012 -0800"
      },
      "message": "Add GC map to oat file\n\nChange-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28\n"
    },
    {
      "commit": "413f9e040589f6ab67ebae35951c5723f0130f1f",
      "tree": "e429d14b00c5edb38db5638c0cfe38c574c8b1df",
      "parents": [
        "2e3d1b262af0839380e1d60e86d8b281943ef944"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 22:24:30 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 09 22:29:36 2012 -0800"
      },
      "message": "Fix gcc 4.6 build\n\nChange-Id: I254802b426cb8636330fad6954df251c00cb9ee5\n"
    },
    {
      "commit": "169c9a7f46776b235d0a37d5e0ff27682deffe06",
      "tree": "9bd38fe9508e827089d546f04b0b42020eef821e",
      "parents": [
        "0571d357843c53e042f370f5f2c2e9aa3fe803a9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 20:13:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 09:27:23 2011 -0800"
      },
      "message": "Remove the use of Method from jni_compiler\n\nChange-Id: Ibf1c72a806e7f1ba7a2d83960c3d57f41937d336\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "0dd7ddaa36a2cf37490dc166ebc21818364130a7",
      "tree": "e381ae0cc965d2135ad99f07826333ccd03dfe90",
      "parents": [
        "ed6d78ed93c9b5b1988af6ca502a7e2eee0f2aaf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 15:47:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 20:28:07 2011 -0700"
      },
      "message": "Several fixes for proper creation and use of vmap tables\n\nChange-Id: I7696115af4263df18ede0777ae14de7a3a7ada3b\n"
    },
    {
      "commit": "3320cf46afd082398aa401b246e6f301cebdf64d",
      "tree": "99ef2b240ad81fa7cafa0bca51ca2364120fa762",
      "parents": [
        "4f0d07c783afef89703dce32c94440fc8621a29b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 14:58:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 11:59:20 2011 -0700"
      },
      "message": "Move rest of code related blobs from Method to oat\n\nChange-Id: I55041b564ab65317c8b1f863005f20ba650a0322\n"
    }
  ]
}
