)]}'
{
  "commit": "70f70390bb83a383fcb88ea843adbc4edf6ee34b",
  "tree": "f216095d192b491f95263eb40ba2daa5dbc2e6fd",
  "parents": [
    "311a199e2178a9127953e9632434c2e82822e98b"
  ],
  "author": {
    "name": "slachowsky",
    "email": "stephan.lachowsky@gmail.com",
    "time": "Tue Oct 21 09:33:19 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 21 09:33:19 2025 -0700"
  },
  "message": "[RISCV][LLVM] Enable atomics for \u0027Zalrsc\u0027 (#163672)\n\nThe \u0027A\u0027 atomics extension is composed of two subextensions, \u0027Zaamo\u0027\nwhich has atomic memory operation instructions, and \u0027Zalrsc\u0027 which has\nload-reserve / store-conditional instructions.\n    \nFor machines where \u0027Zalrsc\u0027 is present, but \u0027Zaamo\u0027 is not, implement\nand enable atomics memory operations through pseudo expansion. Updates the\npredication and lowering control to be more precise about which \u0027Zaamo\u0027/\u0027Zalrsc\u0027\nfeature was truly requisite.\n    \nThere will be no functional change to subtargets supporting \u0027A\u0027, while\nallowing \u0027Zalrsc\u0027 only subtargets to utilize atomics at an increased code\nfootprint.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "04da4e637af51201bf2f6ee9a29a789a5275362a",
      "old_mode": 33188,
      "old_path": "clang/lib/Basic/Targets/RISCV.cpp",
      "new_id": "685925b0773dc56336d211035b934a03a220e6ec",
      "new_mode": 33188,
      "new_path": "clang/lib/Basic/Targets/RISCV.cpp"
    },
    {
      "type": "modify",
      "old_id": "d8b0e64c90dd62ed26cea339e330f83b4184b2ed",
      "old_mode": 33188,
      "old_path": "clang/lib/Basic/Targets/RISCV.h",
      "new_id": "85fa4cc07dccf289dccf5e5ae01dbb384c5ee13b",
      "new_mode": 33188,
      "new_path": "clang/lib/Basic/Targets/RISCV.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e021733920693caf0b534f9039ac8144328a260",
      "new_mode": 33188,
      "new_path": "clang/test/Preprocessor/riscv-atomics.c"
    },
    {
      "type": "modify",
      "old_id": "73f2c55a71125412ffdd9bf024b86eb22eb58c86",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/TargetLowering.h",
      "new_id": "64a7563182a985d1fcb1fb808be69705a64fe7e0",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/TargetLowering.h"
    },
    {
      "type": "modify",
      "old_id": "88a4a8b16373b07472c55cdcecc7ff360cfaebcb",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp",
      "new_id": "b1776eaae6e86c8be04ada44ccad18cb44f6e9cd",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "5dd4bf415a23c624f398a18b016d6cd8ee068a0c",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVExpandAtomicPseudoInsts.cpp",
      "new_id": "98b636e8e0e55ba089f7340a4eda5501ae294d8b",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVExpandAtomicPseudoInsts.cpp"
    },
    {
      "type": "modify",
      "old_id": "19992e667d192a4004516f7c3f5e0554052de8ca",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVFeatures.td",
      "new_id": "3abbbb36315a818a9aea9566878937216bfe54eb",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVFeatures.td"
    },
    {
      "type": "modify",
      "old_id": "a77d765a8b48116d9e2840148ba9880195eaa78a",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVISelLowering.cpp",
      "new_id": "26fe9edb6bd5d8fbc43585989f23070035cb10af",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVISelLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "3f81ed74c12edb94df5332c5ce31d51c7df3af04",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVISelLowering.h",
      "new_id": "9e3e2a944362532d08332688057480982c2800ee",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVISelLowering.h"
    },
    {
      "type": "modify",
      "old_id": "571d72f904ca74f196761d3207b5fec8b1e67d80",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVInstrInfoA.td",
      "new_id": "5c81a0990a64f038d0bf36f784c89149eb27dd66",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVInstrInfoA.td"
    },
    {
      "type": "modify",
      "old_id": "7103345ce7bc2c807e73b580330d934d5fc33ed2",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/atomic-fence.ll",
      "new_id": "77148f64a3166422edf806ca62970cd6afcf12a8",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/atomic-fence.ll"
    },
    {
      "type": "modify",
      "old_id": "7e3abc753333b91b4a067c9260f6326363aab15a",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/atomic-load-store.ll",
      "new_id": "c6234dedcef363a4b1e8f9c88e22385387a1afff",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/atomic-load-store.ll"
    },
    {
      "type": "modify",
      "old_id": "4dafd6a08d973b95c5c80f5f034223005c7d6cd5",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/atomic-rmw-sub.ll",
      "new_id": "d5238ab941a14c1e4f58917b1f124e7f0dd09ac4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/atomic-rmw-sub.ll"
    },
    {
      "type": "modify",
      "old_id": "12132563c97d1e3d86b14b15373f34e287a8a908",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/atomic-rmw.ll",
      "new_id": "26feb8325dec0a6eaec911dc43b7277bc6fd84a4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/atomic-rmw.ll"
    },
    {
      "type": "modify",
      "old_id": "7d29ac99448344bb74aaeda707c2eed609196173",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/atomic-signext.ll",
      "new_id": "7fe5fa7365eb5832c21b37b435751f642ce57fb6",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/atomic-signext.ll"
    }
  ]
}
