)]}'
{
  "commit": "8d4e0bdfbb2efbe23dc24d104ae84afd11740304",
  "tree": "0d617618f76f164da0573f64f65611641fefc515",
  "parents": [
    "330e8ee9ea581f0d0337286c2dfe729799cc76ee"
  ],
  "author": {
    "name": "Garvit Gupta",
    "email": "garvgupt@qti.qualcomm.com",
    "time": "Tue Oct 13 16:20:51 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 13 16:20:51 2026 +0530"
  },
  "message": "[Machine Outliner][RISCV] Input section aware machine outlining (#226126)\n\n[Machine Outliner][RISCV] Input section aware machine outlining\n\nCurrently machine outliner refuses to outline from named section\nfunctions because the callers of the outlined function could potentially be in\ndifferent input sections and since outlined function can only be in one of\nthe input section, this will lead to cross-section calls that breaks the\nassumption around the code being all in the same section.\n\nThis PR fixes the issue by partitioning the candidates of a repeated\nsequence by their parent function\u0027s input sections and emitting the outlined\nfunction within the same section. An outlined function inherits its parents\u0027\ninput section.\n\nThis input section based outlining behavior is opt-in via \n`TargetInstrInfo::supportsSectionAwareOutlining()`, which\ndefaults to false and has been enabled only for RISCV.\n\nThis PR also preserves the outlining behavior for x86 which allowed\noutlining from named function sections however the outlined function\ndidn\u0027t inherit the parent function\u0027s input section.\n\nAssisted by AI",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e012a7057e25ea59ed6a8c12d0fce841d672a5af",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/MachineOutliner.h",
      "new_id": "cda58a38686c68463eebf7d4d760c88bec73e86f",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/MachineOutliner.h"
    },
    {
      "type": "modify",
      "old_id": "2fe7e6ed244060d0121316580ad723a4ca6a78d6",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/TargetInstrInfo.h",
      "new_id": "97baf780275ee3712966423b76cb63e96bc02c3c",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/TargetInstrInfo.h"
    },
    {
      "type": "modify",
      "old_id": "aed76e6744dc93f68d770c2e778cfb634d7a0be8",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/MachineOutliner.cpp",
      "new_id": "540c9c8b018da1dd986a55d71a70871782a171c9",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/MachineOutliner.cpp"
    },
    {
      "type": "modify",
      "old_id": "8fd092a387d6ae5d10806ff2b8ff65aaa5f3bf7c",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/TargetInstrInfo.cpp",
      "new_id": "ae64c0086aa017145fba7f539b58f6b30b021ed7",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/TargetInstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "4ae3c64f2d0113c07f82cb32d16eaec01a23c5dc",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AArch64/AArch64InstrInfo.cpp",
      "new_id": "f60a4deb98ab073b930fb9c7c42ec8510cfae4a9",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/AArch64InstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "92e8c0e994e799d871565ce3166c040288ac4a91",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp",
      "new_id": "77dced359d2ae63bad3ef44f6abd26bf4d0fbfd6",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "5a8ed9a47b07273f604dc4c8d2bd93b8b930dc39",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVInstrInfo.cpp",
      "new_id": "c97c87047f8dd23252a158ac8ee817920395552e",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVInstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "091a40a4cd379c167da61622a23b7f9d9c9723e4",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVInstrInfo.h",
      "new_id": "81f40f529afa389872f81c3de0a044af41369f1e",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVInstrInfo.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcce6a31816891d42a3b2235b5039fef8f93986e",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/machine-outliner-multiple-sections.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "447bd9b875ed9316deb8e42f1da6e5c933eb30e9",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/machine-outliner-section-attribute.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a851293b9d8057154b84b0620fecf32313efbb20",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/machine-outliner-section-debug.ll"
    },
    {
      "type": "modify",
      "old_id": "fd3630bcfad2560e02a21a3169fbdc5dc3b62d0d",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/machineoutliner-pcrel-lo.mir",
      "new_id": "4dfe614b12db452f73965c341ebc47334fb80627",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/machineoutliner-pcrel-lo.mir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f4563ea4b720f162b066d123fec9690242c47f9",
      "new_mode": 33188,
      "new_path": "llvm/test/LTO/RISCV/machine-outliner-section-rv32.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce7a3ec71cf9b4201684ccba0e1d5261027d6301",
      "new_mode": 33188,
      "new_path": "llvm/test/LTO/RISCV/machine-outliner-section-rv64.ll"
    }
  ]
}
