)]}'
{
  "log": [
    {
      "commit": "bacfec30ee9f2f6fdfd190f11b105b609938efca",
      "tree": "1fb08fa38b27627ab59a54895ef098b43bb70ce1",
      "parents": [
        "ff5298ff1640b730ee62c90ca78fc96b7ee82ec4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 14 15:54:36 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 17 11:19:35 2014 +0000"
      },
      "message": "[optimizing compiler] Add REM_INT, REM_LONG\n\n- for arm, x86, x86_64\n- minor cleanup/fix in div tests\n\nChange-Id: I240874010206a5a9b3aaffbc81a885b94c248f93\n"
    },
    {
      "commit": "981e45424f52735b1c61ae0eac7e299ed313f8db",
      "tree": "b52598c87d7e1cd030e570da2a59ee26199ae481",
      "parents": [
        "4594ad627a48e249ee1680e954558dea15f0d133"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 14 11:47:14 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 14 11:51:41 2014 +0000"
      },
      "message": "Add support for int-to-char in the optimizing compiler.\n\n- Add support for the int-to-char Dex instruction in the\n  optimizing compiler.\n- Implement the ARM and Thumb-2 UBFX instructions and add\n  tests for them.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  byte to char, short to char, int to char (and char to\n  char!) HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: I5cd4c6d86f0f6a966c059715b98db35cc8f9de76\n"
    },
    {
      "commit": "7bdabab1b6a37248bcc0e16893e43f91b4218d29",
      "tree": "5087b4d6062deba3e105d1fd49f17bc0ea73db4c",
      "parents": [
        "346bcbde27e4620ed1e7bce91728f22069a371f0",
        "51d3fc40637fc73d4156ad617cd451b844cbb75e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 13 18:44:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 13 18:44:20 2014 +0000"
      },
      "message": "Merge \"Add support for int-to-byte in the optimizing compiler.\""
    },
    {
      "commit": "51d3fc40637fc73d4156ad617cd451b844cbb75e",
      "tree": "21669a66124a23dfc78a8c3f1d8b89415bfb0271",
      "parents": [
        "d94a0a1d2868baaab49f4d2835bca086d98cf763"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 13 14:11:42 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 13 17:30:06 2014 +0000"
      },
      "message": "Add support for int-to-byte in the optimizing compiler.\n\n- Add support for the int-to-byte Dex instruction in the\n  optimizing compiler.\n- Implement the ARM and Thumb-2 SBFX instructions.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  char to byte, short to byte and int to byte\n  HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ic8b8911b90d4b5281fad15bcee96bc3ee85dc577\n"
    },
    {
      "commit": "225ff81cd34e20c97897a6b3f755a0a284b08f46",
      "tree": "1c885133a5f1f6f8102792083746c0987df671d5",
      "parents": [
        "a21f598fd4dfdb95dc8597d3156120cc20d94c02"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 13 16:46:39 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 13 16:46:39 2014 +0000"
      },
      "message": "[optimizing compiler] Rename dex_offset to dex_pc in the builder\n\nThe term dex offset comes from Dalvik where these were addresses in\nmemory. Currently these should be dex PCs, namely offsets from the start\nof code items. Quick lacks this clean up but there\u0027s no need to bring\nover the convention to optimizing.\n\n(thanks to irogers for the commit message text)\n\nChange-Id: If86c0cf021a06f04a21462053e9d5f31bba7f65d\n"
    },
    {
      "commit": "d6fb6cfb6f2d0d9595f55e8cc18d2753be5d9a13",
      "tree": "2f8192e49c9debeba18e73e28b9c789adf8d2eef",
      "parents": [
        "f97f9fbfdf7f2e23c662f21081fadee6af37809d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 11 19:07:44 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 12 19:43:32 2014 +0000"
      },
      "message": "[optimizing compiler] Add DIV_LONG\n\n- for backends: arm, x86, x86_64\n- added cqo, idivq, testq assembly for x64_64\n- small cleanups\n\nChange-Id: I762ef37880749038ed25d6014370be9a61795200\n"
    },
    {
      "commit": "f97f9fbfdf7f2e23c662f21081fadee6af37809d",
      "tree": "aa5c7b6d42fc1dcd26f4a4f4d75fa488c575091a",
      "parents": [
        "0eaf65edf1b2af63a3eeb77ee1864d84d3154d1e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 11 15:38:19 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 12 18:38:49 2014 +0000"
      },
      "message": "[optimizing compiler] add HTemporary support for long and doubles\n\nChange-Id: I5247ecd71d0193050484b7632c804c9bfd20f924\n"
    },
    {
      "commit": "9574c4b5f5ef039d694ac12c97e25ca02eca83c0",
      "tree": "2ad3cb7ffaf3579b9ca2a7bb0d7d7e99b3c758b6",
      "parents": [
        "59321e0e10ea09694efecf6154704e2743b9bffd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 13:19:37 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 13:55:36 2014 +0000"
      },
      "message": "Implement and/or/xor in optimizing.\n\nChange-Id: I7cf6da1fd334a7177a5580931b8f174dd40b7cec\n"
    },
    {
      "commit": "b7baf5c58d0e864f8c3f889357c51288aed42e61",
      "tree": "a665b8b4935f99eab4bb81ad703fe0ec4efc1d10",
      "parents": [
        "15136cb06f0a0fd5f60a832c33870de53c74696a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 11 16:29:44 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 11:41:19 2014 +0000"
      },
      "message": "Implement monitorenter/monitorexit.\n\nPretty simple as they just invoke the runtime.\n\nChange-Id: I5fcb2c783deac27e55e28d8b3da3e68ea4b77363\n"
    },
    {
      "commit": "15136cb06f0a0fd5f60a832c33870de53c74696a",
      "tree": "ce01322ba56b4678f2a0320a3a5a45115511d89e",
      "parents": [
        "9ffeab50f7675ba69c98efdf3815540eafe79a0e",
        "946e143941d456a4ec666f7f54719c65c5aa3f5d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 12 11:33:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 12 11:33:42 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add support for long-to-int in the optimizing compiler.\"\"\""
    },
    {
      "commit": "0d8db99ac5d838f81e0d3be83a5b00d5475edf86",
      "tree": "de1bb824aaf8cb2320ded80394dd65a44355fa52",
      "parents": [
        "36750ca45fcbe4706d3a3419cf7f988a129a876c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 11 14:40:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 09:33:10 2014 +0000"
      },
      "message": "Implement invokesuper in optimizing.\n\n- Ensure dex2oat is in PIC mode, as this will drive the decisions\n  made in the compiler driver, and optimizing only suppots PIC\n  anyway.\n\n- Since invokesuper is sharpened into invoke-direct, also support\n  sharpening of invokeinterface and invokevirtual.\n\nChange-Id: I0a1bd79a13dc1c9e67e3cb11d38f0cd4459968ae\n"
    },
    {
      "commit": "57a88d4ac205874dc85d22f9f6a9ca3c4c373eeb",
      "tree": "af321a2f2d4555f56e0ffcbe31cb4e313b8d35c7",
      "parents": [
        "401da919c67ceb8fbcac81596327ecc10b73389b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 10 15:09:21 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 09:18:41 2014 +0000"
      },
      "message": "Implement checkcast for optimizing.\n\n- Ended up not using HTypeCheck because of how\n  instanceof and checkcast end up having different logic\n  for code generation.\n\n- Fix a x86_64 assembler bug triggered by now enabling\n  more methods to be compiled. Difficult to test today\n  without b/18117217.\n\nChange-Id: I3022e7ae03befb1d10bea9637ad21fadc430abe0\n"
    },
    {
      "commit": "946e143941d456a4ec666f7f54719c65c5aa3f5d",
      "tree": "4535eb320a60043b18735a8496a288f6f8377cb7",
      "parents": [
        "d6425d7bb909b668341d9781c567f35f6d10ea16"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 17:35:19 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 17:35:19 2014 +0000"
      },
      "message": "Revert \"Revert \"Add support for long-to-int in the optimizing compiler.\"\"\n\nThis reverts commit 3adfd1b4fb20ac2b0217b5d2737bfe30ad90257a.\n\nChange-Id: Iacf0c6492d49267e24f1b727dbf6379b21fd02db\n"
    },
    {
      "commit": "3adfd1b4fb20ac2b0217b5d2737bfe30ad90257a",
      "tree": "fe5ffa4519a798cf5de4dbb724f38541562d571d",
      "parents": [
        "13e86ed02c6256b704ba669cfe5f2c44f9d9f91f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 14:48:08 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 14:48:08 2014 +0000"
      },
      "message": "Revert \"Add support for long-to-int in the optimizing compiler.\"\n\nThis reverts commit 647b96f29cb81832e698f863884fdba06674c9de.\n\nChange-Id: I552f23585463c676acbd547521b4d3ee5c0342eb\n"
    },
    {
      "commit": "647b96f29cb81832e698f863884fdba06674c9de",
      "tree": "1a4b5d9c2dc0cec47387838eb33b55b01838b615",
      "parents": [
        "666c732cfa211abf44ed90120a87bf8c18138e55"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 12:26:26 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 11 12:26:26 2014 +0000"
      },
      "message": "Add support for long-to-int in the optimizing compiler.\n\n- Add support for the long-to-int Dex instruction in the\n  optimizing compiler.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  long-to-int HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n- Also fix comments in test/415-optimizing-arith-neg and\n  in test/416-optimizing-arith-not.\n\nChange-Id: I3084af30f2a495d178362ae1154dc7ceb7bf3a58\n"
    },
    {
      "commit": "9806199033fc2fb61bfd2260f0156d1b38d56beb",
      "tree": "14a5cd067fb01ace19fb5e0f7d494bd9e8744845",
      "parents": [
        "255507d9c695aa9c774b882308faa8278382006b",
        "52839d17c06175e19ca4a093fb878450d1c4310d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 10 10:36:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 10 10:37:00 2014 +0000"
      },
      "message": "Merge \"Support invoke-interface in optimizing.\""
    },
    {
      "commit": "52839d17c06175e19ca4a093fb878450d1c4310d",
      "tree": "552ea632ad4d1f688bdfd04b66102e25312bd237",
      "parents": [
        "a453307957afdc3ef0a7988025539ab8919464bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 07 17:47:25 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 10 10:33:37 2014 +0000"
      },
      "message": "Support invoke-interface in optimizing.\n\nChange-Id: Ic18d7c3d2810557231caf0571956e0c431f5d384\n"
    },
    {
      "commit": "dadf3173e1070ccab89b86b2ef2ab9fb7030856f",
      "tree": "023f19e8ef5d6c1f0eb5b85a6d4b46b6db145d3d",
      "parents": [
        "10d543c44ba878ba2037b0b945ce259b0a5dd605"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 07 16:36:02 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 07 16:36:02 2014 +0000"
      },
      "message": "Silent cpplint on dex instruction switch.\n\nChange-Id: I57a2307c80d38ba29a16cac729bcf3a491549c30\n"
    },
    {
      "commit": "6f5c41f9e409bc4da53b5d7c385202255e391e72",
      "tree": "bea48b3f23fdac7d566dd3b32dde1f86014b5a02",
      "parents": [
        "86fe4e41720cab85e3e40c45c0436521e56b25d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 06 08:59:20 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 07 15:32:37 2014 +0000"
      },
      "message": "Implement instanceof in optimizing.\n\n- Only fast-path for now: null or same class.\n- Use pQuickInstanceofNonTrivial for slow path.\n\nChange-Id: Ic5196b94bef792f081f3cb4d15157058e1381e6b\n"
    },
    {
      "commit": "52e832b1278449e62d9eb502d54d5ff18f8606ed",
      "tree": "14db2240db9d0cec5551f8588a5901bd1bc081fe",
      "parents": [
        "eb71b3fc2a18ac649dc3743f4ec28f781932030a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 06 15:15:31 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 07 13:54:29 2014 +0000"
      },
      "message": "Support floats and doubles in fields.\n\nChange-Id: I19832106633405403f0461b3fe13b268abe39db3\n"
    },
    {
      "commit": "0f00db73c6e0ea423b4c9e871b5bb06d9627e3b0",
      "tree": "ff56c25633459e27a7740c77d4af83c2f0b3e71d",
      "parents": [
        "f55996d6b4a672e09fbe3a3563646a7682719b4a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 18:19:23 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 18:19:23 2014 +0000"
      },
      "message": "Fixed BuildCheckedDiv signature\n\nThe second_reg might actually be a constant.\n\nChange-Id: I08cecc41e3d65ab73b41eba2aca702dea8e1ed95\n"
    },
    {
      "commit": "adc3e13db74c193302ac9d56735924cad32083cc",
      "tree": "738db270af4fbf33a6dfa1a025edc1b1c640848a",
      "parents": [
        "9b6c62b82e3d40d70d541920d5f7f81ad517bc01",
        "3dbcb38a8b2237b0da290ae35dc0caab3cb47b3d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 06 17:33:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 06 17:33:06 2014 +0000"
      },
      "message": "Merge \"Support float \u0026 double negation in the optimizing compiler.\""
    },
    {
      "commit": "9b6c62b82e3d40d70d541920d5f7f81ad517bc01",
      "tree": "c75397fca9adddde7f6d3ab0fbc30bdaa7e443c4",
      "parents": [
        "e257d2c27f5565fb55de9122e093371ea2671271",
        "865fc88fdfd006ce0362c2c0d55c66a7bffdab61"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 17:28:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 06 17:28:22 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Add DIV_INT_2ADDR\""
    },
    {
      "commit": "865fc88fdfd006ce0362c2c0d55c66a7bffdab61",
      "tree": "35670296d924c9619a18a4149134e069de6ae48d",
      "parents": [
        "d375fabd9e8cbb805fd12a33d94aa0729432ff3a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 17:09:03 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 17:21:16 2014 +0000"
      },
      "message": "[optimizing compiler] Add DIV_INT_2ADDR\n\nChange-Id: I38fc7e216f820d8ccc8bbf8b8e7a67b75fb9de87\n"
    },
    {
      "commit": "de58ab2c03ff8112b07ab827c8fa38f670dfc656",
      "tree": "c872bfbcad1e90845008140bbddcc43e56dc19d2",
      "parents": [
        "3ed86e4e98dfe1b05c9a03aa2aee42c145a018c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 05 12:46:03 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 06 16:49:52 2014 +0000"
      },
      "message": "Implement try/catch/throw in optimizing.\n\n- We currently don\u0027t run optimizations in the presence of a try/catch.\n- We therefore implement Quick\u0027s mapping table.\n- Also fix a missing null check on array-length.\n\nChange-Id: I6917dfcb868e75c1cf6eff32b7cbb60b6cfbd68f\n"
    },
    {
      "commit": "3dbcb38a8b2237b0da290ae35dc0caab3cb47b3d",
      "tree": "98ed87e77213fc36fd72b2dbab71156f9176d4ee",
      "parents": [
        "55dcfb5e0dd626993bb2b7b9f692c1b02b5d955f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 28 17:30:07 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 06 16:40:59 2014 +0000"
      },
      "message": "Support float \u0026 double negation in the optimizing compiler.\n\n- Add support for the neg-float and neg-double Dex\n  instructions in the optimizing compiler.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  float and double HNeg nodes.\n- Add related tests to test/415-optimizing-arith-neg.\n\nChange-Id: I29739a86e13dbe6f64e191641d01637c867cba6c\n"
    },
    {
      "commit": "d375fabd9e8cbb805fd12a33d94aa0729432ff3a",
      "tree": "b33d92eeefbbf93d60d174ee0b5a6e7988a3cfee",
      "parents": [
        "d0d4852847432368b090c184d6639e573538dccf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 15:03:23 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 15:03:23 2014 +0000"
      },
      "message": "Fix build.\n\nBuildCheckedDiv doesn\u0027t handle 12x instruction correctly.\n\nChange-Id: I59571397cfb1b7ee89538e8e0b57725b863b0ee1\n"
    },
    {
      "commit": "d0d4852847432368b090c184d6639e573538dccf",
      "tree": "47e31fe860ff1c3ace2f3f5945aa69689d42d998",
      "parents": [
        "a88b7b93e28ea86969dd3ec6a6bf6929d697fc31"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 04 16:40:20 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 06 14:42:58 2014 +0000"
      },
      "message": "[optimizing compiler] Add div-int and exception handling.\n\n- for backends: arm, x86, x86_64\n- fixed a register allocator bug: the request for a fixed register for\nthe first input was ignored if the output was kSameAsFirstInput\n- added divide by zero exception\n- more tests\n- shuffle around some code in the builder to reduce the number of lines\nof code for a single function.\n\nChange-Id: Id3a515e02bfbc66cd9d16cb9746f7551bdab3d42\n"
    },
    {
      "commit": "dff1f2812ecdaea89978c5351f0c70cdabbc0821",
      "tree": "5305173d341263ad32deb98c0299ee8bad03baa9",
      "parents": [
        "5e5632ff1651adbf95faaf8fb3239a36f9f61124"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 05 14:15:05 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 05 16:51:59 2014 +0000"
      },
      "message": "Support int-to-long conversions in the optimizing compiler.\n\n- Add support for the int-to-float Dex instruction in the\n  optimizing compiler.\n- Add a HTypeConversion node type for control-flow graphs.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  int-to-float HTypeConversion nodes.\n- Add a 64-bit \"Move doubleword to quadword with\n  sign-extension\" (MOVSXD) instruction to the x86-64\n  assembler.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ieb8ec5380f9c411857119c79aa8d0728fd10f780\n"
    },
    {
      "commit": "424f676379f2f872acd1478672022f19f3240fc1",
      "tree": "bdd8fbb9c2401465d9a0536e94dec74acc8b4f3b",
      "parents": [
        "793d1023785f81eb8e29a3eb67fec17d7ee7dcbe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 03 14:51:25 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 04 11:23:08 2014 +0000"
      },
      "message": "Implement CONST_CLASS in optimizing compiler.\n\nChange-Id: Ia8c8dfbef87cb2f7893bfb6e178466154eec9efd\n"
    },
    {
      "commit": "b5f62b3dc5ac2731ba8ad53cdf3d9bdb14fbf86b",
      "tree": "fb2d33e43de1476af33112f263fd3c3a775917d0",
      "parents": [
        "29ce77f654412dbb5fb3d5949da4053952917101"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 30 10:58:41 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 31 12:21:53 2014 +0000"
      },
      "message": "Support for CONST_STRING in optimizing compiler.\n\nChange-Id: Iab8517bdadd1d15ffbe570010f093660be7c51aa\n"
    },
    {
      "commit": "19a19cffd197a28ae4c9c3e59eff6352fd392241",
      "tree": "265b971afd0e33afc8986317aea2f5a6fe817aec",
      "parents": [
        "7c049c1f34220b0dc1a7f68f3b30f388bae7bdb9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 22 16:07:05 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 29 13:01:48 2014 +0000"
      },
      "message": "Add support for static fields in optimizing compiler.\n\nChange-Id: Id2f010589e2bd6faf42c05bb33abf6816ebe9fa9\n"
    },
    {
      "commit": "7c4954d429626a6ceafbf05be41bf5f840894e44",
      "tree": "9d4a088cc2e259235819f105a21e5a3d58bd0139",
      "parents": [
        "4816ecfc1b2d544685ec5edcdeaad6870f6bfd7e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 28 16:57:40 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 28 17:53:33 2014 +0000"
      },
      "message": "[optimizing compiler] Add division for floats and doubles\n\nbackends: x86, x86_64, arm.\n\nAlso:\n- ordered instructions based on their name.\n- add missing kNoOutputOverlap to add/sub/mul.\n\nChange-Id: Ie47cde3b15ac74e7a1660c67a2eed1d7871f0ad0\n"
    },
    {
      "commit": "705664321a5cc1418255172f92d7d7195cf60a7b",
      "tree": "bdb7a60edff3e13c9bb6658d9ba20d3541a9c50d",
      "parents": [
        "2deace28b16d3161ccd6a85a2c577e83f4b25364"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 24 16:20:17 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 27 17:33:47 2014 +0000"
      },
      "message": "Add long bitwise not instruction in the optimizing compiler.\n\n- Add support for the not-long (long integer one\u0027s\n  complement negation) instruction in the optimizing\n  compiler.\n- Add a 64-bit NOT instruction (notq) to the x86-64\n  assembler.\n- Generate ARM, x86 and x86-64 code for long HNot nodes.\n- Gather not-related tests in test/416-optimizing-arith-not.\n\nChange-Id: I2d5b75e9875664d6032d04f8401b2bbb84506948\n"
    },
    {
      "commit": "64727aeef8f4243f2058a19a43a937248a60dae1",
      "tree": "9bf09ff29bb49d4be382e49822300668913f18e5",
      "parents": [
        "8bde036ebd74ce94477e65077bed6dea9c29616b",
        "2e07b4f0a84a7968b4690c2b1be2e2f75cc6fa8e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 24 10:48:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 24 10:48:39 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Implement long negate instruction in the optimizing compiler.\"\"\""
    },
    {
      "commit": "32da24bb26885a9877adcef5b53f283d44b622d2",
      "tree": "eae9d56de1bb0c156f5ea310b83a7aa7027515e2",
      "parents": [
        "02567379e7099682345fd59d45a23e17711c9ddd",
        "8d6ae524ed5d2fed1f9e789d6de9764d374afa43"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 24 10:44:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 24 10:44:51 2014 +0000"
      },
      "message": "Merge \"Fix wrong unsigned to signed conversions.\""
    },
    {
      "commit": "2e07b4f0a84a7968b4690c2b1be2e2f75cc6fa8e",
      "tree": "2fc5c75594b2cf8be1d6bd295d36c627af1651fe",
      "parents": [
        "02567379e7099682345fd59d45a23e17711c9ddd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:12:09 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 24 11:22:59 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement long negate instruction in the optimizing compiler.\"\"\n\nThis reverts commit 30ca3d847fe72cfa33e1b2473100ea2d8bea4517.\n\nChange-Id: I188ca8d460d55d3a9966bcf31e0588575afa77d2\n"
    },
    {
      "commit": "8d6ae524ed5d2fed1f9e789d6de9764d374afa43",
      "tree": "3283f899900f19ecca8540b680755f44d5d70d1c",
      "parents": [
        "46fdec13b6dcaf932aa9fb1338f32df01aa0d959"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 23 18:32:13 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 23 18:32:13 2014 +0100"
      },
      "message": "Fix wrong unsigned to signed conversions.\n\nThe HIntConstant node takes an int32_t, so we have to keep things signed.\n\nChange-Id: Ib3fa50e87f99118d320cbb381f619d5be9287530\n"
    },
    {
      "commit": "30ca3d847fe72cfa33e1b2473100ea2d8bea4517",
      "tree": "a66582c2cb6026be2f59ba66ff437429b67bbe44",
      "parents": [
        "46fdec13b6dcaf932aa9fb1338f32df01aa0d959"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:07:44 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:07:44 2014 +0100"
      },
      "message": "Revert \"Implement long negate instruction in the optimizing compiler.\"\n\nThis reverts commit 66ce173a40eff4392e9949ede169ccf3108be2db.\n"
    },
    {
      "commit": "66ce173a40eff4392e9949ede169ccf3108be2db",
      "tree": "552bc6275388c3bc6ecd4f549ffcd1422c020f82",
      "parents": [
        "e2b2cbf8bffdf9ee3ece487fde9ac78652b4abaf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 16:38:33 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 17:08:48 2014 +0100"
      },
      "message": "Implement long negate instruction in the optimizing compiler.\n\n- Add support for the neg-long (long integer two\u0027s\n  complement negate) instruction in the optimizing compiler.\n- Add a 64-bit NEG instruction (negq) to the x86-64\n  assembler.\n- Generate ARM, x86 and x86-64 code for integer HNeg nodes.\n- Put neg-related tests into test/415-optimizing-arith-neg.\n\nChange-Id: I1fbe9611e134408a6b8745d1df20ab6ffa5e50f2\n"
    },
    {
      "commit": "096cc029451f4d48a79361ec206b6a7f3f58dd7c",
      "tree": "cf6b316e3a9500355fbb32b89befddcdde8a1e72",
      "parents": [
        "46de37a6a314368cc5fc52743095e48a864ed9b5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 17:01:13 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 17:01:13 2014 +0100"
      },
      "message": "[optimizing compiler] Handle SUB_FLOAT/DOUBLE nodes\n\nAlso add 414-optimizing-arith-sub to\nTEST_ART_BROKEN_OPTIMIZING_ARM64_RUN_TESTS.\n\nChange-Id: Ia1b7ff7857bc0e488b9b8ed8a36efb1a3a9bad36\n"
    },
    {
      "commit": "1cc5f251df558b0e22cea5000626365eb644c727",
      "tree": "5e65a32366261646edce02283a185928adba79b5",
      "parents": [
        "b08f4dcf90215ed49e0b796ab3e609bd605be8ba"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 22 18:06:21 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 10:12:06 2014 +0100"
      },
      "message": "Implement int bit-wise not operation in the optimizing compiler.\n\n- Add support for the not-int (integer one\u0027s complement\n  negate) instruction in the optimizing compiler.\n- Extend the HNot control-flow graph node type and make it\n  inherit from HUnaryOperation.\n- Generate ARM, x86 and x86-64 code for integer HNeg nodes.\n- Exercise these additions in the codegen_test gtest, as there\n  is not direct way to assess the support of not-int from a\n  Java source.  Indeed, compiling a Java expression such as\n  `~a\u0027 using javac and then dx generates an xor-int/lit8 Dex\n  instruction instead of the expected not-int Dex instruction.\n  This is probably because the Java bytecode has an `ixor\u0027\n  instruction, but there\u0027s not instruction directly\n  corresponding to a bit-wise not operation.\n\nChange-Id: I223aed75c4dac5785e04d99da0d22e8d699aee2b\n"
    },
    {
      "commit": "b5bfa96ff20e86316961327dec5c859239dab6a0",
      "tree": "c37c4260f59a5eb79b33e3a81142eefc7bc49390",
      "parents": [
        "46bf5e0759e80bbe69130d6731a95fd07e10507c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 21 18:02:24 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 15:20:25 2014 +0100"
      },
      "message": "Add multiplication for floats/doubles in optimizing compiler\n\nChange-Id: I61de8ce1d9e37e30db62e776979b3f22dc643894\n"
    },
    {
      "commit": "a3d05a40de076aabf12ea284c67c99ff28b43dbf",
      "tree": "acbe183e7637a333bdaaf0910731b053f2be0f26",
      "parents": [
        "2da28f2a9e79a09a4044521dc4d00320fcdcd041"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 20 17:41:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 22 13:49:47 2014 +0000"
      },
      "message": "Implement array creation related DEX instructions.\n\nImplement new-array, filled-new-array, and fill-array-data.\n\nChange-Id: I405560d66777a57d881e384265322617ac5d3ce3\n"
    },
    {
      "commit": "88cb1755e1d6acaed0f66ce65d7a2a4465053342",
      "tree": "6ffdd07aa75a38eae9376bd95d0991a789cd624c",
      "parents": [
        "1e642b5e5b2958ffc1653f5f42f2d091bbd8549e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 20 16:36:47 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 21 13:48:32 2014 +0100"
      },
      "message": "Implement int negate instruction in the optimizing compiler.\n\n- Add support for the neg-int (integer two\u0027s complement\n  negate) instruction in the optimizing compiler.\n- Add a HNeg node type for control-flow graphs and an\n  intermediate HUnaryOperation base class.\n- Generate ARM, x86 and x86-64 code for integer HNeg nodes.\n\nChange-Id: I72fd3e1e5311a75c38a8cb665a9211a20325a42e\n"
    },
    {
      "commit": "34bacdf7eb46c0ffbf24ba7aa14a904bc9176fb2",
      "tree": "e8ed8e40c5f7896a9ac01bf7dcc2e56f40cfc804",
      "parents": [
        "7f758228f7904d2f65f06bfbd2b8ecbb8e8c6a9d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 07 20:23:36 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 17 11:46:45 2014 +0100"
      },
      "message": "Add multiplication for integral types\n\nThis also fixes an issue where we could allocate a pair register even if\none of its parts was already blocked.\n\nChange-Id: I4869175933409add2a56f1ccfb369c3d3dd3cb01\n"
    },
    {
      "commit": "7fb49da8ec62e8a10ed9419ade9f32c6b1174687",
      "tree": "8b1bec67452b84809cecd5645543e1f885ccbd44",
      "parents": [
        "4a1b4679cda2f0d2893b8e3f910c21231849291c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 06 09:12:41 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 07 20:19:47 2014 +0100"
      },
      "message": "Add support for floats and doubles.\n\n- Follows Quick conventions.\n- Currently only works with baseline register allocator.\n\nChange-Id: Ie4b8e298f4f5e1cd82364da83e4344d4fc3621a3\n"
    },
    {
      "commit": "3c04974a90b0e03f4b509010bff49f0b2a3da57f",
      "tree": "52649104e3e80272c3774793350f4d9f260ae732",
      "parents": [
        "c0d36abb12cdbb9469039c1dc153a586bd984015"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 24 18:10:46 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 12:23:40 2014 +0100"
      },
      "message": "Optimize suspend checks in optimizing compiler.\n\n- Remove the ones added during graph build (they were added\n  for the baseline code generator).\n- Emit them at loop back edges after phi moves, so that the test\n  can directly jump to the loop header.\n- Fix x86 and x86_64 suspend check by using cmpw instead of cmpl.\n\nChange-Id: I6fad5795a55705d86c9e1cb85bf5d63dadfafa2a\n"
    },
    {
      "commit": "e982f0b8e809cece6f460fa2d8df25873aa69de4",
      "tree": "df729d47439f7243b498dd4503a5f7aa41a4818b",
      "parents": [
        "f031724abf4f215e1627ff837f87cad5d7a25165"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 02:11:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 09:53:50 2014 +0100"
      },
      "message": "Implement invoke virtual in optimizing compiler.\n\nAlso refactor 004 tests to make them work with both Quick and\nOptimizing.\n\nChange-Id: I87e275cb0ae0258fc3bb32b612140000b1d2adf8\n"
    },
    {
      "commit": "fbc695f9b8e2084697e19c1355ab925f99f0d235",
      "tree": "03e643aa9b468a512873293528bec93438580bab",
      "parents": [
        "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 15:33:30 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 16:18:12 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement suspend checks in new compiler.\"\"\n\nThis reverts commit 7e3652c45c30c1f2f840e6088e24e2db716eaea7.\n\nChange-Id: Ib489440c34e41cba9e9e297054f9274f6e81a2d8\n"
    },
    {
      "commit": "7e3652c45c30c1f2f840e6088e24e2db716eaea7",
      "tree": "a6bdb852a5d1337bd095d0ad8eab90f6689aee9e",
      "parents": [
        "6fbce029fba3ed5da6c36017754ed408e6bcb632"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 14:34:01 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 14:34:01 2014 +0000"
      },
      "message": "Revert \"Implement suspend checks in new compiler.\"\n\nThis reverts commit 6fbce029fba3ed5da6c36017754ed408e6bcb632.\n\nChange-Id: Ia915c27873b021e658a10212e559095dfc91284e\n"
    },
    {
      "commit": "6fbce029fba3ed5da6c36017754ed408e6bcb632",
      "tree": "71debbb7c475be1508e14a7986ed69e75e5b0e4c",
      "parents": [
        "8accb5ac557598fd40b80214bf87517bc4b7bc41"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 10 10:23:58 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 12:43:06 2014 +0100"
      },
      "message": "Implement suspend checks in new compiler.\n\nFor simplicity, they are currently placed on all (dex-level)\nback edges, and at method entry.\n\nChange-Id: I6e833e244d559dd788c69727e22fe40aff5b3435\n"
    },
    {
      "commit": "3946844c34ad965515f677084b07d663d70ad1b8",
      "tree": "0d85bfba2ff69c34a2897351d1e50a1464509305",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 02 15:17:15 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 12:15:07 2014 +0100"
      },
      "message": "Runtime support for the new stack maps for the opt compiler.\n\nNow most of the methods supported by the compiler can be optimized,\ninstead of using the baseline.\n\nChange-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa\n"
    },
    {
      "commit": "3c7bb98698f77af10372cf31824d3bb115d9bf0f",
      "tree": "1cd4cc18babfbb16ab908f23929fa88d7678f06b",
      "parents": [
        "98cc1e552c2ccbe5d51bc81d49e79119280f5416"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 23 16:04:16 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 28 15:44:28 2014 +0100"
      },
      "message": "Implement array get and array put in optimizing.\n\nAlso fix a couple of assembler/disassembler issues.\n\nChange-Id: I705c8572988c1a9c4df3172b304678529636d5f6\n"
    },
    {
      "commit": "f12feb8e0e857f2832545b3f28d31bad5a9d3903",
      "tree": "0a7320caf995441ea4577875abaf731fc37dd0a9",
      "parents": [
        "ebb6b5c90857f390db5a4f840bbe67b3a59a22d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 17 18:32:41 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 16:07:59 2014 +0100"
      },
      "message": "Stack overflow checks and NPE checks for optimizing.\n\nChange-Id: I59e97448bf29778769b79b51ee4ea43f43493d96\n"
    },
    {
      "commit": "abed4d094913db58d7624ea9d98f567fdaa751ac",
      "tree": "f215c96d82f821fbcf678b4a4696aa382b07c590",
      "parents": [
        "3914a79dc234106eeeac4790373e909c3249973e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 14 15:24:11 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 14 15:28:41 2014 +0100"
      },
      "message": "Bailout if the field access is not supported.\n\nChange-Id: I50a184e087d2e68173d886196842981330590253\n"
    },
    {
      "commit": "e50383288a75244255d3ecedcc79ffe9caf774cb",
      "tree": "8858489463a57c7b50f7db4d972abec21302b7a7",
      "parents": [
        "cf90ba7ebe00346651f3b7ce1e5b1f785f7caabd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 04 09:41:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 14 10:06:11 2014 +0100"
      },
      "message": "Support fields in optimizing compiler.\n\n- Required support for temporaries, to be only used by baseline compiler.\n- Also fixed a few invalid assumptions around locations and instructions\n  that don\u0027t need materialization. These instructions should not have an Out.\n\nChange-Id: Idc4a30dd95dd18015137300d36bec55fc024cf62\n"
    },
    {
      "commit": "412f10cfed002ab617c78f2621d68446ca4dd8bd",
      "tree": "bbd9dddd0436da566365ada5deb1840e315e1b11",
      "parents": [
        "d6ab04646d8eec6f24b200f8649f3d942d9ad17e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 19 10:00:34 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 02 16:00:32 2014 +0100"
      },
      "message": "Support longs in the register allocator for x86_64.\n\nChange-Id: I7fb6dfb761bc5cf9e5705682032855a0a70ca867\n"
    },
    {
      "commit": "20dfc797dc631bf8d655dcf123f46f13332d3074",
      "tree": "c1d4e4f919d54f39a6d39d9d769ed5a844afb22b",
      "parents": [
        "cbb0e809c0a4e8a4e8b7f5d3768a1864cfb381bb"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Jun 16 20:44:29 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Jun 24 09:05:27 2014 -0700"
      },
      "message": "Add some more instruction support to optimizing compiler.\n\nThis adds a few more DEX instructions to the optimizing compiler\u0027s\nbuilder (constants, moves, if_xx, etc).\n\nAlso:\n* Changes the codegen for IF_XX instructions to use a condition\n  rather than comparing a value against 0.\n* Fixes some instructions in the ARM disassembler.\n* Fixes PushList and PopList in the thumb2 assembler.\n* Switches the assembler for the optimizing compiler to thumb2\n  rather than ARM.\n\nChange-Id: Iaafcd02243ccc5b03a054ef7a15285b84c06740f\n"
    },
    {
      "commit": "ddb311fdeca82ca628fed694c4702f463b5c4927",
      "tree": "24acde84ed7d0229c36d9bbca2a421acdff9d7a1",
      "parents": [
        "27710fa87cc7fc0f205a6b5a46f418a0cf9a5171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:28:54 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 19 10:17:11 2014 +0100"
      },
      "message": "Build live ranges in preparation for register allocation.\n\nChange-Id: I7ae24afaa4e49276136bf34f4ba7d62db7f28c01\n"
    },
    {
      "commit": "f635e63318447ca04731b265a86a573c9ed1737c",
      "tree": "47cab84a6ac47d8a4f5f281e3eabdf1780f220d0",
      "parents": [
        "d115735fe5523ff72319f0968f773683323c7f79"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 09:43:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 14:26:11 2014 +0100"
      },
      "message": "Add a compilation tracing mechanism to the new compiler.\n\nCode mostly imported from: https://android-review.googlesource.com/#/c/81653/.\n\nChange-Id: I150fe942be0fb270e03fabb19032180f7a065d13\n"
    },
    {
      "commit": "29a2648821ea4d0b5d3aecb9f835822fdfe6faa1",
      "tree": "2eb972b2b006e4d2842c8cf6a1d6631f90a39249",
      "parents": [
        "dbb8727b0b3ae73e84fb8db55e051336d6222add"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 15:27:29 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 15:35:19 2014 -0700"
      },
      "message": "Move DecodedInstruction into MIR.\n\nChange-Id: I188dc7fef4f4033361c78daf2015b869242191c6\n"
    },
    {
      "commit": "db928fcc975b431d8a78700c11bd7da21090384a",
      "tree": "24092c6da3cd3651fc0eaee89d0093ac05afeaed",
      "parents": [
        "e8b2e6e70decca7ce324350c9c03c9a432ed64d6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 16 17:38:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 17 13:23:24 2014 +0000"
      },
      "message": "Simplify HInvokeStatic code generation.\n\nHPushArgument is not needed for now (but might be when we start\noptimizing). Also, calling convention for 64bits backend will\nrequire to know more about the argument than the argument\u0027s\nindex. Therefore currently let HInvokeStatic setup the arguments,\nwhich is possible because arguments of a calls are virtual registers\nand not instructions.\n\nChange-Id: I8753ed6083aa083c5180ab53b436dc8de4f1fe31\n"
    },
    {
      "commit": "01bc96d007b67fdb7fe349232a83e4b354ce3d08",
      "tree": "1ed36c2d7c0fb204e6f276bd9853153d9350ad1d",
      "parents": [
        "2be6fc74bce10ac68d3d1b39a5019f520ad170ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 11 17:43:50 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 16 14:21:12 2014 +0100"
      },
      "message": "Long support in optimizing compiler.\n\n- Add stack locations to the Location class.\n- Change logic of parameter passing/setup by setting the\n  location of such instructions the ones for the calling\n  convention.\n\nChange-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799\n"
    },
    {
      "commit": "b55f835d66a61e5da6fc1895ba5a0482868c9552",
      "tree": "44659a826aeadcf2bf176c2e8d31108ba64c88eb",
      "parents": [
        "427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 07 15:26:35 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 08 08:43:50 2014 +0100"
      },
      "message": "Test control flow instruction with optimizing compiler.\n\nAdd support for basic instructions to implement these tests.\n\nChange-Id: I3870bf9301599043b3511522bb49dc6364c9b4c0\n"
    },
    {
      "commit": "f583e5976e1de9aa206fb8de4f91000180685066",
      "tree": "0e7c2d30af5c713012f0a33e6dd7d8f71e7fc85d",
      "parents": [
        "7ab4e5c5288e04b7beb6d8ddfd5e8bf878002732"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 07 13:20:42 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 07 15:24:23 2014 +0100"
      },
      "message": "Add support for taking parameters in optimizing compiler.\n\n- Fix stack layout to mimic Quick\u0027s.\n- Implement some sub operations.\n\nChange-Id: I8cf75a4d29b662381a64f02c0bc61d859482fc4e\n"
    },
    {
      "commit": "2e7038ac5848468740d6a419434d3dde8c585a53",
      "tree": "465940d5cc57b28c4f5b5ad588f6d86ee72097ed",
      "parents": [
        "a7b2826fa469c626ff2c3ff26fd848c28bccc092"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 03 18:49:58 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 04 09:59:06 2014 +0100"
      },
      "message": "Add support for new-instance and invoke-direct.\n\nChange-Id: I2daed646904f7711972a7da15d88be7573426932\n"
    },
    {
      "commit": "4a34a428c6a2588e0857ef6baf88f1b73ce65958",
      "tree": "a9f025c17752a175c4e6a203c01e935cb438efb1",
      "parents": [
        "8549cf9d83688f7decbbea2a8de761ce29e95f3c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 03 10:38:37 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 03 17:09:22 2014 +0100"
      },
      "message": "Support passing arguments to invoke-static* instructions.\n\n- Stop using the frame pointer for accessing locals.\n- Stop emulating a stack when doing code generation. Instead,\n  rely on dex register model, where instructions only reference\n  registers.\n\nChange-Id: Id51bd7d33ac430cb87a53c9f4b0c864eeb1006f9\n"
    },
    {
      "commit": "d8ee737fdbf380c5bb90c9270c8d1087ac23e76c",
      "tree": "becdbf2b4e2a3c84952bd7b1db60a2daccd47206",
      "parents": [
        "7f466c08888129a9923cb973a4dc73ee4a71574e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 28 15:43:40 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 31 11:41:39 2014 +0100"
      },
      "message": "Add support for adding two integers in optimizing compiler.\n\nChange-Id: I5524e193cd07f2692a57c6b4f8069904471b2928\n"
    },
    {
      "commit": "8ccc3f5d06fd217cdaabd37e743adab2031d3720",
      "tree": "ec8c904baafb4d9b9bfd582245e2d780bcdfaade",
      "parents": [
        "ad174d1b54bf2fa477bec71a0ca93595f54b8fe9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 19 10:34:11 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 31 09:44:40 2014 +0100"
      },
      "message": "Add support for invoke-static in optimizing compiler.\n\nSupport is limited to calls without parameters and returning\nvoid. For simplicity, we currently follow the Quick ABI.\n\nChange-Id: I54805161141b7eac5959f1cae0dc138dd0b2e8a5\n"
    },
    {
      "commit": "787c3076635cf117eb646c5a89a9014b2072fb44",
      "tree": "3c9c6c6d56e3900cf2255a5d1ade008ec6a40681",
      "parents": [
        "b9d50a9829b795932eac4cc50a99b4ce80b0ecb4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 17 10:20:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 18 11:20:20 2014 +0000"
      },
      "message": "Plug new optimizing compiler in compilation pipeline.\n\nAlso rename accessors to ART\u0027s conventions.\n\nChange-Id: I344807055b98aa4b27215704ec362191464acecc\n"
    },
    {
      "commit": "bab4ed7057799a4fadc6283108ab56f389d117d4",
      "tree": "ea1bf495458fd9f7a3ffbed0ea4e1dda5a0b8184",
      "parents": [
        "37d4c1db4d705f5a28001f65afdd68d0527948d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 11 17:53:17 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 13 09:23:12 2014 +0000"
      },
      "message": "More code generation for the optimizing compiler.\n\n- Add HReturn instruction\n- Generate code for locals/if/return\n- Setup infrastructure for register allocation. Currently\n  emulate a stack.\n\nChange-Id: Ib28c2dba80f6c526177ed9a7b09c0689ac8122fb\n"
    },
    {
      "commit": "3ff386aafefd5282bb76c8a50506a70a4321e698",
      "tree": "5f6e990553daae150a168f581bac79e659f7f712",
      "parents": [
        "0307b5c91c287e08cd414ecc5de32befceb7e371"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 14:46:47 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 10 11:41:22 2014 +0000"
      },
      "message": "Add register support to the optimizing compiler.\n\nAlso make if take an input and build the use list for instructions.\n\nChange-Id: I1938cee7dce5bd4c66b259fa2b431d2c79b3cf82\n"
    },
    {
      "commit": "d4dd255db1d110ceb5551f6d95ff31fb57420994",
      "tree": "93c9dfff8d16f2b9675c35477cc4bcd8ea3f630c",
      "parents": [
        "b565506a63e75dac4a8bb9dd54dabf5259e5b95f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 10:23:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 16:19:11 2014 +0000"
      },
      "message": "Add codegen support to the optimizing compiler.\n\nChange-Id: I9aae76908ff1d6e64fb71a6718fc1426b67a5c28\n"
    },
    {
      "commit": "be9a92aa804c0d210f80966b74ef8ed3987f335a",
      "tree": "10d58622f626f03156e0dec1f1fc00616554b336",
      "parents": [
        "3188d117d6f1ba5f3a30d0ff231d816ebb59a7f7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 25 14:22:56 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 26 13:24:04 2014 +0000"
      },
      "message": "Add conditional branches, and build dominator tree.\n\nChange-Id: I4b151a07b72692961235a1419b54b6b45cf54e63\n"
    },
    {
      "commit": "818f2107e6d2d9e80faac8ae8c92faffa83cbd11",
      "tree": "0a92aa1ba319115d8af05badc150d1e9e8e5e4ca",
      "parents": [
        "a2a5354cd95faf242a70b99b7b11f8fdb7cb7c1b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 19:22:41 2014 +0000"
      },
      "message": "Re-apply: Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: I28e125dfee86ae6ec9b3fec6aa1859523b92a893\n"
    },
    {
      "commit": "1af0c0b88a956813eb0ad282664cedc391e2938f",
      "tree": "22c31a72dc2d0c711056b4d4b1388a64de103261",
      "parents": [
        "68a5fefa90f03fdf5a238ac85c9439c6b03eae96"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "message": "Revert \"Initial check-in of an optimizing compiler.\"\n\ng++ warnings turned into errors.\n\nThis reverts commit 68a5fefa90f03fdf5a238ac85c9439c6b03eae96.\n\nChange-Id: I09bb95d9cc13764ca8a266c41af04801a34b9fd0\n"
    },
    {
      "commit": "68a5fefa90f03fdf5a238ac85c9439c6b03eae96",
      "tree": "0f3ba23e5d3e2bbd211023fd7ce0740f694e7215",
      "parents": [
        "0bf2ed98bc7d529a28ab470d36308ee2358f5a1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 16:48:02 2014 +0000"
      },
      "message": "Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: Id5ef1b317ab997010d4e3888e456c26bef1ab9c0\n"
    }
  ]
}
