)]}'
{
  "commit": "45b70db8754d28e4e54732af28714f58a3816915",
  "tree": "9f0af5ce1e4bb8b23ab8f94b53198fc3293570ca",
  "parents": [
    "85efe00cdd931241687d3ba5a330579ac595db01"
  ],
  "author": {
    "name": "Ahmed S. Taei",
    "email": "asaadaldien@users.noreply.github.com",
    "time": "Wed Nov 18 13:57:47 2020 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Nov 18 13:57:47 2020 -0800"
  },
  "message": "Add a pass for FastExp conversion (#3839)\n\nConvert `llvm.intr.exp` into a sequence of ops that computes an approximation to exp(x).\r\nThis is using the fact that:\r\n```\r\nexp(x) \u003d exp(x - floor(x \\ ln(2) * ln(2)) 2^(floor(x \\ ln(2))\r\n            \u003d exp(x - k * ln(2)) * 2^k\r\n```\r\nexp(x - k * ln(2)) range is [0, ln(2)] which is approximated with 4degree polynomial.\r\nThe real number 2^k is computed with integer bitwise arithmetic.\r\n\r\nMobileBert benchmarks:\r\n\r\nBefore:\r\n```\r\n------------------------------------------------------------------------------------\r\nBenchmark                                          Time             CPU   Iterations\r\n------------------------------------------------------------------------------------\r\nBM_serving_default/process_time/real_time        907 ms          905 ms            1\r\n```\r\n\r\nAfter:\r\n```\r\n------------------------------------------------------------------------------------\r\nBenchmark                                          Time             CPU   Iterations\r\n------------------------------------------------------------------------------------\r\nBM_serving_default/process_time/real_time        819 ms          815 ms            1\r\n```",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "165664750db200464235c330780c42691450796e",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LLVMToLLVM/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4b02edcf71e4e348f94bed9c4fa998912c1fdae2",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LLVMToLLVM/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "749ada45eb697e258815cfd8388a4133f6befe55",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LLVMToLLVM/FastExpConversion.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e40fe90842b819051c0070a7c0c9d309a512b550",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LLVMToLLVM/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "c4396c5511387764833142a3d053c74748363c44",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/BUILD",
      "new_id": "5dbbadd2295112f701a1f6d40c80818d357b87db",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/BUILD"
    },
    {
      "type": "modify",
      "old_id": "9564f1e71eca27aeb238bf88f3f0322c8804724a",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/CMakeLists.txt",
      "new_id": "4018a29807f2c84420a1ee598a729dc1d549676c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "6f2f30bf8b9b873d46510f4276e0acad39041bbc",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.cpp",
      "new_id": "348b4254edfe3ec0636618abbe78dae5862c5c22",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "8dcc089d5a4df8d06afa606cfca045f189252516",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.h",
      "new_id": "33c74d4d8310a473c5603c7d2c2edffc839da80a",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "8770dc3aec58a4e70c44c4d27355ef29622cec1f",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/llvmir_specific/BUILD",
      "new_id": "f0bf5de0c4e530505d5cc6a1d89370b7dddf0a15",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/llvmir_specific/BUILD"
    },
    {
      "type": "modify",
      "old_id": "0d00ec164a19981cf3e2751eee419853ca9edea6",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/llvmir_specific/CMakeLists.txt",
      "new_id": "496841abd2f2dd52d23f1bf096dfdf63c585c0c9",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/llvmir_specific/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e9132698a416d471076001bbd31895e0c3876c5",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/llvmir_specific/exponential.mlir"
    }
  ]
}
