)]}'
{
  "commit": "c9900015a9a0bc2ccadae5e24b63ddbfe4d508fd",
  "tree": "716230bb2154fb0dd6c16759a8b23add6f76ebc2",
  "parents": [
    "bccd34f32342e0f299d528ffbb70c825eee983d5"
  ],
  "author": {
    "name": "Shunsuke Watanabe",
    "email": "watanabe.shu-06@fujitsu.com",
    "time": "Wed Jul 09 13:43:54 2025 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 09 13:43:54 2025 +0900"
  },
  "message": "[flang] Add -fcomplex-arithmetic\u003d option and select complex division algorithm (#146641)\n\nThis patch adds an option to select the method for computing complex\nnumber division. It uses `LoweringOptions` to determine whether to lower\ncomplex division to a runtime function call or to MLIR\u0027s `complex.div`,\nand `CodeGenOptions` to select the computation algorithm for\n`complex.div`. The available option values and their corresponding\nalgorithms are as follows:\n- `full`: Lower to a runtime function call. (Default behavior)\n- `improved`: Lower to `complex.div` and expand to Smith\u0027s algorithm.\n- `basic`: Lower to `complex.div` and expand to the algebraic algorithm.\n\nSee also the discussion in the following discourse post:\nhttps://discourse.llvm.org/t/optimization-of-complex-number-division/83468\n\n---------\n\nCo-authored-by: Tarun Prabhu \u003ctarunprabhu@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26aa3ccf847861925bb5b89ec9bc56596fb5af2a",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Driver/CommonArgs.h",
      "new_id": "49c7149380fba3bf0ea80096a7e4016d3b1e61e0",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Driver/CommonArgs.h"
    },
    {
      "type": "modify",
      "old_id": "95bea6cf1d76f6faec237312df233082c6554461",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Driver/Options.td",
      "new_id": "77379f1130149d9fd44c761f12bc39d6f09eac9f",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Driver/Options.td"
    },
    {
      "type": "modify",
      "old_id": "7b8120da558f2e323631b99d2ea5dd0aa1ebdddf",
      "old_mode": 33188,
      "old_path": "clang/lib/Driver/ToolChains/Clang.cpp",
      "new_id": "0dbe46319247b30059b082fd6991aa21e8fef556",
      "new_mode": 33188,
      "new_path": "clang/lib/Driver/ToolChains/Clang.cpp"
    },
    {
      "type": "modify",
      "old_id": "9ae76fc307a566ccf104ce1d6821fe25ea347cde",
      "old_mode": 33188,
      "old_path": "clang/lib/Driver/ToolChains/CommonArgs.cpp",
      "new_id": "097d186ad8ea4a83f7a13056beb706dba6f9a3d5",
      "new_mode": 33188,
      "new_path": "clang/lib/Driver/ToolChains/CommonArgs.cpp"
    },
    {
      "type": "modify",
      "old_id": "75ba2af543c7a0b147c5a51c32713da04ab0f6fc",
      "old_mode": 33188,
      "old_path": "clang/lib/Driver/ToolChains/Flang.cpp",
      "new_id": "1edb83f7255eb83fae8472d2894f2900046b2c9f",
      "new_mode": 33188,
      "new_path": "clang/lib/Driver/ToolChains/Flang.cpp"
    },
    {
      "type": "modify",
      "old_id": "03566035c28a3b73b8ce7f2b72101711090a9580",
      "old_mode": 33188,
      "old_path": "flang/docs/ComplexOperations.md",
      "new_id": "3ebeea5e0a540a5d9646afa058b3848c45b377a3",
      "new_mode": 33188,
      "new_path": "flang/docs/ComplexOperations.md"
    },
    {
      "type": "modify",
      "old_id": "ae12aec518108729f8d302443c7717654b383296",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Frontend/CodeGenOptions.def",
      "new_id": "cdeea93c9aecbe26db5f820b3dd5736938e455ae",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Frontend/CodeGenOptions.def"
    },
    {
      "type": "modify",
      "old_id": "bad17c8309eb8ced07d6c8b13437fb0de5779c31",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Frontend/CodeGenOptions.h",
      "new_id": "df6063cc9034036dc85f91b5b6f2a135918dc02e",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Frontend/CodeGenOptions.h"
    },
    {
      "type": "modify",
      "old_id": "3263ab129d0760173737f85039f709d5042c2c36",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Lower/LoweringOptions.def",
      "new_id": "8135704971aa434a1a97e6aa6ff7acd39b2d4e98",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Lower/LoweringOptions.def"
    },
    {
      "type": "modify",
      "old_id": "f2c363e09e9e6016b3518745d5a3b721d9e79d3d",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Optimizer/Builder/FIRBuilder.h",
      "new_id": "78ee6f00cbdb06c4a004c4056f652c455ff8a38d",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Optimizer/Builder/FIRBuilder.h"
    },
    {
      "type": "modify",
      "old_id": "93f07d8d5d4d912390fc893d39ee19e2287edb81",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Optimizer/CodeGen/CodeGen.h",
      "new_id": "e9a07a8dde5cdbe83277b177273461e4d9652c23",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Optimizer/CodeGen/CodeGen.h"
    },
    {
      "type": "modify",
      "old_id": "337685c82af5ff4b255a3ceaba455ed73bcac982",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Tools/CrossToolHelpers.h",
      "new_id": "df1da27058552daf9296c53b285a9b7dfbbf5000",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Tools/CrossToolHelpers.h"
    },
    {
      "type": "modify",
      "old_id": "e5c6b1d5c61ad774c3719c86a616497027d6c353",
      "old_mode": 33188,
      "old_path": "flang/lib/Frontend/CompilerInvocation.cpp",
      "new_id": "5455efde1a81fd1c595e6ef25bcae1d44bfe0812",
      "new_mode": 33188,
      "new_path": "flang/lib/Frontend/CompilerInvocation.cpp"
    },
    {
      "type": "modify",
      "old_id": "bf15def3f3b2e0859eacb7fcd90e78b54127b920",
      "old_mode": 33188,
      "old_path": "flang/lib/Frontend/FrontendActions.cpp",
      "new_id": "b5f4f9421f63395c7c473a047d9d9900d961e429",
      "new_mode": 33188,
      "new_path": "flang/lib/Frontend/FrontendActions.cpp"
    },
    {
      "type": "modify",
      "old_id": "696473605a4e04788fe722d8ee365b16ab0c8a7d",
      "old_mode": 33188,
      "old_path": "flang/lib/Lower/Bridge.cpp",
      "new_id": "ed062ecf071663e9d9491b2d8153755861f2dfc7",
      "new_mode": 33188,
      "new_path": "flang/lib/Lower/Bridge.cpp"
    },
    {
      "type": "modify",
      "old_id": "df8dfbc72c0305166a2b5b9432c653b4ad3fcf80",
      "old_mode": 33188,
      "old_path": "flang/lib/Lower/ConvertExprToHLFIR.cpp",
      "new_id": "9689f920840fb869b2f80183782f2e70da06fa80",
      "new_mode": 33188,
      "new_path": "flang/lib/Lower/ConvertExprToHLFIR.cpp"
    },
    {
      "type": "modify",
      "old_id": "09038f6e4d3aed14185825f99114e9abc1fdb817",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/CodeGen/CodeGen.cpp",
      "new_id": "1bc981516e226a37761d8846ab3c565b983878da",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/CodeGen/CodeGen.cpp"
    },
    {
      "type": "modify",
      "old_id": "dca176abe5ec537440234a81279d2439fec73d4a",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/Passes/Pipelines.cpp",
      "new_id": "333bfc8b7aed86943e4b496c7b9e40d0c7795429",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/Passes/Pipelines.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e5a1ba9068ac9d743deaccd1a723e0ccb8d5346f",
      "new_mode": 33188,
      "new_path": "flang/test/Driver/complex-range.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04d1f7ed9b024df8b91a55dfb91159d3899ec05f",
      "new_mode": 33188,
      "new_path": "flang/test/Integration/complex-div-to-llvm-kind10.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "887a7972dc1bee5ccd41f43a61386eedbb6fd9cf",
      "new_mode": 33188,
      "new_path": "flang/test/Integration/complex-div-to-llvm-kind16.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01782a565f24c6fbbc00e98b57f945adee56d1a2",
      "new_mode": 33188,
      "new_path": "flang/test/Integration/complex-div-to-llvm.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e219e30ec94bec89ba1a72b07e5143b55f6eb08",
      "new_mode": 33188,
      "new_path": "flang/test/Lower/HLFIR/complex-div-to-hlfir-kind10.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe4a7256a4a1644b10c5cf34241e32f2667f9202",
      "new_mode": 33188,
      "new_path": "flang/test/Lower/HLFIR/complex-div-to-hlfir-kind16.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b488bfde4ee85cdcf9c590c556ead707b4dcb9ac",
      "new_mode": 33188,
      "new_path": "flang/test/Lower/HLFIR/complex-div-to-hlfir.f90"
    },
    {
      "type": "modify",
      "old_id": "d216069654bc4712c4d32e3c41e2a7015a29b28c",
      "old_mode": 33188,
      "old_path": "flang/tools/bbc/bbc.cpp",
      "new_id": "edfc878d17524fef6ae6c8aca32e17b1bcbb1559",
      "new_mode": 33188,
      "new_path": "flang/tools/bbc/bbc.cpp"
    }
  ]
}
