)]}'
{
  "log": [
    {
      "commit": "a169e1d8d968800380245cda450505d969ebff76",
      "tree": "92b2cc6da112b027432ae4d5bc985118baebe376",
      "parents": [
        "ce4cc0d1818e872c1c7f3c3519a82259afd5c288"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "message": "Quick compiler: refactored listing \u0026 const fix\n\nThis CL started off as a simple fix to Issue 4959751, which\nidentified a case in which compiler debugging listings could read\nuninitialized data.  The fix ended up pulling a few strings - we\nhad two distinct dex printing routines (one was focused on SSA names\nand was used by the .dot graph dumper), while the other was used with\nverbose codegen listing.\n\nEnded up combining the two routines and significantly enhancing the\nvalue of the verbose debug output.  We now always use ssa register\nnames, and also show the constant values of ssa names which are known\nto be const following constant propagation.\n\nAlong the way, deleted a bit of useless code that remapped all\nregisters in a phi set to have the same name, and also got rid of\nsome duplicate listing helper LIR pseudo ops.\n\nSomee examples of the new listing:\n\n-------- dalvik offset: 0x2 @ const/4 v0_1#0x1, #1\n\nthe format of the vreg is:\n   v\u003corignal Dalvik vnum\u003e_\u003cssa instance\u003e[#hex value of immediate]\n\nIn this example, we don\u0027t add any new info (the listing already had #1),\nbut we also show this form in uses:\n\ninvoke-virtual v0_2, v1_3#0x40\n\nAlso improved is the listing output of potentially throwing instructions\nwhich are broken into two parts: the check portion and the work portion.\nBoth halves now show the full disassembly.  For example:\n\n-------- dalvik offset: 0x13 @ Check1: invoke-virtual v0_2, v1_3#0x40\n....code here\n....code here\n-------- dalvik offset: 0x13 @ Check2: invoke-virtual v0_2, v1_3#0x40\n\nDalvik instructions which are optimized away prior to code generation\nare displayed in sqare brackets.  For example:\n\n-------- dalvik offset: 0x16 @ [move-result-object v0_3]--optimized away\n\nFinally, Phi nodes show which incoming block an operand came through.\nIn the following example:\n\n-------- dalvik offset: 0x5 @ Phi v1_2 \u003d (v1_1#0x0:4, v1_2:12, v1_3#0x1:14)\n\nSreg v1_2 is a merge of a constant 0x0 from incoming block 4, a non-const\nvalue from block 12 and a const 0x1 from block 14.\n\nChange-Id: Ib6c19c19ab8a48509d43d8b0e5ed3e8e7ce9fc82\n"
    },
    {
      "commit": "02031b185b4653e6c72e21f7a51238b903f6d638",
      "tree": "0fae8dbc0a15d4ed379768bdc7adf1910b1d46af",
      "parents": [
        "90ad9639047a8acbd563247f8869f825cf80e576"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 23 09:41:35 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Nov 25 13:22:45 2012 -0800"
      },
      "message": "Quick compiler: Single .so for all targets\n\nWith this CL, all targets can be built into a single .so (but\nwe\u0027re not yet doing so - the compiler driver needs to be reworked).\n\nA new Codgen class is introduced (see compiler/codegen/codegen.h),\nalong with target-specific sub-classes ArmCodegen, MipsCodegens and\nX86Codegen (see compiler/codegen/*/codegen_[Arm|Mips|X86].h).\n\nAdditional minor code, comment and format refactoring.  Some source\nfiles combined, temporary header files deleted and a few file\nrenames to better identify their function.\n\nNext up is combining the Quick and Portable .so files.\n\nNote: building all targets into libdvm-compiler.so increases its\nsize by 140K bytes.  I\u0027m inclined to not bother introducing conditional\ncompilation to limit code to the specific target - the added build and\ntesting complexity doesn\u0027t doesn\u0027t seem worth such a modest size savings.\n\nChange-Id: Id9c5b4502ad6b77cdb31f71d3126f51a4f2e9dfe\n"
    },
    {
      "commit": "fa57c47f1b72916371a9c2d5c1389219bce655b4",
      "tree": "3ca3bc1cb3c91545f6c3514af296213348c09a99",
      "parents": [
        "aad94383fc41e8f8770f0b2144f766a2ffa772e7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 12:06:18 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 12:35:29 2012 -0800"
      },
      "message": "Quick Compiler: Shoot the Camel\n\nAnother step towards moving the Quick Compiler from the old\nDalvik coding style to Art\u0027s coding style.  In this CL, Camel-case\nlocals, struct variables and arguments are converted to lower-case\nwith underscore names.  Most of the name changes were formulistic,\nbut I also took this opportunity to change the old \"printMe\" into\nthe more traditional \"verbose\", and shorten cUnit to cu.\n\nNo logic changes.\n\nChange-Id: I64b69b28a8357d5cc0abc1dc975954c91abd9b45\n"
    },
    {
      "commit": "52a77fc135f0e0df57ee24641c3f5ae415ff7bd6",
      "tree": "ddbe40349dce79bb89a6f2d68ddb4caf903b15e9",
      "parents": [
        "024c463536180ce1e464bbb9853ab427dfac35f5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 19:50:46 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 21:38:31 2012 -0800"
      },
      "message": "Quick Compiler function renaming\n\nMove the Quick compiler\u0027s function naming to Art coding conventions. Will\nbe done is pieces: names first, then arguments and locals.  Also removed\nsome dead code and marked statics for the top level source files\n\nNo logic changes aside from eliminating a few useless exported \"oat\"\nroutines.\n\nChange-Id: Iadaddc560942a0fc1199ba5b1c261cd6ac5cfd9a\n"
    },
    {
      "commit": "eaf09bc65f9a10d12befcdb239156938c9bceef2",
      "tree": "e3b85c241b24aa058a413363e4f9c94f4c76d4d6",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 14:51:41 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 16 16:48:09 2012 -0800"
      },
      "message": "Quick compiler: more refactoring\n\nFocus on header file cleanup here.  Note: target_list.h\nis transitional, and upcoming CLs will do additional header\nfile reorganization.\n\nChange-Id: If86e1a8c1c43305762fe37b157a9d3c17d911ea7\n"
    },
    {
      "commit": "efc6369224b036a1fb77849f7ae65b3492c832c0",
      "tree": "e61d88a5b3b787d782b2fa02b90947ba9a115458",
      "parents": [
        "a3c6849b160cd5d2b2ca6e6fa9d9df834def85ee"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 14 16:31:52 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 09:47:38 2012 -0800"
      },
      "message": "Quick compiler source reorganizatio - part 1\n\nA step towards cleanup of the quick compiler source.  In this\nCL we rename all files to Art standards, combine some of the\nold target-specific files that may have made sense in the\nJIT, but no longer do.  Also removed some codegen/\u003ctarget\u003e/\nsubdirectories, combined and deleted some existing files.\n\nStill quite a bit of work to do in cleaning up header files,\ngetting some better consistency in what codegen functions\ngo where.  That will happen in later CLs.\n\nNo logic changes in this CL - just renaming and moving stuff around\n\nChange-Id: Ic172cd3b76d4c670f8e4d5fdd4a3e967db3f4c1e\n"
    },
    {
      "commit": "0967a25d1482d8f7b4a26c5926263e7ffa63189f",
      "tree": "2509d3e60465288ef7146e2203d7ae9a4c8bc3c3",
      "parents": [
        "8320f3867c02bae9bef6cdab267820cb7b412781"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 14 10:43:54 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 14 20:42:55 2012 -0700"
      },
      "message": "Quick compiler code layout\n\nMinor tweaks to the code layout for the Quick compiler.  Repair\ndamage caused by bitcode conversion \u0026 additionally add a new\noptimization pass to move unlikely targets to the end of the code\n(flipping branch conditons if necessary).  For now, this will only\nbe applied to target blocks which do an explicit throw and are\ndominated by a block terminated by a conditional branch.  Later,\nwe might want to generalize this capability to enable profile\nguidance.\n\nAlso, tweaked the basic block combine pass to include blocks\nterminated by array access operations whose null check and\nrange checks have been eliminated.\n\nWith this CL, the run-time performance difference between\nart-buzbee and art-Quick is in the noise.\n\nChange-Id: Iaf9921220eb6cb33c2418c76e7a6b7b31472dace\n"
    },
    {
      "commit": "b7574cfbc05afde46c956235366ad200643275fc",
      "tree": "4f2c0cf7d82b1809e93c9e58ad148f1e39eeabf6",
      "parents": [
        "1a0806c6847a9dc5cc6d73460d7e8ad3183b5c49"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 10 11:04:09 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Sep 10 11:04:09 2012 -0700"
      },
      "message": "Fix basic block combine regression\n\nWe were missing one of the formats in the range check mask, resulting\nin a basic block combine that shouldn\u0027t have happened.  This was the\ncause of host tests 003 and IntMath failures.\n\nChange-Id: I60d1f508b06e64dab3975e79ab22b7d525a580f5\n"
    },
    {
      "commit": "d1643e41ef242ae656f667bf3c8b0324635cefd3",
      "tree": "6a14d7abb876c850129117304ea33afd619a0eb3",
      "parents": [
        "22f454c7d349c439c774c5d79b32514b190fd531"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 05 14:06:51 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Sep 09 13:57:33 2012 -0700"
      },
      "message": "Basic block combine pass\n\nCombine basic blocks terminated by instruction that we have since\nproven not to throw.  This change is intended to relieve some of the\ncomputational load for llvm by reducing the number of basic blocks\nit has to contend with.\n\nAlso:\n  Add stats to show how successful check elimination is.\n  Restore mechanism to disable some expensive optimization passes when\n  compiling large methods.\n\nChange-Id: I7fae22160988cbefb90ea9fb1cc26d7364e8d229\n"
    },
    {
      "commit": "bff2465abb4b0c097623c82f18a1307ea890bff1",
      "tree": "aee1448eec34b9e5bf8c41fc9f83559ca5f49fd7",
      "parents": [
        "d0379748bd05b949a8e2193b44ddf4950f9569a8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun May 06 16:22:05 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun May 06 16:30:57 2012 -0700"
      },
      "message": "[Compiler] Add object ref discovery\n\nPreviously, the compiler ran a type inference pass to identify floating\npoint uses for register allocation.  The grand plan involves moving\nall type inference into the Art compiler driver (using the results from\nverification).  As a short-term workaround, this CL adds object reference\ndiscovery to the type inference pass.  This is needed for LLVM-IR generation.\n\nChange-Id: I655806264181bfd26ab9340582a02c657cd3f678\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": "9c044ce5f76e9bfa17c4c1979e9f8c99ae100695",
      "tree": "6eefdf59583cd75f1e77814b85bbf1222addd395",
      "parents": [
        "3fa13791c51985d9956d01bc465de6d36c3390d3"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Mar 18 13:24:07 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Mar 18 18:17:16 2012 -0700"
      },
      "message": "Support for promoting Method* and compiler temps\n\nThis CL completes the support for allowing compiler-generated\ndata to be treated as a Dalvik register and become subject to\nthe normal register promotion and live temp tracking machinery.\n\nAlso:\n   o Removes some vestigal and useless Method* loads from\n     range argument setup.\n   o Changes the Method* pseudo vReg number from -1 to -2 to\n     avoid a conflict with the 0xffff marker in the register map.\n   o Removes some experimental code for CSE at the basic block\n     level.\n\nChange-Id: I112a8bbe20f95a8d789f63908c84e5fa167c74ac\n"
    },
    {
      "commit": "239c4e72b5a69754e1d6879be5ba1f85150655c1",
      "tree": "45404157d7a684a739d218dc5a9ee3c0a6cdab19",
      "parents": [
        "8ed14528fb70a9ba7cc5e471317d08dc629cbc23"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 16 08:42:29 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Mar 17 16:52:32 2012 -0700"
      },
      "message": "Loop detection, improved reg allocation\n\nDetect loops and loop nesting depth, and use the latter to\nweight register uses (which are then used to determine which\nregisters to promote).\n\nAlso:\n\n   o Fixed typo that prevented squashing of useless fp reg copies\n\n   o Rescheduled array access checks to hide latency of limit load.\n\n   o Add basic-block optimization pass to remove duplicate range\n     checks.\n\n   o Fixed bug that prevented recognition of redundant null\n     checks following iput-wide and aput-wide.\n\nChange-Id: Icfbae39e89b1d14b8703ad6bbb0b29c0635fed1e\n"
    },
    {
      "commit": "e196567b50a084b163937ea9605b51ee1e48adeb",
      "tree": "709964fc09a36132490d9a3a4805983ec80c57e3",
      "parents": [
        "13b835a45f3dccff1c6d024ad82a2044831c7c41"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Mar 11 18:39:19 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 13 20:59:18 2012 -0700"
      },
      "message": "SSA rework and support compiler temps in the frame\n\nAdd ability for the compiler to allocate new frame temporaries\nthat play nicely with the register allocation mechanism.  To do this\nwe assign negative virtual register numbers and give them SSA names.\nAs part of this change, I did a general cleanup of the ssa naming.\nAn ssa name (or SReg) is in index into an array of (virtual reg, subscript)\npairs.  Previously, 16 bits were allocated for the reg and the subscript.\nThis CL expands the virtual reg and subscript to 32 bits each.\n\nMethod* is now treated as a RegLocation, and will be subject to\ntemp register tracking and reuse.  This CL does not yet include\nsupport for promotion of Method* - that will show up in the next one.\n\nAlso included is the beginning of a basic block optimization pass (not\nyet in a runable state, so conditionally compiled out).\n\n(cherry picked from commit f689ffec8827f1dd6b31084f8a6bb240338c7acf)\n\nChange-Id: Ibbdeb97fe05d0e33c1f4a9a6ccbdef1cac7646fc\n"
    },
    {
      "commit": "719ace4734f519c67fd2c1ff7a232c079309a615",
      "tree": "ccce9abb445238e4a00c9d4bfba093fb16bc8c7c",
      "parents": [
        "b3cd1229e6904365ca0ca2a7bbc4701ad1908154"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 18:06:03 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 18:06:03 2012 -0800"
      },
      "message": "Stop saying \"typedef struct\" and \"typedef enum\".\n\nSeeing new instances of this C-ism go in makes me a sad panda.\n\nChange-Id: Ie3dd414b8b5e57a4164e88eb2d8559545569628d\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": "99ba9640caf4c995b81295bd724dafa338a53c5b",
      "tree": "6f57257bc4205328aff0b7fb8d16f8945dea722c",
      "parents": [
        "20e1ebb6d7b9959971baf0903beb0c7f7169e716"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 25 14:23:14 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 25 16:56:37 2012 -0800"
      },
      "message": "More compilation performance tuning\n\nA man walks into a doctor\u0027s office and says:\n   \"Hey Doc, it hurts when I do this\"\nDoc says:\n   \"Then don\u0027t do that\"\n...\n\nAlthough the last round of tuning the dataflow analsis code\nresulted in a large speedup, we are still faced with a\nsignificant number of (primarily initializer) methods which\nblow up into a large number of basic blocks.  We spend\nmuch time and memory uselessly analyzing these (both because\nthey aren\u0027t run enough to matter, and even if they were, there\nisn\u0027t much optimization we can do).\n\nThis CL attempts to recognize such methods, and skips the\nmost expensive analysis.  The worst-case application that\nwe\u0027ve been looking at gets a 35% boost in compilation speed,\nbut perhaps more significantly, the compiler\u0027s peak heap\nusage drops from 370M to 162M.  (Note: even 162M is much too\nhigh - I\u0027ll be looking at further reducing worst-case memory\nusage next).\n\nChange-Id: I93cd15c846043cf46860afa562957921fc2de464\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": "67bc236a207852d652f6ddeab0a90efc1bd111bb",
      "tree": "eea13fcb90ad8ce5b2b3819fb8caf0281583cd61",
      "parents": [
        "95caa791e560da97363c0c0d22bfda4a7e7377c3"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Oct 11 18:08:40 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Oct 14 10:54:03 2011 -0700"
      },
      "message": "Register promotion fix\n\nRestructured the type inference mechanism, added lots of DCHECKS,\nbumped the default memory allocation size to reflect AOT\ncompilation and tweaked the bit vector manipulation routines\nto be better at handling large sparse vectors (something the old\ntrace JIT didn\u0027t encounter enough to care).\n\nWith this CL, optimization is back on by default.  Should also see\na significant boost in compilation speed (~2x better for boot.oat).\n\nChange-Id: Ifd134ef337be173a1be756bb9198b24c5b4936b3\n"
    },
    {
      "commit": "43a364291dcdfe08e530e9568748359735dd7442",
      "tree": "1141a3f0f91c527dfe28796e88f166d2bc0ed7fd",
      "parents": [
        "303b01ed0d36017371e29b1f1e209dd19896ac9e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 14:00:13 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 14 15:40:34 2011 -0700"
      },
      "message": "Fix null check elimination\n\nThe existing null check elimination mechanism suffered from the same\nlimitation as the SSA renaming: it took shortcuts that were valid in\na trace compilation world, but not in a method compilation world.\n\nThis CL replaces the old mechanism, and additionally takes advantage\nof some the fact that \"this\" is always non-null, as are objects returned\nfrom OP_NEW_* (thanks Ian!).\n\nTwo test cases added.  The one for ensuring that unnecessary null checks\nare elminated requires manual inspection.  The other - that we don\u0027t\neliminate a necessary null check - is disabled until exceptions are working.\n\nChange-Id: I2a9b72741f56617bf609e4d7c20244796c988f28\n"
    },
    {
      "commit": "408f79aeb676251ba35667a64e86c20638d7cb0b",
      "tree": "419c9dca6bc1fd5c13a997d4fad62f92960e5e45",
      "parents": [
        "72025e5f8f2743b4af33453df5b3bddada2078db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:22:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:56:54 2011 -0700"
      },
      "message": "Add validate object, clean up stack indirect reference table.\n\nChange-Id: Ifb329ae7d3bede3e95d48e6761cee1412a33d867\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"
    }
  ]
}
