)]}'
{
  "log": [
    {
      "commit": "06fbd65e09438f2a3eb285e353a9800a361caac8",
      "tree": "55a8b1fc951221303fe543b80a52840fee196187",
      "parents": [
        "6936eeeae7125068c12c7a68087eefd612652770"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 01 19:54:39 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 01 19:56:18 2015 +0100"
      },
      "message": "Fix test 421-large-frame.\n\n- Don\u0027t force the optimizing compiler to compile a huge\n  method by reducing the number of local variables and\n  instructions in Main.$opt$LargeFrame.\n- Prevent the optimizing compiler from \"optimizing too much\"\n  (through constant folding and inlining), so as to preserve\n  a large stack frame in Main.$opt$LargeFrame.\n- Keep the original huge method (without the $opt$ marker)\n  as Main.HugeFrame.\n\nBug: 20020727\nChange-Id: I49bf8f03146020bd94bd392684e605d7bb6daf1e\n"
    },
    {
      "commit": "48c60f298bd4c961c63fa9b0282c8f9112afdbba",
      "tree": "3544eff9ee5e621d50732e029b2f65d55102e5b4",
      "parents": [
        "383993c1dc58c13f7570b9945037d6f83094785b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 13:48:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 13:48:19 2014 +0000"
      },
      "message": "Add a branch to ensure the test is compiled.\n\nThe compiler will now not compile large methods with no branch.\n\nChange-Id: Iaea284c648f7f3f754cb8ec721ad2ecffbd2f6af\n"
    },
    {
      "commit": "775ef49bad8e8d9d02fc5968858dce6a00a78475",
      "tree": "eb61ed86fcaa5c168b1bbb301c931179f107b7e7",
      "parents": [
        "e03864e99f5ab0e27a48a17275122ad8f324b615"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 04 17:43:11 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 04 17:43:11 2014 +0000"
      },
      "message": "Fix store instructions to large frames in ARM opt. compiler.\n\nWhen accessing a stack frame at a large offset, use an\nadditional core register (R5 or R6) as a temporary register\nwhenever IP contains the value to store (and thus cannot be\nused by art::Thumb2Assembler::StoreToOffset as a temporary\nregister to compute the memory address where the value is\nto be stored).  The previous value of R5 (or R6) is saved\non the stack before the emission of the store instruction\nand restored afterwards.\n\nChange-Id: Ic5fd5ab2c09d8327dd1f0f241d40d2c397ce64cd\n"
    }
  ]
}
