)]}'
{
  "log": [
    {
      "commit": "8320f3867c02bae9bef6cdab267820cb7b412781",
      "tree": "7e2211068ccbd17da7e9c83d24b10fdd9db28c39",
      "parents": [
        "c7b83a0d8ac73bdfff751619ae2a34948e3534b7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Sep 11 16:29:42 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 13 10:49:20 2012 -0700"
      },
      "message": "Prune useless entries from dex to pc map\n\nStep one of the change.  Limit entries in the table to native\ncode safepoint locations (which generally are the return PC\naddresses of any call that might trigger a stack walk and the\nstart addresses of all catch blocks).\n\nPreviously, the mapping_table described ranges.  No longer.  Any\nnative PC located within compiled Dex code that is found in a\nstack walk should have an exact match in the table.\n\nIn future CLs we\u0027ll add data compression (probably uLeb128) and\nmay add inflation on first use to a faster access map (instead of\nthe current linear search).\n\nNote that this CL introduces somewhat of a regression in the\ncapabilities of oat-dump.  Because the mapping table no longer\nassociates each native intruction with its Dex counter-part, the\nnative code disassembly no longer includes interspersed Dex\ndisassembly.\n\nNote also that as of this CL, the compiler is adopting the 100-char\nline length limit used in the rest of Art.  The 80-char limit\nshould still be used in any code that we expect to upstream to\nllvm.\n\nChange-Id: I1beca4d57c41e8161bf746bc62abbce08d5bcb4d\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": "e296248a124ed8287b38a9225463696c18d84cd6",
      "tree": "ffa3305cfb89082b39982d5d617f408c13cf3e66",
      "parents": [
        "837210218c82a4f8e69304e58f8d018dbeb313b8"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 28 11:29:57 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 28 11:39:22 2012 -0700"
      },
      "message": "Fixes for x86 compiler optimizations.\n\nx86 works with all but a few optimizations turned on, and the broken\nones are still disabled for now. This change includes:\n\n- Flagging of opcodes to incidate register use and def. Also, made\n  flagging more complete for loads/stores and set/use ccodes.\n\n- Fixes to load store elimination, though it still doesn\u0027t work yet.\n\n- Prevent double values that are loaded or stored from losing their\n  FP_DOUBLE flag. Later optimizations use this sizing.\n\n- Renumbering of DOUBLE registers so they alias with FP regs when\n  masked.\n\n- Add support in the disassembler to recognize shifts.\n\nChange-Id: I758cdce418409fdd84206ce295005d5c9ab635f8\n"
    },
    {
      "commit": "a114add0300b95eeaae7465493f39144e07324e8",
      "tree": "19b119195c00bd4688bb085eadbe142851f75e0e",
      "parents": [
        "1ecce9487a1b3aac6b656f5704cf86a961ab0481"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu May 03 15:00:40 2012 -0700"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu May 03 18:57:47 2012 -0700"
      },
      "message": "[Compiler] use Art indentation standard\n\nFirst of several CLs to bring code closer to alignment with Art and LLVM\nstandards.  Move to 2-space indenting.  Sticking with 80-col line\nlength (which LLVM apparently also wants).  LLVM also prefers camel\ncase names, so keeping Dalvik convention there as well (for now).\n\nChange-Id: I351ab234e640678d97747377cccdd6df0a770f4a\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "a7678db092ac6bb79f7cad490099a1015fbbc714",
      "tree": "95181107e5ef16068298cbec717b605f54748ca4",
      "parents": [
        "e88dfbf138bc204b1ce21911f1c34098ea74af7c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Mar 05 15:35:46 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Mar 05 15:35:46 2012 -0800"
      },
      "message": "x86 source code hack and slash\n\nMade a pass over the compiler source to get it into a compileable\nstate for the x86 target.  Lots of temporary #ifdefs, but it\ncompiles and makes it to oatArchInit().\n\nChange-Id: Ib8bcd2a032e47dcb83430dbc479a29758e084359\n"
    },
    {
      "commit": "31a4a6f5717f645da6b97ccc1e420ae1e1c71ce0",
      "tree": "de07c7175bcda6c2e3f11329d72d142319354f3f",
      "parents": [
        "32c9a2decebe7b736e1f05b53b5822affea5e81d"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Feb 28 15:36:15 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 29 18:52:47 2012 -0800"
      },
      "message": "More target-independence\n\nContinuing to move target-specific code from the Arm\ncode generator into the independent realm.  This will be\ndone in multiple small steps.\n\nIn this CL, the focus is on unifying the LIR data structure and\nvarious enums that don\u0027t really need to be target specific. Also\ncreates two new shared source files: GenCommon.cc (to hold\ntop-level code generation functions) and GenInvoke.cc (which\nis likely to be shared only by the Arm and Mips targets).\n\nAlso added is a makefile hack to build for Mips (which we\u0027ll\neventually remove when the compiler support multiple targets\nvia the command line) and various minor cleanups.\n\nOverall, this CL moves more than 3,000 lines of code from\ntarget dependent to target independent.\n\nChange-Id: I431ca4ae728100ed7d0e9d83a966a3f789f731b1\n"
    },
    {
      "commit": "e3acd07f28d5625062b599c2817cb5f7a53f54a9",
      "tree": "d38696b0235dab5d8ef791cdb9fb311a6705e03b",
      "parents": [
        "55b796c6f1fdc36494463a3deeb1e248800695e9"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Feb 25 17:03:10 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Feb 26 20:44:46 2012 -0800"
      },
      "message": "Multi-target support\n\nThis CL represents a step towards splitting out the target dependent\nand target independent portions of the compiler, and also adds in the\nbeginning of a MIPS compiler based on the MIPS AOSP Jit submission.\n\nMore polish is clearly needed, but the split is here probably pretty\nclose.  The MIPS code will not compile at this point (and there is no\nmakefile target at present), but it\u0027s pretty close.\n\nThere should be no changes in functionality of the Arm compiler in this\nCL - just moved stuff around.\n\nChange-Id: Ia66b2847e22644a1ec63e66bf5f2fee722f963d4\n"
    },
    {
      "commit": "ba938cbb8d73a0dcf151dfaec4662496da6afdbf",
      "tree": "09ad41fc5851a22e8c11935edc83c7ece546f856",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 14:47:55 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 15:02:55 2012 -0800"
      },
      "message": "Make the compiler threadsafe\n\nThe compiler inherited a simple memory management scheme that\ninvolved malloc\u0027ng a clump of memory, allocating out of that\nclump for each unit of compilation, and then resetting after\nthe compilation was complete.  Simple \u0026 fast, but built with the\nexpectation of a single compiler worker thread.\n\nThis change moves the memory allocation arena into the\nCompilationUnit structure, and makes it private for each method\ncompilation.  Unlike the old scheme, allocated memory is returned\nto the system following completion (whereas before it was reused\nfor the next compilation).\n\nAs of this CL, each compilation is completely independent.\n\nThe changes involved were mostly mechanical to pass around the\ncUnit pointer to anything which might need to allocate, but the\naccretion of crud has moved me much closer to the point that\nall of this stuff gets ripped out and replaced.\n\nChange-Id: I19dda0a7fb5aa228f6baee7ae5293fdd174c8337\n"
    },
    {
      "commit": "5abfa3ea35781464df8fae60aaf03f48a295e965",
      "tree": "3db19d0ecfc1031f86d77964de636ec45d4ba690",
      "parents": [
        "6c7d244058b74cdd61533968dd6cddd7003d2671"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 31 17:01:43 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 15:56:41 2012 -0800"
      },
      "message": "Compiler tuning\n\nSignificant reduction in memory usage by the compiler.\n    o Estimated sizes of growable lists to avoid waste\n    o Changed basic block predecessor structure from a growable bitmap\n      to a growable list.\n    o Conditionalized code which produced disassembly strings.\n    o Avoided generating some dataflow-related structures when compiling\n      in dataflow-disabled mode.\n    o Added memory usage statistics\n    o Eliminated floating point usage as a barrier to disabling expensive\n      dataflow analysis for very large init routines.\n    o Because iterating through sparse bit maps is much less of a concern now,\n      removed earlier hack that remembered runs of leading and trailing\n      zeroes.\n\nAlso, some general tuning.\n    o Minor tweaks to register utilties\n    o Speed up the assembly loop\n    o Rewrite of the bit vector iterator\n\nOur previous worst-case method originally consumed 360 megabytes, but through\nearlier changes was whittled down to 113 megabytes.  Now it consumes 12 (which\nso far appears to close to the highest compiler heap usage of anything\nI\u0027ve seen).\n\nPost-wipe cold boot time is now less than 7 minutes.\n\nInstallation time for our application test cases also shows a large\ngain - typically 25% to 40% speedup.\n\nSingle-threaded host compilation of core.jar down to \u003c3.0s, boot.oat builds\nin 17.2s.  Next up: multi-threaded compilation.\n\nChange-Id: I493d0d584c4145a6deccdd9bff344473023deb46\n"
    },
    {
      "commit": "11d1b0c31ddd710d26068da8e0e4621002205b4b",
      "tree": "8d9c9c0dd5741214466775b86069032d609fd91c",
      "parents": [
        "bbdb1437f55948e5395b4dcb306e25605539a444"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 16:57:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 17:26:10 2012 -0800"
      },
      "message": "Reduce namespace pollution.\n\nThis leaves us with just the mspace stuff and three libdex functions to clean\nup. We deliberately expose the JII API, and I don\u0027t think there\u0027s anything we\ncan really do about the art_..._from_code stuff (and at least that starts with\n\"art_\").\n\nChange-Id: I77e58e8330cd2afeb496642302dfe3311e68091a\n"
    },
    {
      "commit": "ed3e930109e3f01804ca32cee4afe4f2d4b3f4d8",
      "tree": "41c3ffd3fdade2244b4cd3824c98419edecbca86",
      "parents": [
        "8060925c45cc2607ab92390d7366c6c0cfdfe4bb"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 23 17:34:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 23 18:34:31 2011 -0700"
      },
      "message": "assert to DCHECK conversion\n\nAlso replaced static function defs with a STATIC macro to make normally\nhidden functions visible to DCHECK\u0027s traceback listing).  Additionally,\nadded some portions of the new type \u0026 size inference mechanism (but not\ntaking advantage of them yet).\n\nChange-Id: Ib42a08777f28ab879d0df37617e1b77e3f09ba52\n"
    },
    {
      "commit": "f48e97135ef8008197af5d8925a6642d71bea014",
      "tree": "7ce112b56187e85a78075af161014e165773935e",
      "parents": [
        "8692721dd8a3679ca874c3d1be0cecb62ff148f6"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 15 17:54:28 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 15 17:54:28 2011 -0700"
      },
      "message": "Def/Use mask fix for vldm/vstm\n\nWe\u0027re using a few new Thumb instructions now (floating point load and\nstore multiple), and the calculation of the use/def masks was incorrect.\n\nChange-Id: I3eb17ebf6dc3bc2e6e8a4da48228cad6ff7c5cfb\n"
    },
    {
      "commit": "e6d6196822952a9ccbb6ac2a97f4e3ae5e59705b",
      "tree": "4ddf77ae5db6672b29a0ac205809287a5980b78e",
      "parents": [
        "7b1b86d68244b0bb4ea3f43505eb45fdd46814d6"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Aug 27 11:58:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Aug 27 11:58:19 2011 -0700"
      },
      "message": "Various bug fixes.\n\nThe most amusing fix was the wierd NaN test failure.  After spending way\ntoo much time debugging, it turned out to be a missing comma in the argument\nlist of the test launcher.\n\nChange-Id: I76253575d7fbe2c2c260f1839a517c1b93dc9224\n"
    },
    {
      "commit": "67bf885d62b1473c833bece1c9e0bb624e6ba391",
      "tree": "a6069d30bb0e25d4ed1f19d7a3c2b55c4aef7127",
      "parents": [
        "f4c21c9f6440c3980c47a297519f758796dbc039"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 17 17:51:35 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 19 20:14:15 2011 -0700"
      },
      "message": "Oat compiler integration snapshot.\n\nCleanly compiles, but not integrated.  Old-world dependencies captured\nin hacked-up temporary files \"Dalvik.h\" and \"HackStubs.cc\".\n\nDalvik.h is a placeholder that captures all of the constants, struct\ndefinitions and inline functions the compiler needs.  It largely consists\nof declaration fragments of libdex, Object.h, DvmDex.h and Thread.h.\n\nHackStubs.cc contains empty shells for some required libdex routines.\n\nChange-Id: Ia479dda41da4e3162ff6df383252fdc7dbf38d71\n"
    }
  ]
}
