)]}'
{
  "log": [
    {
      "commit": "4606dfc3310cabe2120f0a2ea06e17f07fcf5a3c",
      "tree": "617feaeead8dfdd9c86149e8a791aa62929b003e",
      "parents": [
        "95fbe1aa15dd069754b6faeda3c4bfe6149261ee"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Tue Aug 25 09:21:32 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:28:13 2026 -0700"
      },
      "message": "[Loads] Migrate isSafeToLoadUnconditionally() to SimplifyQuery (#218424)\n\nisDereferenceablePointer() was changed to use SimplifyQuery some time\nago, do the same for isSafeToLoadUnconditionally().\n\nGitOrigin-RevId: add5d15a620c2e1a3f08478fa311a74dce5e2f63\n"
    },
    {
      "commit": "95fbe1aa15dd069754b6faeda3c4bfe6149261ee",
      "tree": "7a3dc601b1b8037bd1dc9266c711666650b35ea0",
      "parents": [
        "8ac2da881fb3afb6b199d0277d11e66782e76d28"
      ],
      "author": {
        "name": "anilkund",
        "email": "anilkund@qti.qualcomm.com",
        "time": "Thu Aug 13 11:55:37 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 12 23:32:39 2026 -0700"
      },
      "message": "[Polly] Narrow IV to lower type when possible (#212708)\n\nThis patch tries to lower the LLVM-IR type of IVs which are set to i64\nby default during polly codegen. This is specially beneficial for\nHexagon as it uses Hardware Loops which requires 32 bit wide IVs.\n\n---------\n\nCo-authored-by: Anilava Kundu \u003canilkund@hu-anilkund-blr.qualcomm.com\u003e\nCo-authored-by: Santanu Das \u003csantdas@qti.qualcomm.com\u003e\nGitOrigin-RevId: 00cc5ac48769908583c25ae85f86b31b1696da6a\n"
    },
    {
      "commit": "8ac2da881fb3afb6b199d0277d11e66782e76d28",
      "tree": "d1d7cf53f814297641b8ce2aecc17b3f20437e3b",
      "parents": [
        "ecb6f827aac26651d78485e4e281d1ab2b5a245d"
      ],
      "author": {
        "name": "Madhur Amilkanthwar",
        "email": "madhura@nvidia.com",
        "time": "Mon Aug 03 12:28:28 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 03 00:00:36 2026 -0700"
      },
      "message": "Enforce single-operand form for llvm.loop.vectorize metadata (#210932)\n\nThis patch implements Phase 2 of the RFC \"Enforce Single-Operand Format\nfor All .enable Metadata Nodes\". Please refer to RFC:\n\nhttps://discourse.llvm.org/t/rfc-enforce-single-operand-format-for-all-enable-metadata-nodes/90571/\n\nThe two-operand boolean form !{!\"llvm.loop.vectorize.enable\", i1 0/1} is\nreplaced by a single-operand enable/disable pair:\n\n  !{!\"llvm.loop.vectorize.enable\"}    ; force vectorization\n  !{!\"llvm.loop.vectorize.disable\"}   ; suppress vectorization\n\nThe Verifier rejects the two-operand form, AutoUpgrade rewrites old\nbitcode (including the legacy llvm.vectorizer.enable tag), and the\nreaders and producers across LLVM, Clang, MLIR and Polly are updated.\n\nGitOrigin-RevId: 738029a68bd265cb4e65e03f63d84c027692adaa\n"
    },
    {
      "commit": "ecb6f827aac26651d78485e4e281d1ab2b5a245d",
      "tree": "f2a026cbe564811513b31e4f252d2fb040768835",
      "parents": [
        "7876357d86804dffcb75bc4964268f63e2682bfc"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Sun Jul 26 21:28:16 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Jul 26 13:30:36 2026 -0700"
      },
      "message": "[SCEV] Remove ptrtoint expression (NFC). (#212038)\n\nFollow-up to https://github.com/llvm/llvm-project/pull/180244 to remove\nthe now unused SCEVPtrToIntExpr.\n\nPR: https://github.com/llvm/llvm-project/pull/212038\nGitOrigin-RevId: 814a883c3c814a98abbdd30c3320553624d59cc2\n"
    },
    {
      "commit": "7876357d86804dffcb75bc4964268f63e2682bfc",
      "tree": "abc1b7c1811b2aaa7662dfa5014718126d48fba6",
      "parents": [
        "299c21d825c6daee43617ffc789850d56f1593bc"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Fri Jul 24 20:20:48 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 24 12:25:33 2026 -0700"
      },
      "message": "[SCEV] Use SCEVPtrToAddr instead of SCEVPtrToInt in SCEV. (#180244)\n\nUse SCEVPtrToAddr instead of SCEVPtrToInt for pointer -\u003e int\nconversion in SCEV, like when computing trip count expressions.\n\ngetPtrToIntExpr now also creates SCEVPtrToAddrExpr.\n\nRemoval of SCEVPtrToIntExpr out of this PR, to limit the scope and\nwill be done as NFC follow-up.\n\nPR: https://github.com/llvm/llvm-project/pull/180244\nGitOrigin-RevId: 8e76c3f0d29a713c41f1b3d0f19d965a504481cf\n"
    },
    {
      "commit": "299c21d825c6daee43617ffc789850d56f1593bc",
      "tree": "dc8465ac2b521d4f984bd5173c7adbebd7b616d8",
      "parents": [
        "78da438d3155b07079e06d6f402e7bf4d60667ee"
      ],
      "author": {
        "name": "Karthika Devi C",
        "email": "kartc@qti.qualcomm.com",
        "time": "Thu Jul 23 17:56:00 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 23 05:30:37 2026 -0700"
      },
      "message": "[Polly] Fix memory leak in DependenceAnalysis::Result::abandonDepende… (#211514)\n\nabandonDependences() uses unique_ptr::release() which releases\nownership without freeing the Dependences object, causing a memory\nleak. Use unique_ptr::reset() instead to properly delete the object\nbefore nullifying the pointer.\n\nThe issue was found when AddressSanitizer is enabled in the build.\n\nGitOrigin-RevId: a65df8a1d42a34217bba1354c064b3fa40529507\n"
    },
    {
      "commit": "78da438d3155b07079e06d6f402e7bf4d60667ee",
      "tree": "7d302ae5f200e2c03fab094362b18dacf14dc0ef",
      "parents": [
        "b2526e5a8dd45081a525ac56063300cc28f616fd"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Tue Jul 21 00:01:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 21 00:05:53 2026 -0700"
      },
      "message": "[LoopInfo] Replace raw loop-container accessors with semantic operations (#210653)\n\ngetBlocksVector, mutable getBlocksSet, getSubLoopsVector, and\ngetTopLevelLoopsVector expose LoopInfo\u0027s internal containers, so every\ncaller open-codes loop-nest surgery, keeps the block vector and set in\nsync by hand, and freezes the representation. Replace them with two\nLoopInfoBase operations:\n\n* removeBlocksIf(LoopT \u0026, Pred): drop matching blocks from a loop.\n* takeChildrenIf(LoopT *Parent, Pred): detach and return matching\n  children, clearing their parent; a null Parent means the top level.\n\nBoth preserve the relative order of what remains. Mutation inside\nLoopInfoBase also lets the analysis repair derived state once per edit\nand finish a multi-step edit before any query observes it, which an\naccessor returning a container cannot.\n\nFor the same reason, move hasNoExitBlocks, getExitEdges, and\ngetUniqueLatchExitBlock onto LoopInfoBase.\n\nTwo behavior changes: SimpleLoopUnswitch\u0027s deleteDeadBlocksFromLoop runs\nits per-child deletion callbacks while the forest is still consistent,\nbefore detaching and destroying dead children; FixIrreducible\u0027s\nreconnectChildLoops keeps children in their original order rather than\nstd::partition\u0027s.\n\nAided by Claude Fable 5\n\nGitOrigin-RevId: 9a49fc244be7400e550b2c014e6d370b586dc854\n"
    },
    {
      "commit": "b2526e5a8dd45081a525ac56063300cc28f616fd",
      "tree": "9dc089e43b97fa658d600f86b6dc022d7589672d",
      "parents": [
        "a6ccfca930478dec506c2656c859a1d019b18c3c"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sun Jul 19 10:31:21 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Jul 19 01:35:38 2026 -0700"
      },
      "message": "[Polly][test] Add missing REQUIRES line (#210578)\n\nThe test was added by #201859. It\u0027s test uses --debug-only which\nrequires an LLVM_ENABLE_ASSERTIONS-build\n\nGitOrigin-RevId: 5cae63bd0d31118a15481fc7e5b063a73492d77d\n"
    },
    {
      "commit": "a6ccfca930478dec506c2656c859a1d019b18c3c",
      "tree": "00e63e99720a7aa4fe7673f56468a56bae41a1a6",
      "parents": [
        "7c101cbf7d6f36f4fe3a2255d6619ef3d3c9be90"
      ],
      "author": {
        "name": "Shikhar Jain",
        "email": "shikharj@qti.qualcomm.com",
        "time": "Sun Jul 19 11:37:32 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jul 18 23:10:15 2026 -0700"
      },
      "message": "[Polly] Guard ISL ast gen compute out (#201859)\n\nBounds the maximum ISL operations allowed for ISL AST Generation.\n\nFixes: https://github.com/llvm/llvm-project/issues/201801\nGitOrigin-RevId: 790882669323c7255cb761755bb2d37d3b344452\n"
    },
    {
      "commit": "7c101cbf7d6f36f4fe3a2255d6619ef3d3c9be90",
      "tree": "00cb8fe91626d7e255f107a8b4b274805b1cda7a",
      "parents": [
        "437739789d11f2c74c76907deb83e473b32577e3"
      ],
      "author": {
        "name": "Shikhar Jain",
        "email": "shikharj@qti.qualcomm.com",
        "time": "Thu Jul 16 15:42:35 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 16 03:13:54 2026 -0700"
      },
      "message": "Bound ISL operations during DeLICM scalar collapsing (#203073)\n\nThe IslMaxOperationsGuard in DeLICM previously covered only the zone\nanalysis performed in computeZone(). The subsequent greedyCollapse() -\u003e\ncollapseScalarsToStore() path calls computeScalarReachingOverwrite(),\nwhich performs an unbounded ISL lexmin().\nShare a single[already present], dormant IslMaxOperationsGuard across\nboth regions and arm it narrowly around each operation intensive\ncomputation via IslQuotaScope, so the same operations budget covers both\ncomputeZone() and the scalar collapsing. When the quota is exceeded\nduring scalar collapsing, bail out cleanly: increment DeLICMOutOfQuota\nand emit an \"OutOfQuota\" analysis remark.\n\nFixes: https://github.com/llvm/llvm-project/issues/202045\nGitOrigin-RevId: 59d7709ee9352df286bfb9b7a3b97c38deae5495\n"
    },
    {
      "commit": "437739789d11f2c74c76907deb83e473b32577e3",
      "tree": "7b09f68e51c29989510a9c62cbd7307dd2bc5625",
      "parents": [
        "410655ee10f198381772a39561a77790c3ee5737"
      ],
      "author": {
        "name": "Karthika Devi C",
        "email": "kartc@qti.qualcomm.com",
        "time": "Wed Jul 15 23:36:45 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 15 11:10:58 2026 -0700"
      },
      "message": "[Polly] Fix codegen assertions to account for DefinedBehaviorContext (#209188)\n\nDeLICM may produce new read access relations whose domain is restricted\nto the DefinedBehaviorContext (e.g., only valid when a parameter ensures\nno UB). The validation in setNewAccessRelation already accounts for\nthis, but the debug assertions in createNewAccesses and\ngenerateScalarLoads did not, causing false assertion failures during\ncode generation.\n\nIntersect the checked domains with getBestKnownDefinedBehaviorContext()\nto match the contract that DeLICM relies on.\n\nFixes #205732\n\nGitOrigin-RevId: ea612545644d1e3f238ac4cd053758f569f9bf3b\n"
    },
    {
      "commit": "410655ee10f198381772a39561a77790c3ee5737",
      "tree": "8d264c959a52ed660769ff80910155c67d5eaddc",
      "parents": [
        "74e3fe33ea854629e48066018f899efd72c3e67e"
      ],
      "author": {
        "name": "Karthika Devi C",
        "email": "kartc@qti.qualcomm.com",
        "time": "Wed Jul 15 15:51:38 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 15 03:23:38 2026 -0700"
      },
      "message": "[Polly] Skip vectorize.enable for FP loops with dist\u003d1 dependences (#205756)\n\nWhen -polly-annotate-metadata-vectorize is active, Polly marks its\ngenerated loops with llvm.loop.vectorize.enable\u003dtrue. This is harmful\nfor loops with a loop-carried dependence of distance 1 that involve\nfloating-point operations: the Loop Vectorizer reorders FP operations\n(e.g. scalar reduction like q \u003d factor*q), producing results that differ\nfrom the sequential scalar reference and causing correctness failures.\n\nTwo changes are made:\n\n1. IslAst.cpp: add PollyVectorizeMetadata to the PerformParallelTest\ngate so that dependence-distance computation is performed whenever\n-polly-annotate-metadata-vectorize is passed, not only when\n-polly-parallel or a vectorizer is active.\n\n2. IslNodeBuilder.cpp / LoopGenerators.cpp: when a loop has a dist\u003d1\ndependence involving FP operations, omit the vectorize.enable annotation\nentirely. This lets the Loop Vectorizer apply its own cost model and\nlegality checks decide.\n\nGitOrigin-RevId: df1838f5d961f9587ca4f90d992bef81cc6155db\n"
    },
    {
      "commit": "74e3fe33ea854629e48066018f899efd72c3e67e",
      "tree": "5cc752becd523ecc9bb5143b4cc4b38486288686",
      "parents": [
        "fad19c52459d24f734b368948330974a2725130c"
      ],
      "author": {
        "name": "Aiden Grossman",
        "email": "aidengrossman@google.com",
        "time": "Tue Jul 14 18:10:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 18:14:48 2026 -0700"
      },
      "message": "[Polly] Remove ability to use external shell\n\nThe external shell is getting removed soon, so remove the ability to\nforce enable it for polly tests.\n\nReviewers: ilovepi, Meinersbur, petrhosek\n\nPull Request: https://github.com/llvm/llvm-project/pull/209566\n\nGitOrigin-RevId: 6e6272088e69834fde6e30f0033f36ee63806d00\n"
    },
    {
      "commit": "fad19c52459d24f734b368948330974a2725130c",
      "tree": "565009bc23496a686f1757429393457a8b18a5e1",
      "parents": [
        "4cf4421259235ec3698de8487d9e86eef24d378d"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Tue Jul 14 13:24:29 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 04:25:47 2026 -0700"
      },
      "message": "[Passes] Replace OptimizationLevel with an enum (#209424)\n\nNow that OptimizationLevel no longer has a size dimension, replace it\nwith a simple enum class.\n\nGitOrigin-RevId: 5d5dd83a547ea555a8eada2dfd50413c44a3cfe9\n"
    },
    {
      "commit": "4cf4421259235ec3698de8487d9e86eef24d378d",
      "tree": "2cd66aa74a6c17a8cc68359cb1c8d005d7e7dea8",
      "parents": [
        "5e980ae6320254fcf1aef1a41018478a99bb7805"
      ],
      "author": {
        "name": "Ryotaro Kasuga",
        "email": "kasuga.ryotaro@fujitsu.com",
        "time": "Tue Jul 14 00:33:08 2026 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 13 08:36:01 2026 -0700"
      },
      "message": "[Polly] Cast delinearization terms to matching types (#206711)\n\n#204146 revealed that Polly can call `SCEVDivision::divide` with a\nnumerator and denominator of different types. I believe such divisions\nare not meaningful and should be avoided. As far as I can tell, the root\ncause is that `SCEVRemoveMax::rewrite` may collect terms whose types\ndiffer from that of the original expression.\n\nBefore this patch, the terms gathered by `SCEVRemoveMax::rewrite` were\nused for delinearization as they are. This patch applies\n`getTruncateOrSignExtend` to them to matching their types with that of\nthe original expression.\n\nGitOrigin-RevId: 4538987e5e9241af58246df18e625bfd7809cd04\n"
    },
    {
      "commit": "5e980ae6320254fcf1aef1a41018478a99bb7805",
      "tree": "45eb498a56af8e988297f341bf39350b62caafc8",
      "parents": [
        "2727a3f0da94b0aaa4c77aa3dfcd6c7c347a9424"
      ],
      "author": {
        "name": "Le Gia Bao",
        "email": "legiabao7300@gmail.com",
        "time": "Mon Jul 13 03:40:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 13 03:45:25 2026 -0700"
      },
      "message": "[Polly] Fix infinite recursion in `ScopExpander::visitAddRecExpr` (#206063)\n\nvisitUnknown follow VMap, call GenSE.getSCEV() on the mapped value, and\nget back the original AddRec, recursing visitAddRecExpr infinitely.\n\nInsert the result into SCEVCache before calling visit() to cut\nrecursion.\n\nFixes #205137.\n\nGitOrigin-RevId: 6461bd3749dc09698b76c3349e7b4befab7f7f9b\n"
    },
    {
      "commit": "2727a3f0da94b0aaa4c77aa3dfcd6c7c347a9424",
      "tree": "cf0e8a489475ec72440c14ccf927168ac4549e61",
      "parents": [
        "d41d8ac3839a21e600f3b0e0a9cf2e3ea8edbfb7"
      ],
      "author": {
        "name": "Aliaksei Urbanski",
        "email": "aliaksei.urbanski@gmail.com",
        "time": "Mon Jul 06 21:07:45 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 11:10:58 2026 -0700"
      },
      "message": "[NFC] Fix \"is is\" typos (#206288)\n\nThese changes aim to fix common \"is is\" typos.\n\nGitOrigin-RevId: 5e265484030eb034a14f4e4fec5abb0209605787\n"
    },
    {
      "commit": "d41d8ac3839a21e600f3b0e0a9cf2e3ea8edbfb7",
      "tree": "817dc2bd84b998fe55c5dd45bdfb6a75b17d9085",
      "parents": [
        "0d8faee9ba1ef6eb46063b1195d1946e9421e2ef"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Fri Jul 03 08:08:47 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 03 11:44:53 2026 -0700"
      },
      "message": "[IR] Enable dereferenceable-at-point semantics (#204795)\n\nThe precise semantics of `dereferenceable` are currently undocumented,\nbut de facto they are:\n\n* Argument position `dereferenceable` implies that the memory remains\ndereferenceable while the function executes.\n* Return position `dereferenceable` implies that the memory remains\ndereferenceable forever.\n\nThis is not coherent with how these attributes are used, in at least two\nways:\n\n* C++ reference arguments are annotated as `dereferenceable` by Clang.\nHowever, C++ does not actually make any guarantees that the underlying\nmemory does not get freed during the execution of the function. (Unlike\nRust, which does guarantee this via protectors in SB/TB.)\n* We infer `dereferenceable` on allocator return values (from\n`allocsize`). Allocator return values quite obviously do not stay\ndereferenceable forever, as they can be freed.\n\nThis PR changes the semantics of `dereferenceable` to apply at-point,\ni.e. only directly on function entry (for arguments), or at the position\nof the call (for return values). The fact that the memory cannot be\nfreed between the point where the `dereferenceable` fact has been\nestablished and the point where we\u0027re trying to speculate needs to be\nexplicitly proven now.\n\nThe main ways this happens is:\n\n* Via `nofree` function attributes (inferred).\n* Via `noalias nofree` argument attributes. The latter is inferred, but\nthe former generally requires frontend annotation. In Rust the\ncombination of `noalias nofree dereferenceable` is used, so it should\nnot be materially affected by these changes.\n* Context-sensitive analysis to check for frees (i.e. non-nofree calls\nor synchronizing atomics) between the point of definition and the point\nof speculation.\n\nIt\u0027s expected that this will regress optimization of C++ code in some\ncases, because we can no longer use dereferenceability facts that are\nnot, in fact, guaranteed to hold.\n\nThis finishes implementing an old RFC:\nhttps://discourse.llvm.org/t/rfc-decomposing-deref-n-into-deref-n-nofree/57873\n\nGitOrigin-RevId: 5969d640a349d593b5935fbe80be89f7a375f528\n"
    },
    {
      "commit": "0d8faee9ba1ef6eb46063b1195d1946e9421e2ef",
      "tree": "1bf9e750b47c7982af3560e5a9f58507c91ae1af",
      "parents": [
        "e324dd2b491afbf76803903686853a0fca6c087e"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Mon Jun 29 11:16:27 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 11:20:30 2026 -0700"
      },
      "message": "[CMake] Warn when the version of CMake is older than 3.31.0 (#204203)\n\nThis is a preparation to raise the minimum required CMake version to\n3.31.0 in LLVM 24.\n\nSee\nhttps://discourse.llvm.org/t/rfc-raising-minimum-required-cmake-version-to-3-31/91086.\n\nGitOrigin-RevId: e192ec42b426f6ffbc25419238a90f3c59088587\n"
    },
    {
      "commit": "e324dd2b491afbf76803903686853a0fca6c087e",
      "tree": "77c9632cf2037eeab5a3dac33964faf44dcaf404",
      "parents": [
        "425726b54dc3555af7e091afc327dafc8d94fb3d"
      ],
      "author": {
        "name": "Scott Linder",
        "email": "scott.linder@amd.com",
        "time": "Wed Jun 24 15:12:48 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 12:15:44 2026 -0700"
      },
      "message": "[docs] Create utils/docs (#203962)\n\nllvm-project is home to many sphinx documentation sites, each with\nconfiguration quirks and bespoke extensions.\n\nThe sphinx config model makes sharing code somewhat difficult. There\nare options like sphinx-multiproject, but some of our docs builds are\nout of the source tree while some are done out of the binary tree, so\nthe multiproject configuration itself would need to be generated. It\nalso would impose more uniformity around extensions than required.\n\nThis change instead creates a python package at utils/docs/llvm_sphinx\nand makes it available to all sphinx-build processes via PYTHONPATH.\nEach conf.py does not modify its own sys.path because not all builds are\nout of the source tree, so there isn\u0027t a stable relative path to use to\nrefer to the utils/docs/ directory.\n\nType checking via pyright in new package is pinned to being python 3.8\ncompatible.\n\nThe myst slug script from llvm/docs is promoted to be the default,\nwith a slight edit to targets needed in FlangDriver.md to adapt to the\nchange.\n\nThe ghlinks extension from clang gets lifted to be the first generic\nextension, although it is still only used in clang currently. I used it\nas an example of a general extension that might be useful for other\nprojects, but I also intend to add a new generic extension in a future\npatch.\n\nAs part of the move ghlinks is refactored a bit:\n\n* Rather than have a main function directly to run its tests, those\n  tests are now run via the command-line entrypoint to the new package,\n  e.g. `python utils/docs --test` will now replace\n  `python clang/docs/ghlinks.py --test`. This makes the command-line\n  more pithy (`python utils/docs/llvm_sphinx/ext/ghlinks --test` is a\n  bit long), and makes the default behavior when running be to\n  include utils/docs in the sys.path, so imports can be absolute and\n  the behavior is as close to the CMake targets as possible.\n* The static files that were previously written to a tempdir during\n  testing are just committed directly in git. The assumption here is\n  that the original version was taking pains to avoid polluting the\n  clang/docs directory with test files that would confuse sphinx-build,\n  and without that limitation the workaround can be removed.\n* Some typing-related changes to make it strictly python 3.8 compatible.\n\nChange-Id: Ie16de273f74973f163dbf7fe9d22d80a466d051f\nGitOrigin-RevId: 42ff45b865b1744e3f37a821bbcbc3d2ece1513c\n"
    },
    {
      "commit": "425726b54dc3555af7e091afc327dafc8d94fb3d",
      "tree": "bb900bae6ee5ea149b77c5f58de34a7a24e93beb",
      "parents": [
        "89ea69b2e4332e7ea4f4af00f6e0940f009855a0"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Wed Jun 24 12:42:58 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 03:45:37 2026 -0700"
      },
      "message": "[SCEV] Infer addrec nowrap flags during range analysis (#202964)\n\nWhen we\u0027re computing the range of the addrec, we already have to reason\nabout whether it wraps, so we may as well determine the nowrap flags at\nthe same time.\n\nThis is more precise than the previous logic that took the addrec range\nand checked whether adding a step to it does not wrap. For example, an\n`{0,+,1}` addrec with a full range can still be non-wrapping.\n\nNote that I removed some assertions in the SCEV printed that predicated\nexit counts actually have predicates. Due to SCEV\u0027s query order\ndependence, this can happen, also prior to this change, see for example\nhttps://llvm.godbolt.org/z/cWK1MMEqv. While this indicates suboptimal\nresults, it\u0027s not a bug, and we should not assert.\n\nFixes https://github.com/llvm/llvm-project/issues/200788.\n\nGitOrigin-RevId: 34ed491f6375a39248f71a98eaab5810dfc1324e\n"
    },
    {
      "commit": "89ea69b2e4332e7ea4f4af00f6e0940f009855a0",
      "tree": "14eb2141b038879bd56b6e947e0290d8e903e73f",
      "parents": [
        "44f1bc9d742648b28d007c09778600f00e992b0c"
      ],
      "author": {
        "name": "Ehsan Amiri",
        "email": "ehsan.amiri@huawei.com",
        "time": "Tue Jun 23 13:27:46 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 10:31:09 2026 -0700"
      },
      "message": "[SimpleLoopUnswitch] Reland \"Generalize the notion of trivial unswitching\" (#204934)\n\nIn the original PR for this feature, the third parameter of\n`MemorySSAUpdater::applyUpdates` was not set to `true`. This\ncaused `DT` to be invalid, resulting in the failures. This PR fixes the\nissue and provides an additional testcase.\n\nAlso in the original commit had three asserts to confirm\n`!ModifiedBranch ` when we bail out. One of these is redundant because\nit is enclosed in an `if` statement checking the same condition. This PR removes\nthe redundant `assert` too.\n\nGitOrigin-RevId: e8b663ba31d4eed75a6cbc758dbc9f56589c9239\n"
    },
    {
      "commit": "44f1bc9d742648b28d007c09778600f00e992b0c",
      "tree": "36c83dfa8fbd936b2446ec948a083a2685ee5162",
      "parents": [
        "7aab02afcb484624b5f404349a80e7248d24a0b7"
      ],
      "author": {
        "name": "Ramkumar Ramachandra",
        "email": "artagnon@tenstorrent.com",
        "time": "Mon Jun 22 08:48:42 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 00:51:08 2026 -0700"
      },
      "message": "[IRBuilder] (Target|InstSimplify)-fold intrinsics (#204967)\n\nIncludes changes to guard against a nullptr TLI and Call. TargetFold or\nInstSimplify fold in IRBuilderBase::CreateIntrinsic, in the same way we\nfold in Create(Unary|Binary)Intrinsic.\n\nGitOrigin-RevId: 5492d06d4fb99795b3b7247be374cdcb47f5ac03\n"
    },
    {
      "commit": "7aab02afcb484624b5f404349a80e7248d24a0b7",
      "tree": "67272b5f71abefd56342095b22eb0c40e43ceefc",
      "parents": [
        "510225b2b8d2172fc7835184d3cde336cc40a415"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Thu Jun 18 13:23:48 2026 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 00:51:01 2026 -0700"
      },
      "message": "Revert \"[SimpleLoopUnswitch] Generalize the notion of trivial unswitching\" (#204538)\n\nReverts llvm/llvm-project#193989.\n\nThat change caused failed assertions, see that PR for examples.\n\nGitOrigin-RevId: 7c05d28b817fff25507c0c1aa8a1129f4a69f223\n"
    },
    {
      "commit": "510225b2b8d2172fc7835184d3cde336cc40a415",
      "tree": "dc326cfc4f20f6888407d81d9db6d5890d37302c",
      "parents": [
        "faa61b32ee616f90c63ecfdc30389247d5197d4a"
      ],
      "author": {
        "name": "Ehsan Amiri",
        "email": "ehsan.amiri@huawei.com",
        "time": "Wed Jun 17 12:11:37 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 17 09:15:43 2026 -0700"
      },
      "message": "[SimpleLoopUnswitch] Generalize the notion of trivial unswitching (#193989)\n\nFor a loop like this\n\n```\n     for (int j \u003d 0; j \u003c M; j++) {\n       if (N \u003c\u003d 0) continue;          // invariant guard branches to latch\n       for (int i \u003d 0; i \u003c N; i++)\n         A[i] \u003d B[i] + 1;\n     }\n```\nSince none of the successors of the guard branch of the inner loop are\noutside the loop `j`, unswitching treats this as a non-trivial branch.\nIn reality, this is a perfect loop nest. If the condition of the guard\nof `i` loop is false, there is nothing to do and so if we unswitch this\nbranch, the loop does not need to be versioned. This matches the\nrequirements of a trivial unswitch. This patch extends trivial loop\nunswitching to catch cases like this.\n\nThe patch changes the loop guard so that instead of branching to the\nlatch of the outer loop, it exits the loop. This allows the existing code\nfor trivial unswitching to perform the transformation. The change in the\nloop guard will happen only if all conditions for unswitching are met.\n\nGitOrigin-RevId: 5a5d0fb1e471b3a1e842aee1f993e885c8d19713\n"
    },
    {
      "commit": "faa61b32ee616f90c63ecfdc30389247d5197d4a",
      "tree": "67272b5f71abefd56342095b22eb0c40e43ceefc",
      "parents": [
        "ec60320312ea0950416bfb86a5be8447d73ff803"
      ],
      "author": {
        "name": "Jameson Nash",
        "email": "vtjnash@gmail.com",
        "time": "Thu Jun 11 08:58:36 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 11 06:00:17 2026 -0700"
      },
      "message": "[docs] try again to handle doxygen everywhere (#203081)\n\nThe previous attempt at this (b7da9565017e32c18b927a7637714d1b660b558d)\nstill broke standalone builds. Now I have locally tested standalone\nflang, runtimes (with openmp), lldb, combined builds, and the utils\nscript. Hopefully that covers everything this time, and gets everything\ninto a more consistent state (always using the HandleDoxygen script in\nthe same way, included exactly once as required by the cmake design).\n\nGitOrigin-RevId: 7daddf2b6f44960344157a0accb3963a7d87ca03\n"
    },
    {
      "commit": "ec60320312ea0950416bfb86a5be8447d73ff803",
      "tree": "af1a527e135bf4fcb5823d6359750c23fd7ed7cd",
      "parents": [
        "f182162b87ea4efb5753187a6d17669cadbe2f64"
      ],
      "author": {
        "name": "Jameson Nash",
        "email": "vtjnash@gmail.com",
        "time": "Wed Jun 10 10:25:33 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 10 07:31:05 2026 -0700"
      },
      "message": "[docs] update CI to use latest release of doxygen (#202420)\n\nResubmitting https://github.com/llvm/llvm-project/pull/191501 for\nreview, with added https://github.com/llvm/llvm-project/pull/202404 for\nSHA checksum verification and fix for cmake target name conflicts.\nTested with `./llvm/utils/release/build-docs.sh -no-sphinx` locally.\n\nCo-authored-by: Aiden Grossman \u003caidengrossman@google.com\u003e\nGitOrigin-RevId: b7da9565017e32c18b927a7637714d1b660b558d\n"
    },
    {
      "commit": "f182162b87ea4efb5753187a6d17669cadbe2f64",
      "tree": "b1a4f1d60edcf5da85ca5867f6f44bbee6877603",
      "parents": [
        "e8f1cc8d24f5218eba053af44ddcefbca79d7ee9"
      ],
      "author": {
        "name": "Jameson Nash",
        "email": "vtjnash@gmail.com",
        "time": "Mon Jun 08 15:28:03 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 08 12:30:59 2026 -0700"
      },
      "message": "Revert \"[docs] update CI to use latest release of doxygen\" (#202412)\n\nReverts llvm/llvm-project#191501 as cmake CI is having an issue with it:\n\n```\n-- Doxygen enabled (1.14.0).\nCMake Error at /work/as-worker-4/publish-doxygen-docs/llvm-project/cmake/Modules/HandleDoxygen.cmake:29 (add_custom_target):\n  add_custom_target cannot create target \"doxygen\" because another target\n  with the same name already exists.  The existing target is a custom target\n  created in source directory\n  \"/work/as-worker-4/publish-doxygen-docs/llvm-project/llvm\".  See\n  documentation for policy CMP0002 for more details.\nCall Stack (most recent call first):\n  docs/CMakeLists.txt:59 (include)\n```\n\nGitOrigin-RevId: 50088e227544f2e6fe54dae54c57e3fd51623111\n"
    },
    {
      "commit": "e8f1cc8d24f5218eba053af44ddcefbca79d7ee9",
      "tree": "af1a527e135bf4fcb5823d6359750c23fd7ed7cd",
      "parents": [
        "31fdb422862301218af889675ff6b1ea1b03546d"
      ],
      "author": {
        "name": "Jameson Nash",
        "email": "vtjnash@gmail.com",
        "time": "Mon Jun 08 13:17:05 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 08 10:20:21 2026 -0700"
      },
      "message": "[docs] update CI to use latest release of doxygen (#191501)\n\nPreviously this was likely 1.9.8, with the Ubuntu 24.04 worker. Now this\nis 1.17.0. This is a fix for\nhttps://discourse.llvm.org/t/many-doxygen-links-are-broken/83809/2.\n\nFixes 3 significant issues for LLVM:\n\n- `dot` execution performance is very slow (cuts this half hour step\ndown to mere seconds). https://github.com/doxygen/doxygen/pull/12037\n- multi-thread performance is very slow (worse than single threading),\nand now uses all cores for ncpu times speedup (when using version with\nfix, autodetected by cmake).\nhttps://github.com/doxygen/doxygen/pull/12027\n- file links for IR.cpp and similar files were wrong\nhttps://github.com/doxygen/doxygen/pull/11944\n\nAssisted-by: Claude Code\nGitOrigin-RevId: 2eed192c213322a235197286f08f146b94b20c86\n"
    },
    {
      "commit": "31fdb422862301218af889675ff6b1ea1b03546d",
      "tree": "b1a4f1d60edcf5da85ca5867f6f44bbee6877603",
      "parents": [
        "71d16d13bde5e98f80237af4495a07bde68a1f2c"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Sat Jun 06 11:18:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jun 06 11:21:06 2026 -0700"
      },
      "message": "[Polly] Remove unused DenseMapInfo::getEmptyKey (#201992)\n\nAfter #201281 DenseMapInfo\u003cT\u003e::getEmptyKey() is no longer used by\nDenseMap. Remove the unused getEmptyKey definitions and dead sentinel\nuses.\n\nGitOrigin-RevId: 6b5883b38e158ce4659859ffd78f6ad2869979c1\n"
    },
    {
      "commit": "71d16d13bde5e98f80237af4495a07bde68a1f2c",
      "tree": "97e60b0eb94a910984400e53db0187f13f0b4268",
      "parents": [
        "a4751edc548e82621eb49fcb474bff2b330a2519"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Mon Jun 01 15:41:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 15:45:29 2026 -0700"
      },
      "message": "[Polly] Remove unused DenseMapInfo::getTombstoneKey (#200963)\n\n#200595 changed DenseMap to no longer create tombstone buckets, so\nDenseMapInfo\u003cT\u003e::getTombstoneKey() is never called. Remove dead\ndefinitions and dead tombstone branches.\n\nGitOrigin-RevId: daac50b33ee19d5ef5669da8f0119b6ce5c395d8\n"
    },
    {
      "commit": "a4751edc548e82621eb49fcb474bff2b330a2519",
      "tree": "95bf87f73b3eaad25b7de817843a6c1bc47bd2de",
      "parents": [
        "77e87711ecb84612823fa8882bdd2996b9ff9e64"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Mon May 25 15:35:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 25 15:40:43 2026 -0700"
      },
      "message": "[polly] Simplify with DenseMap::remove_if. NFC (#199577)\n\nIn preparation for DenseMap change that relocates surviving entries on\nerase.\n\nGitOrigin-RevId: 2cad228d3863f6a70b33625a1c967066207e34ab\n"
    },
    {
      "commit": "77e87711ecb84612823fa8882bdd2996b9ff9e64",
      "tree": "c95d5077061ec47c20e7a4decb6f1dabf994b6fb",
      "parents": [
        "ac39b298a05b1635d15f92d8d8b82d6f8c4756f5"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Thu May 21 23:47:58 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 14:53:09 2026 -0700"
      },
      "message": "[Polly] Do not invalidate SCEV before codegen (#194677)\n\nScopInfo expects the state of the IR to reflect the state before\ncodegen. Invalidating ScalarEvolution/SCEVs has the effect that values\nneed to be reanalyzed, but this is not possible during codegen where the\nCFG and SSA is not yet in a consistent state. That is, we rely on\nScalarEvolution to cache SCEVs from before the codegen phase. If\nScalarEvolution did not already do this, Polly would need to more\naggressively store SCEVs itself (in this case: `canSyntheziseInStmt`)\ninstead of asking ScalarEvolution.\n\nThe SCEV invalidation was introduced in\na61eda769890900903ee65278bf1ee07dfbd4ca5 which unfortunately does not\nexplain the issue it intends to fix. The added test case passes even\nwithout the invalidation. In any case, SCEVs should represent the state\nbefore codegen.\n\nFixes #192208\n\nGitOrigin-RevId: db614d99eea9ce78c4b1a44a6e01eb1a4ee8d5b2\n"
    },
    {
      "commit": "ac39b298a05b1635d15f92d8d8b82d6f8c4756f5",
      "tree": "8898967e367e0984261b7034046a78494b6abbe0",
      "parents": [
        "84cce8f4c2284bddac83a98a53ab7bab257f13d1"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Wed May 06 10:00:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 10:06:05 2026 -0700"
      },
      "message": "[PassManager] Make passes inherit from RequiredPassInfoMixin/OptionalPassInfoMixin (#192120)\n\nIt\u0027s very easy to forget to add `isRequired() { return true; }` for\npasses that must be run on all IR, rather than e.g. being skipped on\noptnone functions.\n\nThis PR adds RequiredPassInfoMixin/OptionalPassInfoMixin which have\n`isRequired()`, and the long term vision is there to be no default\n`isRequired()` on PassInfoMixin.\n\nHowever, for out-of-tree migration purposes, we leave a `isRequired() {\nreturn false; }` for now in PassInfoMixin.\n\nhttps://discourse.llvm.org/t/rfc-introduce-mandatorypassinfomixin-optionalpassinfomixin-for-required-not-required-passes/90547\n\nAssisted-by: Gemini\nGitOrigin-RevId: 11729f768a053360cfaf61f903ed52a1fe930dea\n"
    },
    {
      "commit": "84cce8f4c2284bddac83a98a53ab7bab257f13d1",
      "tree": "3abc77426b54fcb0749487723e0a93cf15e3e6c9",
      "parents": [
        "33612b51d30341de7b1a3bb2bb2eda5577c37799"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Sat Apr 25 17:08:20 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 25 09:10:18 2026 -0700"
      },
      "message": "[SCEVExp] Use Builder.CreateBinOp in InsertBinOp. (#154148)\n\nSCEVExpander\u0027s builder already uses InstSimplifyFolder. Use it to\nconstruct binary ops via CreateBinOp instead of BinaryOperator::Create.\n\nThis helps to simplify away a few more instructions during SCEV\nexpansion.\n\nPR: https://github.com/llvm/llvm-project/pull/154148\nGitOrigin-RevId: 4b87091acf019ea915c08da77701cc9beaba78f4\n"
    },
    {
      "commit": "33612b51d30341de7b1a3bb2bb2eda5577c37799",
      "tree": "9ce4b94810dbf7d577c71d2d617496f9ca2c6346",
      "parents": [
        "ee5d0e6174ae7b3d3402c07a5c6292e2c9d9707b"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Wed Apr 22 11:34:35 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 02:40:20 2026 -0700"
      },
      "message": "[Passes] Remove Os and Oz optimization pipelines (#191363)\n\nThese should use O2 with the optsize or minsize attributes instead.\n\nThis enforces that there is no divergence between pipeline-level Os/Oz\nand function-level Os/Oz at an architectural level.\n\nFor the purpose of testing IR that does not have optsize/minsize itself,\nit\u0027s possible to use `-force-attribute\u003doptsize` etc.\n\nGitOrigin-RevId: 86b9775612f893c669466fc749643cfacb8df682\n"
    },
    {
      "commit": "ee5d0e6174ae7b3d3402c07a5c6292e2c9d9707b",
      "tree": "719d98f9f6b234911f74401fe69c853c0caa1b0a",
      "parents": [
        "d6577c35e2a1fc0345c54edd7a9d15eb42af7e4a"
      ],
      "author": {
        "name": "Peter Waller",
        "email": "peter.waller@arm.com",
        "time": "Tue Apr 21 13:43:13 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 05:46:22 2026 -0700"
      },
      "message": "[Polly] Disable PCH reuse for unit tests (#193209)\n\nPolly library targets already disable PCH reuse because Polly\nunconditionally builds with -fno-rtti and -fno-exceptions. Reusing LLVM\nPCHs that were built with RTTI or exceptions enabled is incompatible\nwith Clang when compiling Polly targets under those flags.\n\nAfter 47eb8b43c990 enabled PCH reuse for unit tests, Polly unit tests\ncan hit the same mismatch as the library targets. Pass DISABLE_PCH_REUSE\nthrough the shared add_polly_unittest wrapper so all Polly unit tests\nfollow the existing Polly target policy.\n\ncc @aengelke -- a minor fix for polly.\n\nGitOrigin-RevId: d629a221707eab078ebf74e7367cd8c6e4cbe9f9\n"
    },
    {
      "commit": "d6577c35e2a1fc0345c54edd7a9d15eb42af7e4a",
      "tree": "cc5db1c3f2514e3e03cd624de6acf3332a91aa24",
      "parents": [
        "970bad406a9c24f317960a16c9bc0ef3f7720c8f"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Apr 20 15:06:45 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 20 07:11:26 2026 -0700"
      },
      "message": "[Polly] Apply gist only after converting to pw_aff (#192975)\n\nA single-valued set/map is not necessarily single-valued anymore after\napplying after gisting a context. In particular, the set/map might not\nbe single-valued outside the context.\n\nConvert the result of MemoryAccess::getAddressFunction() directly to\npw_aff. Since it is the result of lexmin(), it is single-valued by\ndefinition. Gist the context only after te conversion.\n\nWe should consider using `isl_basic_map_partial_lexmin_pw_multi_aff` in\n`getAddressFunction()` directly to avoid the intermediate step.\n\nFixes #190459\n\nGitOrigin-RevId: 6b7d1a494bd9e2e57fe156faffe19ba8ea6a0ee0\n"
    },
    {
      "commit": "970bad406a9c24f317960a16c9bc0ef3f7720c8f",
      "tree": "ea7919a339237e69644859e1a38db41a06fbaaaa",
      "parents": [
        "0fc1d4f7725894fc169cab07c6aa5f73110341c7"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Apr 20 13:38:50 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 20 05:41:19 2026 -0700"
      },
      "message": "[Polly][NFC] Convert IslNodeBuilder::preloadUnconditionally to isl++ (#192959)\n\nGitOrigin-RevId: d242dfc3121d9813d57108219cba7ca167ae66d1\n"
    },
    {
      "commit": "0fc1d4f7725894fc169cab07c6aa5f73110341c7",
      "tree": "73581f7f937704b00314e060fce858b091269ef9",
      "parents": [
        "48be50302407f25bc93ef7a66fcf10444bb9bc78"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Apr 20 12:33:58 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 20 04:36:01 2026 -0700"
      },
      "message": "[Polly][NFC] Convert IslNodeBuilder::preloadInvariantLoad to isl++ (#192942)\n\nAlso fix the wrong lifetime annotation of\n`IslNodeBuilder::materializeParameters`\n\nGitOrigin-RevId: 43ccda2703732cab7dd054849174ee03fddfaa22\n"
    },
    {
      "commit": "48be50302407f25bc93ef7a66fcf10444bb9bc78",
      "tree": "b3a6842b2615b8098182351fe3dd07863f08d887",
      "parents": [
        "d081fc4cb47792dbe53c6f1e779d83be4bf6030f"
      ],
      "author": {
        "name": "Nikita Popov",
        "email": "npopov@redhat.com",
        "time": "Thu Apr 09 10:53:02 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 09 01:55:33 2026 -0700"
      },
      "message": "[Polly] Remove pipeline-level Oz handling for LoopRotate (#191137)\n\nThis handling was moved fully into the pass in\n1662c200a5b151ad15b7efc82837076d8967dc11. However, that changed\nmissed the usage of LoopRotate in polly.\n\nGitOrigin-RevId: 3ad6afe0609b2138b81f773cf4fbe2d464bc26d6\n"
    },
    {
      "commit": "d081fc4cb47792dbe53c6f1e779d83be4bf6030f",
      "tree": "c2a2edc02423d81434de3beee93e102c6a85d142",
      "parents": [
        "cc5fb466dff0f8addbd26450ebd5a893f227bbac"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Apr 06 03:09:51 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Apr 05 18:15:47 2026 -0700"
      },
      "message": "[Polly] Correct integer comparison bit width (#190493)\n\nFor making an integer compareable to bool, don\u0027t compare it to bool.\n\nBug occured during the reduction of #190459\n\nGitOrigin-RevId: 26697f4d07eb921aebabdaa7d064c5165c70717e\n"
    },
    {
      "commit": "cc5fb466dff0f8addbd26450ebd5a893f227bbac",
      "tree": "8f8b155a285cc2af8f00b618358c07b4f2b6b441",
      "parents": [
        "c23d5620fa9f20a01e69a885f1407abcf83448ff"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Apr 04 23:01:20 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 14:05:14 2026 -0700"
      },
      "message": "[Polly][NFC] Convert ScopBuilder::buildUnsignedConditionSets() to isl++ (#190487)\n\nGitOrigin-RevId: f959327bc8a0cc4d88d7db58367d5bfde12eb7c2\n"
    },
    {
      "commit": "c23d5620fa9f20a01e69a885f1407abcf83448ff",
      "tree": "b51abd45f02560d5c9679ecf54079e0f2245fda9",
      "parents": [
        "3ddc81c995c4d3d5168c731e8cb6a703ece09583"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Sat Apr 04 16:03:36 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 08:05:52 2026 -0700"
      },
      "message": "[SCEV] Move NoWrapFlags definition outside SCEV scope, use for SCEVUse. (#190199)\n\nThe patch moves out of SCEV\u0027s scope so they can be re-used for SCEVUse.\nSCEVUse gets an additional getNoWrapFlags helper that returns the union\nof the expressions SCEV flags and the use-specific flags.\n\nSCEVExpander has been updated to use this new helper.\n\nIn order to avoid other changes, the original names are exposed via\nconstexpr in SCEV. Not sure if there\u0027s a nicer way. One alternative\nwould be to define the enum in struct, and have SCEV inherit from it.\n\nThe patch also clarifies that the SCEVUse flags encode NUW/NSW, and\nhides getInt, setInt, etc to avoid potential mis-use.\n\nPR: https://github.com/llvm/llvm-project/pull/190199\nGitOrigin-RevId: ff4c6fe24ecb7857d119fe4bcaa8189f755973d7\n"
    },
    {
      "commit": "3ddc81c995c4d3d5168c731e8cb6a703ece09583",
      "tree": "1b4e815f531f0c8b3f3d50def6db22bf8b16ba69",
      "parents": [
        "0dc49b0d99cdc5fe86f810d18359ee4a6da8aa2b"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Apr 04 15:20:15 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 06:25:26 2026 -0700"
      },
      "message": "[Polly][NFC] Convert ScopBuilder::getPwAff() to isl++ (#190458)\n\nGitOrigin-RevId: fb3fada084c100bbba711a259cc795f110fa8bff\n"
    },
    {
      "commit": "0dc49b0d99cdc5fe86f810d18359ee4a6da8aa2b",
      "tree": "f62fb36395ae8a53e0d50cd439355af006090bcd",
      "parents": [
        "68494dc23d105f0e909b0555c3b695f1b4262352"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Apr 04 14:49:13 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 05:50:45 2026 -0700"
      },
      "message": "[Polly][NFC] Use factory pattern (#190456)\n\nTo (theoretically) reduce coupling of Scop and ScopBuilder.\n\nGitOrigin-RevId: 47d80039483c60040d0931df69813e15480ff7b2\n"
    },
    {
      "commit": "68494dc23d105f0e909b0555c3b695f1b4262352",
      "tree": "750e02123f6377291236a7e7edec899b6762513e",
      "parents": [
        "16217cd410072eef0cf818fa7f77570bd414328f"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Apr 04 13:42:04 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Apr 04 04:45:34 2026 -0700"
      },
      "message": "[Polly] Assumptions used to derive domain must not be pruned by that domain (#190436)\n\nThe code that emits the conditions for whether a statement is executed\nby checking whether we are in the statement\u0027s domain may apply\nassumptions (such as an integer truncation being reversible). Later code\nthen assumes that these assumptions are only relevent for then the\nstatement is executed, but actually it is used for determining whether\nit is executed.\n\nBreak this circular reasoning by introducing an `IsInsideDomain` flag\nthat can be set when the domain has not been verified yet.\n\nFixes #190128\n\nThanks to @thapgua for the bug report\n\nGitOrigin-RevId: 948a64720b1ec018e13b4bb8250482f9615d7856\n"
    },
    {
      "commit": "16217cd410072eef0cf818fa7f77570bd414328f",
      "tree": "949dae88a2fe798e6a43aa9a76b308ee646e2b08",
      "parents": [
        "a2bf760e8cedbefff67280787c72186249292127"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Fri Apr 03 17:09:40 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 03 09:11:08 2026 -0700"
      },
      "message": "[SCEV] Replace some hasFlags calls with hasNo(Un)SignedWrap (NFC). (#190352)\n\nThis is slightly more compact and reduces diff when switching to enum\nclass (https://github.com/llvm/llvm-project/pull/190199).\n\nPR: https://github.com/llvm/llvm-project/pull/190352\nGitOrigin-RevId: 7edf8a7b51bb411a7e13bcd5496fc70d3c6be888\n"
    },
    {
      "commit": "a2bf760e8cedbefff67280787c72186249292127",
      "tree": "05f6d24ee13871303af4e717e5671cbd86a2c173",
      "parents": [
        "68a602aa1f5ebf8bd2060045a3b64deefb07e141"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Thu Apr 02 12:51:39 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 02 03:55:09 2026 -0700"
      },
      "message": "[Polly] Print params with stmt tracing (#189362)\n\nIt was helpful for #189350.\n\nGitOrigin-RevId: bed2761bc012b23e652c1f9377a7fd0a9a302bee\n"
    },
    {
      "commit": "68a602aa1f5ebf8bd2060045a3b64deefb07e141",
      "tree": "f33dcfa1730f2d3ffdd2861fdc72ea333e97af71",
      "parents": [
        "786a303a4365ec4813598fd63561fe52f97003f6"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Mar 30 13:08:23 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 30 04:10:32 2026 -0700"
      },
      "message": "[Polly] Avoid __builtin_assume circular context reasoning (#189350)\n\nThe conversion of SCEVs to isl::pw_aff may only be valid under\nconditions that have to be confirmed via RTC. This also happens with\n__builtin_assume. These user-added assumptions are then added to\nScopInfo::Context. However, the conclusion in ScopInfo::Context is then\nalso used to simplify (\"gist\") its own RTC preconditions in\nScopInfo::AssumedContext and ScopInfo::InvalidContext away.\n\nAvoid by adding user assumptions with preconditions to\nScopInfo::DefinedBehaviourContext instead, which is not used to simplify\nAssumedContext/InvalidContext.\n\nFixes #187922\n\nThanks @thapgua for the report\n\nGitOrigin-RevId: 7fb4f732f5dd30506d3e453b503ef1293d257a5b\n"
    },
    {
      "commit": "786a303a4365ec4813598fd63561fe52f97003f6",
      "tree": "cf29f6c7a2e1dd530dd5bb2ad430f09b0628d774",
      "parents": [
        "669d35d35b171191cace7a917c3889d4ea522074"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Mar 28 23:55:05 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Mar 28 16:00:17 2026 -0700"
      },
      "message": "[Polly] Forward VFS from PassBuilder for IO sandboxing (#188657)\n\n#184545 default-enables the IO sandbox in assert-builds. This causes\nClang using Polly to crash (#188568).\n\nThe issue is that `PassBuilder` uses `vfs::getRealFileSystem()` by\ndefault which is considered a IO sandbox violation in the Clang process.\nWith this PR store the VFS from the `PassBuilder` from the original\n`registerPollyPasses` call for creating other `PassBuilder` instances.\n\nThis PR also adds infrastructure for running Polly in `clang` (in\naddition in `opt`). `opt` does not enable the sandbox such that we need\nseparate tests using Clang.\n\nCloses: #188568\nGitOrigin-RevId: 458f1aae8d2da5bf786ba53ea200e94a918ff55a\n"
    },
    {
      "commit": "669d35d35b171191cace7a917c3889d4ea522074",
      "tree": "041d79b08633a933b6d25ec97720d700b5cdccf5",
      "parents": [
        "d129f95a0aeb55c5877e00a19263b26721da7c83"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Mar 23 12:04:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 23 04:05:35 2026 -0700"
      },
      "message": "[Polly] Update isl to isl-0.27-89-gdc16f8e3 (#188013)\n\nUpdate isl to include\n\nhttps://repo.or.cz/isl.git/commit/ee3677039011f2f87f3630f8b2a004f9e4944a08\nwhich fixes #187216\n\nCloses #187216\n\nThanks @skimo-openhub for the fix and @thapgua for the bugreport.\n\nGitOrigin-RevId: bd6e8a8c66f73d35fb9ead04767b81938c05eaf4\n"
    },
    {
      "commit": "d129f95a0aeb55c5877e00a19263b26721da7c83",
      "tree": "c7b9aa804835947bbe08be9f7eec676463fafae2",
      "parents": [
        "46bb7146e9d821ca70e3c15f2e83cd59615c91fe"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Thu Mar 19 11:18:06 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 19 03:21:20 2026 -0700"
      },
      "message": "[Support] Use block numbers for LoopInfo BBMap (#103400)\n\nReplace the DenseMap from blocks to their innermost loop a vector\nindexed by block numbers, when possible. Supporting number updates is\nnot trivial as we don\u0027t store a list of basic blocks, so this is not\nimplemented.\n\nNB: I\u0027m generally not happy with the way loops are stored. As I think\nthat there\u0027s room for improvement, I don\u0027t want to touch the\nrepresentation at this point.\n\nPull Request: https://github.com/llvm/llvm-project/pull/103400\n\nGitOrigin-RevId: 0d05c882ce9976de790e690b92e2673088591e36\n"
    },
    {
      "commit": "46bb7146e9d821ca70e3c15f2e83cd59615c91fe",
      "tree": "02dc7961ae1f45fc2c39b05366aa0036b217d024",
      "parents": [
        "3d5d7dd9ae458428fcbcca7adf9581b9fc74499f"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Wed Mar 18 16:46:28 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 18 08:51:09 2026 -0700"
      },
      "message": "[Polly][NFC] Drop uses of BranchInst (#187301)\n\nGitOrigin-RevId: bfedc2aa7668a184d1a8bad709f42e2d092b00d6\n"
    },
    {
      "commit": "3d5d7dd9ae458428fcbcca7adf9581b9fc74499f",
      "tree": "23ebb5bff56a629bd8f1b1312249d2e551bb468e",
      "parents": [
        "ae928eaa51839b002680eda9101666d68f092bd2"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Tue Mar 17 15:10:04 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 17 07:15:33 2026 -0700"
      },
      "message": "Reland \"[DomTree] Assert non-null block for pre-dom tree\" (#187005)\n\nReland #186790 with fix for SCEV. A loop can have more than one latch,\nin which case getLoopLatch returns null.\n\nGitOrigin-RevId: 43ec60eee5f95e01c3b92ed08d09d574556c62c8\n"
    },
    {
      "commit": "ae928eaa51839b002680eda9101666d68f092bd2",
      "tree": "f26944eec9757610a4a47bd27141cbb07122c972",
      "parents": [
        "2c335594e12af97800abbbadcd317b27aa0e0116"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Mon Mar 16 17:29:35 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 16 09:30:27 2026 -0700"
      },
      "message": "Revert \"[DomTree] Assert non-null block for pre-dom tree\" (#186831)\n\nReverts llvm/llvm-project#186790\n\nBreaks buildbots, there are more SLPVectorizer problems.\n\nhttps://lab.llvm.org/buildbot/#/builders/52/builds/15810\n\nGitOrigin-RevId: e30aa40aa677ea967db9d2d20e43b64902070e56\n"
    },
    {
      "commit": "2c335594e12af97800abbbadcd317b27aa0e0116",
      "tree": "23ebb5bff56a629bd8f1b1312249d2e551bb468e",
      "parents": [
        "81925a51c6e6574d6a9e6b88c2dac506e1213ade"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Mon Mar 16 16:07:49 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 16 08:11:11 2026 -0700"
      },
      "message": "[DomTree] Assert non-null block for pre-dom tree (#186790)\n\nIn a pre-dominator tree, blocks should never be null.\n\nGitOrigin-RevId: d4c22859db8a3ac3ea11d9fdede28dcb57f3aee1\n"
    },
    {
      "commit": "81925a51c6e6574d6a9e6b88c2dac506e1213ade",
      "tree": "f26944eec9757610a4a47bd27141cbb07122c972",
      "parents": [
        "5853586af53685eba307dab841b2371c7538e77a"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Sun Mar 15 21:34:38 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Mar 15 13:35:36 2026 -0700"
      },
      "message": "[IR] Don\u0027t allow successors() over block without terminators (#186646)\n\nThere\u0027s no point constructing a dominator tree or similar on\nknown-broken IR. Generally, functions should be able to assume that IR\nis valid (i.e., passes the verifier). Users of this \"feature\" were:\n\n- Verifier, fixed by verifying existence of terminators first.\n- FuzzMutate, worked around by temporarily inserting terminators.\n- OpenMP to run analyses while building the IR, worked around by\ntemporarily inserting terminators.\n- Polly to work with an empty dominator tree, fixed by temporarily\nadding an unreachable inst.\n- MergeBlockIntoPredecessor, inadvertently, fixed by adding terminator\nbefore updating MemorySSA.\n- Some sloppily written unit tests.\n\nGitOrigin-RevId: 36041192cf6c9042615c8d2364cacc698ef89865\n"
    },
    {
      "commit": "5853586af53685eba307dab841b2371c7538e77a",
      "tree": "917761bdba04270d10d6c13dcd8cc361e8772341",
      "parents": [
        "1bf91761dbdb77c45cfef71c1b1fc0b0a2e9aafa"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Fri Mar 13 16:23:06 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 13 09:24:47 2026 -0700"
      },
      "message": "[SCEV] Introduce SCEVUse, use it instead of const SCEV * (NFCI). (#91961)\n\nThis patch introduces SCEVUse, which is a tagged pointer containing the\nused const SCEV *, plus extra bits to store NUW/NSW flags that are only\nvalid at the specific use.\n\nThis was suggested by @nikic as an alternative\nto https://github.com/llvm/llvm-project/pull/90742.\n\nThis patch just updates most SCEV infrastructure to operate on SCEVUse\ninstead of const SCEV *. It does not introduce any code that makes use\nof the use-specific flags yet which I\u0027ll share as follow-ups.\n\nCompile-time impact: https://llvm-compile-time-tracker.com/compare.php?from\u003dee34eb6edccdebc2a752ffecdde5faae6b0d5593\u0026to\u003d5a7727d7819414d2acbc5b6ab740f0fc2363e842\u0026stat\u003dinstructions%3Au\n\nGitOrigin-RevId: f8734a5e107f603871e4e327ddc41fb8a6058f3e\n"
    },
    {
      "commit": "1bf91761dbdb77c45cfef71c1b1fc0b0a2e9aafa",
      "tree": "406614ae723c11166ed84a48c8012c7c6b761724",
      "parents": [
        "ea4b263364ed07039cb5d0ddcfc589d27a9e63f0"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Thu Mar 12 17:36:19 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 12 09:41:01 2026 -0700"
      },
      "message": "[Polly] Use GenDT in assertion (#186164)\n\n`DT` is always the analysis for the to-be-optimized function while\n`GenDT` is the analysis of the function that we currently generate code\nfor, which can also be an outlined function. Here, we want to check\ndominance in the generated code, hence we must use `GenDT`.\n\n#179433 already fixed the same issue for `BlockGenerator`. The same\npattern is used in `RegionGenerator` which is fixed here. A good\nargument to avoid code duplication.\n\nFixes: #185313\n\nThanks to @jaschiu for the bug report and reproducer\n\nGitOrigin-RevId: 42b4dce07c41fe8dfa0ac900583d06852d39af39\n"
    },
    {
      "commit": "ea4b263364ed07039cb5d0ddcfc589d27a9e63f0",
      "tree": "0c6ab228fa0a5eb5482e04a923ece19fd458ccdc",
      "parents": [
        "d69c4a752804158e26ad39157845fa799ff41ecd"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sun Mar 01 23:06:59 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Mar 01 14:11:25 2026 -0800"
      },
      "message": "[Polly] Update isl to isl-0.27-86-gcf471c16 (#184044)\n\nUpdate isl to include\nhttps://repo.or.cz/isl.git/commit/d1b49851aca59c1edd01cb1dc97674e6d79d07af\nwhich fixes #180958\n\nCloses #180958\n\nThanks @skimo-openhub for the fix and @thapgua for the bugreport.\n\nGitOrigin-RevId: e6aafae828e0c6f7045cdc17253b42b844f52098\n"
    },
    {
      "commit": "d69c4a752804158e26ad39157845fa799ff41ecd",
      "tree": "8429ce8111cc14aa07a618ab36d021d1fb1b29a1",
      "parents": [
        "d5490be17bc5f6b7872d7cc994813b0aec9ffa5b"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Feb 23 01:09:36 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Feb 22 16:10:51 2026 -0800"
      },
      "message": "[Polly] Update isl to isl-0.27-82-g38cf72a4 (#182786)\n\nUpdate isl to include\nhttps://repo.or.cz/isl.git/commit/38cf72a41b708475fc22dc9fc62c7caae1ac29f6\nwhich fixes #179993. This changes some string representations of ISL\nobjects in tests which are updated.\n\nFixes #179993\n\nThanks @skimo-openhub for the fix and @thapgua for the bugreport.\n\nGitOrigin-RevId: 8e8974e5ebb0aa73abb498f10133756d3fd37711\n"
    },
    {
      "commit": "d5490be17bc5f6b7872d7cc994813b0aec9ffa5b",
      "tree": "4c7d9716161e2e5d4deece393e96d8ca15580a91",
      "parents": [
        "abc2d48b1e6c879695f26200d4d0ba21f3882045"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Fri Feb 20 12:07:18 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 20 03:10:34 2026 -0800"
      },
      "message": "[CMake][LLVM] Add PCH infrastructure and LLVMSupport PCH (#176420)\n\nThis patch implements PCH support. PCH is enabled by default, unless\nnoted below, and can be disabled with\n-DCMAKE_DISABLE_PRECOMPILE_HEADERS\u003dON.\n\n* Libraries can define precompiled headers using a newly added\nPRECOMPILE_HEADERS keyword. If specified, the listed headers will be\ncompiled into a pre-compiled header using standard CMake mechanisms.\n\n* Libraries that don\u0027t define their own PRECOMPILE_HEADERS but directly\ndepend on a library or component that defines its own PCH will reuse\nthat PCH. This reuse is not transitive to prevent excessive use of\nunrelated headers. If multiple dependencies provide a reusable PCH, the\nfirst one with the longest dependency chain (stored in the CMake target\nproperty LLVM_PCH_PRIORITY) is used. However, due to CMake limitations,\nonly PCH from targets that are already defined can be reused; therefore\nlibraries that should reuse a PCH must be defined later in the CMake\nfile (\u003d\u003e add_subdirectory order matters).\n\n* Libraries and executables can prevent PCH reuse with the keyword\nDISABLE_PCH_REUSE. This both prevents reuse from dependencies and reuse\nby other dependants. This is useful when, e.g., internal headers are\nused in the PCH or the used headers are unlikely to provide benefits for\ndependants.\n\n* Precompiled headers are only used for C++ sources, not for C.\n\n* With GCC, PCH provide very little benefits (tested with GCC 14 and 15)\ndue to increased template instatiation costs, but substantially increase\nmax-rss and build directory size. Therefore, disable PCH with GCC by\ndefault; this can be explicitly overridden on the command line with\n-DCMAKE_DISABLE_PRECOMPILE_HEADERS\u003dOFF.\n\n* With ccache and non-Clang compilers, changes in macro definitions are\nnot always accurately forwarded with ccache\u0027s preprocessed mode. To be\non the safe side, when ccache is enabled, disable PCH with all non-Clang\ncompilers; this can be explicitly overridden.\n\n* With sccache, changes in macro definitions are not identified, which\nin some cases can lead to false positive cache hits. Conservatively\ndisable PCH with sccache by default.\n\n* Add a base PCH to LLVMSupport, which includes widely used standard\nlibrary and Support+ADT headers. The pch.h is placed in include so that\nlater PCH headers can extend that list of headers.\n\n* Flang PCH use is ported to the general mechanism.\n\nAddition of PCH headers for other components (e.g., IR, CodeGen) will be\nposted as separate PRs.\n\nRFC:\nhttps://discourse.llvm.org/t/rfc-use-pre-compiled-headers-to-speed-up-llvm-build-by-1-5-2x/89345\nGitOrigin-RevId: b82c7fc65229c8b2b6a964f023f6ec59b3cf9210\n"
    },
    {
      "commit": "abc2d48b1e6c879695f26200d4d0ba21f3882045",
      "tree": "58618cee624f0cac76ee4007bf9438cad9f6529f",
      "parents": [
        "4e1ddf66946532ab6a018c52ab40c996c535abb8"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Feb 16 23:28:51 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 16 14:31:52 2026 -0800"
      },
      "message": "[Polly][ScopInfo] Lazy Scop instantiation (#179535)\n\nThe old NPM was using ScopInfo pass introduced in\nhttps://reviews.llvm.org/D20962, which in contrast to the LPM was using\nScopInfoRegionPass. ScopInfo was instantiating all Scop objects\nimmediately. After codegenning, all Scop objects need to be recomputed\nanyway, making this approach wastful. The PhaseManager inherited this\nbehaviour from the NPM, leading to some concerns.\n\nReplace the instantiate-all behavior of ScopInfo with an on-demand\ninstantiation. SCoPs now must be iterated using ScopDetection instead\nusing ScopInfo, but only some unsed legacy NPM passes (now removed) were\ndoing that anyway.\n\nGitOrigin-RevId: d5607ad55c5e56383d33e6ec0f582a687d75dedb\n"
    },
    {
      "commit": "4e1ddf66946532ab6a018c52ab40c996c535abb8",
      "tree": "3a9a90567efc02fb5ac04bc714f4c105f66e0137",
      "parents": [
        "2d4bc37049c36681ca97e58cf8d67a94c06942a7"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Feb 16 11:00:49 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 16 02:06:13 2026 -0800"
      },
      "message": "[Polly] Honor \u0027scops\u0027 phase being disabled (#180380)\n\n`opt -passes\u003dpolly-custom\u003cdetect\u003e`, or `stopafter\u003ddetect` would still\nrun the ScopInfo analysis even though it should run when explicitly\nenabled or required by another phase.\n\nGitOrigin-RevId: 3272ba7b8fd7672b92eb969e71533b4115e74ecd\n"
    },
    {
      "commit": "2d4bc37049c36681ca97e58cf8d67a94c06942a7",
      "tree": "805d29baa7ae44f6e95fbe795240a7f2132e9f82",
      "parents": [
        "5c679b84e17d47d48d4c0695dc12b0a596deb528"
      ],
      "author": {
        "name": "Shilei Tian",
        "email": "i@tianshilei.me",
        "time": "Sun Feb 15 12:06:42 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Feb 15 09:12:17 2026 -0800"
      },
      "message": "[RFC][IR] Remove `Constant::isZeroValue` (#181521)\n\n`Constant::isZeroValue` currently behaves same as\n`Constant::isNullValue` for all types except floating-point, where it\nadditionally returns true for negative zero (`-0.0`). However, in\npractice, almost all callers operate on integer/pointer types where the\ntwo are equivalent, and the few FP-relevant callers have no meaningful\ndependence on the `-0.0` behavior.\n\nThis PR removes `isZeroValue` to eliminate the confusing API. All\ncallers are changed to `isNullValue` with no test failures.\n\n`isZeroValue` will be reintroduced in a future change with clearer\nsemantics: when null pointers may have non-zero bit patterns,\n`isZeroValue` will check for bitwise-all-zeros, while `isNullValue` will\ncheck for the semantic null (which\nmay be non-zero).\nGitOrigin-RevId: 70905e0afae2e2f14c405bca514494c5b1449822\n"
    },
    {
      "commit": "5c679b84e17d47d48d4c0695dc12b0a596deb528",
      "tree": "db7a4ad5ba4b86cdc1b1fd1338a89de2791a6ada",
      "parents": [
        "f78f87fca811e776ca6a960c246a227c690fffdf"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sun Feb 08 00:30:33 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Feb 07 15:35:53 2026 -0800"
      },
      "message": "[Polly] Update isl to isl-0.27-78-gfc484e00 (#180377)\n\nUpdate isl to include\nhttps://repo.or.cz/isl.git/commit/fc484e004200964f8f18249de1f510393ec924a9\nwhich fixes #180000.\n\nThe isl update also fixes #34710 which had the same cause but with an\nempty access domain (#180000 has an empty statement domain). Thus we\nalso revert 163cacb46960be4dd0d8562737bbf0ea97cb14ad which now only adds\nunnecessary overhead.\n\nA regression test has been added to isl which is why we do not add a\ntest in Polly.\n\nFixes: #180000\n\nThanks @skimo-openhub for the fix and @thapgua for the bugreport.\n\nGitOrigin-RevId: ac57c4a7285a0f4d9707ec9c3be8c5b0ee1423ec\n"
    },
    {
      "commit": "f78f87fca811e776ca6a960c246a227c690fffdf",
      "tree": "2bd5a75826a7d4dbb1e076af8bad1392d7726059",
      "parents": [
        "5614d65ad9936f3fcf1fcd44ba65ab2da996ecf2"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Feb 03 21:04:41 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 03 12:21:05 2026 -0800"
      },
      "message": "[Polly] LLVM_DEBUG -\u003e POLLY_DEBUG\n\nGitOrigin-RevId: 0f88b5da06e2c17743aa59633d1f9013977a9cc0\n"
    },
    {
      "commit": "5614d65ad9936f3fcf1fcd44ba65ab2da996ecf2",
      "tree": "5e777ccf2c14a387f886724be7bf672f614e26c4",
      "parents": [
        "225a60e1bb74047782d14c4c63f8ef78862b1466"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Feb 03 12:09:37 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 03 03:36:28 2026 -0800"
      },
      "message": "[Polly][NFCI] Avoid R-value modification\n\nGitOrigin-RevId: 9ceb6a8b40d4e58f798ae596dfdd7e55aef4243d\n"
    },
    {
      "commit": "225a60e1bb74047782d14c4c63f8ef78862b1466",
      "tree": "2cd54e3c03791b8c109eaca268e1a748d57db576",
      "parents": [
        "b84b005bc277f7d7b2639fa655b9818f0996e918"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Feb 03 12:10:54 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 03 03:15:06 2026 -0800"
      },
      "message": "[Polly] Use GenDT in assertion (#179433)\n\n`DT` is always the analysis for the to-be-optimized function while\n`GenDT` is the analysis of the function that we currently generate code\nfor which can also be an outlined function. Here, we want to check\ndominance in the generated code, hence we must use `GenDT`.\n\nFixes: #179135\nGitOrigin-RevId: 347e21a2445733f4a32614080289ea13f484c9f8\n"
    },
    {
      "commit": "b84b005bc277f7d7b2639fa655b9818f0996e918",
      "tree": "c34a326b8248ebb25b04e8423d0b4f6013744735",
      "parents": [
        "4c74a1a8aa664522466ff887dd0fa4139282db76"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Feb 03 00:02:03 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 02 15:05:48 2026 -0800"
      },
      "message": "[Polly] Update isl to isl-0.27-77-g99a07a03 (#179350)\n\nUpdate isl to include\nhttps://repo.or.cz/isl.git/commit/99a07a039237f11bccc1ef80a7b6cc76ae5f98c5\nwhich fixes #177808\n\nThanks @skimo-openhub for the fix and @Andarwinux for the crash report\n\nFixes: #177808\nGitOrigin-RevId: cdab38f776fc6d0c809500d901df51354edc745c\n"
    },
    {
      "commit": "4c74a1a8aa664522466ff887dd0fa4139282db76",
      "tree": "2785a18a31a300d69ac597ab1beb812a9a3fbcd0",
      "parents": [
        "eb71d4bcef4c6ced41aa3df228609bafd4ffbd99"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Jan 31 22:34:42 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 31 17:36:32 2026 -0800"
      },
      "message": "[Polly][CI] Add ScriptedBuilder scripts\n\nAdd ScriptedBuilder-equivalents of the current PollyBuilder-based\nbuildbots.\n\nGitOrigin-RevId: bba5371e3290fe3c47bd4fb6707ae3ce222b892f\n"
    },
    {
      "commit": "eb71d4bcef4c6ced41aa3df228609bafd4ffbd99",
      "tree": "7e0905212a0656cb9ca9547ac1e6544fa736f44c",
      "parents": [
        "52c1df9558a7051ab1bc6daa5c3e4a2af48f706d"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Thu Jan 29 13:59:40 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 29 06:06:10 2026 -0800"
      },
      "message": "[Polly][CI] Unconditionally delete test-suite build\n\nThe test-suite should be recompiled every time, even in incremental\nbuilds.\n\nGitOrigin-RevId: e509974d423f1f260d63ec374463b5f75b18625e\n"
    },
    {
      "commit": "52c1df9558a7051ab1bc6daa5c3e4a2af48f706d",
      "tree": "252e7af48d2ab1786dc5a98d44c24ad21c94c9ba",
      "parents": [
        "4e2f47cc7caafb155f9693b28887618225916584"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Jan 27 20:37:41 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 27 11:40:46 2026 -0800"
      },
      "message": "[Polly][DeLICM] Check for error state (#178281)\n\nWhen the ISL max-operations is exceeded, `is_wrapping` will return an\nerror state. Propagate the error state to the caller.\n\nFixes #175953\n\nGitOrigin-RevId: 85812fde9e09fe870f3005cbf54c0144df21eaaa\n"
    },
    {
      "commit": "4e2f47cc7caafb155f9693b28887618225916584",
      "tree": "bde2a3d79e9ad268b8d00d995883521229cb4b53",
      "parents": [
        "eb34e6d94d8467e99df140b80e5fe8f4e169a04d"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sun Jan 25 21:08:45 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Jan 25 12:10:23 2026 -0800"
      },
      "message": "[Polly] Reject scalable vector types (#177871)\n\nPolly currently does not consider types without fixed length, which can\nbe encountered if an input source uses e.g. ARM SVE builtins. Such\nprograms have already been optimized manually. Non-fixed type lengths\nalso add to the difficulty of dependency analysis. Skip such types\nentirely for now.\n\nFixes: #177859\nGitOrigin-RevId: e5d235831dfb07b6e767812af7f9d3daa5896f78\n"
    },
    {
      "commit": "eb34e6d94d8467e99df140b80e5fe8f4e169a04d",
      "tree": "68582cf9753ef6430d270f552c2678f852f32f42",
      "parents": [
        "693aeeb2ccac2ed1a8ce1f3cdfbf010e8e27b51a"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Jan 24 20:04:08 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 24 11:10:40 2026 -0800"
      },
      "message": "[Polly] Avoid dependence on x86 backend\n\nUnbreak the polly-arm-linux buildbot.\n\nGitOrigin-RevId: dcb6e15a83c907be0e71e01f3509d530135c56ae\n"
    },
    {
      "commit": "693aeeb2ccac2ed1a8ce1f3cdfbf010e8e27b51a",
      "tree": "14e1be5b89fbfacb6a7bdb16589ab805119f84cb",
      "parents": [
        "2405320d54835d114849c3ff5e11de3fbafa3ac3"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sat Jan 24 17:07:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 24 08:10:19 2026 -0800"
      },
      "message": "[Polly] Update isl to isl-0.27 (#177776)\n\nFixes: #177527\n\nUpdated test cases:\n\n* CodeGen/OpenMP/matmul-parallel.ll, ScheduleOptimizer/pattern-matching-based-opts.ll\n  Before the update, ISL bailed out the dependency computation due to\n  hitting the max operation limit. The commit\n  https://repo.or.cz/isl.git/commit/4bdfe2567715c5d1a8287c07d8685eb3db281e32\n  seems to have reduced the complexity needed of the dependency\n  computation, thus now being able to recognize some loops as parallel.\n  The tests were checking that the outer loop is not parallel, but some\n  inner loops can be parallized, particularly the array packing loops.\n\n * DeLICM/reduction_looprotate_hoisted.ll\n   changes in how isl generates expressions\n\n * ScheduleOptimizer/pattern-matching-based-opts_5.ll\n   changes in how isl generates expressions, and AST node changes\n\nGitOrigin-RevId: 8dcc9b635504f9ed3b462f26c49e8edffb8c3c56\n"
    },
    {
      "commit": "2405320d54835d114849c3ff5e11de3fbafa3ac3",
      "tree": "26ab12a019009783f20a2a39383e3770a1c52786",
      "parents": [
        "82acc0713773006a36a37da2b54b5a7eb40d92f3"
      ],
      "author": {
        "name": "Florian Hahn",
        "email": "flo@fhahn.com",
        "time": "Fri Jan 16 11:58:04 2026 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 16 04:00:53 2026 -0800"
      },
      "message": "[SCEV] Add initial support for ptrtoaddr. (#158032)\n\nAdd initial support for PtrToAddr to SCEV, including a new\nSCEVPtrToAddrExpr and SCEV expansion support for it.\n\nPR: https://github.com/llvm/llvm-project/pull/158032\nGitOrigin-RevId: 3fb914d8512ee778a79cbf81c0d02f03c9fa4436\n"
    },
    {
      "commit": "82acc0713773006a36a37da2b54b5a7eb40d92f3",
      "tree": "f4e021e39722a1fd437f696a157ac8190ff5d1ab",
      "parents": [
        "7652f481305e40ebed1f9c97e1f75eff03568f28"
      ],
      "author": {
        "name": "Karthika Devi C",
        "email": "quic_kartc@quicinc.com",
        "time": "Wed Jan 14 19:49:19 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 14 06:20:37 2026 -0800"
      },
      "message": "[Polly] Add null pointer check before size retrieval (#174309)\n\nThis patch avoids assertion failures by ensuring a null pointer check is\nperformed before accessing the object\u0027s size.\nNote: The corresponding test case remains too large even after\nreduction, so it has not been included in this patch.\n\nFixes #174147\n\nGitOrigin-RevId: bf845a4364f526aef8d7da1b9b75417c28009e73\n"
    },
    {
      "commit": "7652f481305e40ebed1f9c97e1f75eff03568f28",
      "tree": "84e705118192f058275bf462c418e8bc4360dfb5",
      "parents": [
        "929d2dc5c246f91761f75d8c9bb693569fe9462d"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Wed Jan 07 10:02:04 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 07 01:15:30 2026 -0800"
      },
      "message": "[Buildbot][Polly] Move polly-x86_64-linux-test-suite build instructions into main repository (#166809)\n\nAllow the main llvm-project repository to contain the buildbot builder\ninstructions, instead of storing them in llvm-zorg. The corresponding\nllvm-zorg PR is https://github.com/llvm/llvm-zorg/pull/648.\n\nUsing polly-x86_64-linux-test-suite as a proof-of-concept because that\nbuilder is currently offline, I am its maintainer, and is easier to\nbuild than an configuration supporting offload. Once the design has been\ndecided, more builders can follow.\n\nAdvantages are:\n* It is easier to make changes in the llvm-project repository. There are\n  more reviewers than for the llvm-zorg repository.\n* Buildbot changes can be made in the same PR with changes that require\n  updating the buildbot, e.g. changing the name of a CMake option.\n* Configuration changes take effect immeditately when landing; no\n  buildbot master restart needed.\n* Some builders store a CMake cache file in the llvm-project repository\n  for the reasons above. However, the number of changes that can be made\n  with a CMake cache file alone are limited.\n\nCompared to AnnotatedBuilder, advantages are:\n* Reproducing a buildbot configuration locally made easy: just execute\n  the script in-place. No llvm-zorg, local buildbot worker, or buildbot\n  master needed.\n* Same for testing a change of a builder before landing it in llvm-zorg.\n  Doing so with an AnnotatedBuilder requires two llvm-zorg checkouts:\n  One for making the change of the builder script itself, which then is\n  pushed to a private llvm-zorg branch on GitHub, and a second that is\n  modified to fetch that branch instead of\n  https://github.com/llvm/llvm-zorg/tree/main.\n* The AnnotatedBuilder scripts are located in the llvm-zorg repository\n  and the buildbot-workers always checkout is always the top-of-trunk.\n  This means that a buildbot configuration is split over three checkouts:\n     * The checkout of llvm-project to be tested\n     * The checkout of llvm-zorg by the buildbot-worker fetches; always the\n        top-of-trunk, i.e may not match the revision of llvm-project that is\n        executed (such as the CMake cache files located there), especially when\n        using the \"Force build\" feature.\n     * The checkout of llvm-zorg that the buildbot-master is running, which\n       is updated only when the master is manually restarted.\n* The \"Force Build\" feature also allows for test-building any\n  llvm-project PR. This is correctly handled by zorg\u0027s\n  `addGetSourcecodeSteps`, but does not work with AnnotatedBuilders that\n  checkout the llvm-project source on their own.\n\nThe goal is to move as much as possible into the llvm-project repository\nsuch that there cannot be a mismatch between checkouts of different\nrepositories. Ideally, the buildbot-master only needs to be\nupdated+restarted for adding/removing workers, not for build\nconfiguration changes.\n\n---------\n\nCo-authored-by: Jan Patrick Lehr \u003cjp.lehr@gmail.com\u003e\nGitOrigin-RevId: c55c2ab8067eef649a8b04fc8173b8e164cb56b3\n"
    },
    {
      "commit": "929d2dc5c246f91761f75d8c9bb693569fe9462d",
      "tree": "43e34db195eb7a7c9bf08757a1e80158d0be0e6b",
      "parents": [
        "aca96dd68b03ad3be8a89652b847a80d271f175f"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Tue Jan 06 14:07:03 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 06 05:11:48 2026 -0800"
      },
      "message": "[Polly] Allow changing array dims when importing JScop (#174582)\n\nThis is in preparation to avoid relying on GEPs to derive dependency\ninformation; Clang will eventually emit `ptradd` instead of\n`getelementptr`.\n\nGitOrigin-RevId: af3a0e61f4e08afb53d4efe815fcc6269c63f739\n"
    },
    {
      "commit": "aca96dd68b03ad3be8a89652b847a80d271f175f",
      "tree": "dafd0370bdaa05cbed9192158f9534a326ed9203",
      "parents": [
        "c698d477b26a69781713df5e3116eff76a606813"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Mon Dec 22 18:11:34 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Dec 22 09:15:57 2025 -0800"
      },
      "message": "[LLVM][NFC] Move PassPlugin from Passes to separate library\n\nThis avoid pulling in the entire Passes library with all passes as\ndependencies when just referring to PassPlugin, which is in fact\nindependent of the Passes themselves.\n\nPull Request: https://github.com/llvm/llvm-project/pull/173279\n\nGitOrigin-RevId: f54df0d09e19ec6b205cb0af45c7ecea2fd8aeff\n"
    },
    {
      "commit": "c698d477b26a69781713df5e3116eff76a606813",
      "tree": "5c8a2a276e99769481c67561afc79ca12b3b3c34",
      "parents": [
        "d8fc42d930cdb8f0f9b79dc0e57e4dbe1dc4f5c6"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Mon Dec 22 15:50:28 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Dec 22 07:55:50 2025 -0800"
      },
      "message": "Revert \"[LLVM][NFC] Move PassPlugin from Passes to Extensions lib\" and subsequent commit\n\nThis reverts commit d87b47d3a893b849cfd1ee5309b9fec2b0aec8cd.\nThis reverts commit f7ed3d44a198bfe689a1aa284452e875d5bb8a55.\n\nGitOrigin-RevId: 2634a2bda1db92ab5324a47459ee7f23e531ce53\n"
    },
    {
      "commit": "d8fc42d930cdb8f0f9b79dc0e57e4dbe1dc4f5c6",
      "tree": "018772c66dfd847d0f8e11cdc0b82337b767a3e6",
      "parents": [
        "338c6764d24eadb0fa828e72d6c41aedaf5b8d50"
      ],
      "author": {
        "name": "Alexis Engelke",
        "email": "engelke@in.tum.de",
        "time": "Mon Dec 22 11:42:27 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Dec 22 02:45:55 2025 -0800"
      },
      "message": "[LLVM][NFC] Move PassPlugin from Passes to Extensions lib\n\nThis avoid pulling in the entire Passes library with all passes as\ndependencies when just referring to PassPlugin, which is in fact\nindependent of the Passes themselves.\n\nPull Request: https://github.com/llvm/llvm-project/pull/172478\n\nGitOrigin-RevId: d87b47d3a893b849cfd1ee5309b9fec2b0aec8cd\n"
    },
    {
      "commit": "338c6764d24eadb0fa828e72d6c41aedaf5b8d50",
      "tree": "5c8a2a276e99769481c67561afc79ca12b3b3c34",
      "parents": [
        "583472acf677b65fc6e090664a400521ce3a2a4a"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Wed Dec 17 13:20:19 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 17 04:25:32 2025 -0800"
      },
      "message": "[Polly] Recalculate dependencies after import-jscop (#172640)\n\nThe new access functions may have different dependencies than the\noriginal ones. Invalidate the dependency analysis after an jscop-import.\n\nGitOrigin-RevId: 06e4728f83e5c41c4e075fc5014f4aea696b6417\n"
    },
    {
      "commit": "583472acf677b65fc6e090664a400521ce3a2a4a",
      "tree": "e5477514299acb9e7c34520a7640f5f07b6d0f0d",
      "parents": [
        "5d7df09ee85a17f029803e3443c4232062c862dc"
      ],
      "author": {
        "name": "Ramkumar Ramachandra",
        "email": "ramkumar.ramachandra@codasip.com",
        "time": "Thu Dec 11 14:26:47 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:22:00 2025 -0800"
      },
      "message": "[SCEVExp] Get DL from SE, strip constructor arg (NFC) (#171823)\n\nGitOrigin-RevId: 85fafd5db0fc0d1e38b3277b67f45ae6a5b74824\n"
    },
    {
      "commit": "5d7df09ee85a17f029803e3443c4232062c862dc",
      "tree": "cdbd516b67e1d3cf30cad7e4e77e6857722bb646",
      "parents": [
        "66dd508136d211da99fdecc446432adff4098e4b"
      ],
      "author": {
        "name": "Sebastian Pop",
        "email": "spop@nvidia.com",
        "time": "Wed Dec 03 22:21:09 2025 -0600"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:21:51 2025 -0800"
      },
      "message": "[delinearize] use SCEV exprs in getIndexExpressionsFromGEP (#162888)\n\nclean up interface of getIndexExpressionsFromGEP to get SCEV expressions\ninstead of int for Sizes of the arrays.\nThis intends to simplify the code in #156342 by avoiding conversions\nfrom SCEV to int and back to SCEV.\n\nGitOrigin-RevId: c08f49b685052092362e5afbcd7bdbf659195a7a\n"
    },
    {
      "commit": "66dd508136d211da99fdecc446432adff4098e4b",
      "tree": "e4553ceb40886b8ccfbe1099a104a1c802579bf4",
      "parents": [
        "a7be96da72a5ac4cfe30aec9ef742f1fea3c8039"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Sun Nov 16 15:12:52 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:21:42 2025 -0800"
      },
      "message": "[Polly] Remove ScopPass infrastructure (#125783)\n\nPR #125442 replaces the pass-based Polly architecture with a monolithic\npass consisting of phases. Reasons listed in\nhttps://github.com/llvm/llvm-project/pull/125442.\n\nWith this change, the SCoP-passes became redundant problematic versions\nof the same functionality and are removed.\n\nGitOrigin-RevId: f12ad95991144c35e95d331afc29b9b065d4e0b8\n"
    },
    {
      "commit": "a7be96da72a5ac4cfe30aec9ef742f1fea3c8039",
      "tree": "5dc48e35d5bf6cb7624a05ccce8a88e9e2bdd2ff",
      "parents": [
        "e2bc335a9e7d32ef4e7947ff57a66f98ea8f60f3"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Fri Nov 14 00:45:54 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:21:33 2025 -0800"
      },
      "message": "[Polly] Introduce PhaseManager and remove LPM support (#125442) (#167560)\n\nReapply of a22d1c2225543aa9ae7882f6b1a97ee7b2c95574. Using this PR for\npre-merge CI.\n\nInstead of relying on any pass manager to schedule Polly\u0027s passes, add\nPolly\u0027s own pipeline manager which is seen as a monolithic pass in\nLLVM\u0027s pass manager. Polly\u0027s former passes are now phases of the new\nPhaseManager component.\n\nRelying on LLVM\u0027s pass manager (the legacy as well as the New Pass\nManager) to manage Polly\u0027s phases never was a good fit that the\nPhaseManager resolves:\n\n* Polly passes were modifying analysis results, in particular RegionInfo\nand ScopInfo. This means that there was not just one unique and\n\"definite\" analysis result, the actual result depended on which analyses\nran prior, and the pass manager was not allowed to throw away cached\nanalyses or prior SCoP optimizations would have been forgotten. The LLVM\npass manger\u0027s persistance of analysis results is not contractual but\ndesigned for caching.\n\n* Polly depends on a particular execution order of passes and regions\n(e.g. regression tests, invalidation of consecutive SCoPs). LLVM\u0027s pass\nmanager does not guarantee any excecution order.\n\n* Polly does not completely preserve DominatorTree, RegionInfo,\nLoopInfo, or ScalarEvolution, but only as-needed for Polly\u0027s own uses.\nBecause the ScopDetection object stores references to those analyses, it\nstill had to lie to the pass manager that they would be preserved, or\nthe pass manager would have released and recomputed the invalidated\nanalysis objects that ScopDetection/ScopInfo was still referencing. To\nensure that no non-Polly pass would see these not-completely-preserved\nanalyses, all analyses still had to be thrown away after the\nScopPassManager, respectively with a BarrierNoopPass in case of the LPM.\n\n* The NPM\u0027s PassInstrumentation wraps the IR unit into an `llvm::Any`\nobject, but implementations such as PrintIRInstrumentation call\nllvm_unreachable on encountering an unknown IR unit, such as SCoPs, with\nno extension points to add support. Hence LLVM crashes when dumping IR\nbetween SCoP passes (such as `-print-before-changed` with Polly being\nactive).\n\nThe new PhaseManager uses some command line options that previously\nbelonged to Polly\u0027s legacy passes, such as `-polly-print-detect` (so the\noption will continue to work). Hence the LPM support is incompatible\nwith the new approach and support for it is removed.\n\nGitOrigin-RevId: 7a0f7dbf2dcc3f7f6546428aadff24209f7c1a94\n"
    },
    {
      "commit": "e2bc335a9e7d32ef4e7947ff57a66f98ea8f60f3",
      "tree": "ef433d2d227ff0bf234665dff56584794ef54437",
      "parents": [
        "a9a2801fabfcc5eb8246113370650314f88a9203"
      ],
      "author": {
        "name": "Karthika Devi C",
        "email": "quic_kartc@quicinc.com",
        "time": "Mon Nov 10 13:48:15 2025 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Dec 16 23:21:22 2025 -0800"
      },
      "message": "[Polly] Retain vectorization for fallback loop when RTC is unsatisfiable (#165525)\n\nWhen Polly generates a false runtime condition (RTC), the associated\nPolly generated loop is never executed and is eventually eliminated. As\na result, the fallback loop becomes the default execution path.\nDisabling vectorization for this fallback loop will be\ncounterproductive. This patch ensures that vectorization is only\ndisabled when the RTC is not false (no Codegen failure).\n\nGitOrigin-RevId: 6408703de5a523e331ee47bbb6bea5a13b1a2758\n"
    },
    {
      "commit": "a9a2801fabfcc5eb8246113370650314f88a9203",
      "tree": "43717ffe052a68bb67d37737dfd81df696a76344",
      "parents": [
        "86a0dd4c7eafdcf4022d559b87c763024b256861"
      ],
      "author": {
        "name": "Kazu Hirata",
        "email": "kazu@google.com",
        "time": "Wed Nov 05 08:23:22 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 05 08:26:03 2025 -0800"
      },
      "message": "[polly] Fix unused variable warnings\n\nThis patch fixes:\n\n  polly/lib/Transform/ScheduleOptimizer.cpp:935:17: error: unused\n  variable \u0027File\u0027 [-Werror,-Wunused-variable]\n\n  polly/lib/Transform/ScheduleOptimizer.cpp:936:9: error: unused\n  variable \u0027Line\u0027 [-Werror,-Wunused-variable]\n\n  polly/lib/Transform/ScheduleOptimizer.cpp:937:17: error: unused\n  variable \u0027Msg\u0027 [-Werror,-Wunused-variable]\n\nGitOrigin-RevId: bb367c14aea99ab744406f3e3a700186fd3f1ad6\n"
    },
    {
      "commit": "86a0dd4c7eafdcf4022d559b87c763024b256861",
      "tree": "17bb631de55ac6fffe3fd59f2ff56d0c73950cab",
      "parents": [
        "82bad6ceec76783f440d675b86cf60c456ecd5eb"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Wed Nov 05 14:17:05 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Nov 05 05:20:54 2025 -0800"
      },
      "message": "[Polly] Check for ISL errors after schedule optimization (#166551)\n\nWhen ISL encounters an internal error, it sets the error flag, but it is\nnot isl_error_quota that was already checked. Check for general errors\nand abort the schedule optimization if that happens, instead of\ncontinuing on the good path.\n\nThe error occured when compiling llvm-test-suite\u0027s\nMultiSource/Applications/JM/lencod/leaky_bucket.c with Polly enabled.\nNot adding a test case because it depends on ISL internals. We do not\nwant to a test case to depend on which version of ISL is used.\n\nGitOrigin-RevId: 305cf623d7ab6fc6340930c1c21fe9f7d39d0e8f\n"
    },
    {
      "commit": "82bad6ceec76783f440d675b86cf60c456ecd5eb",
      "tree": "b1fc010b4d7aeccd15ffe9746f6d2092c5a597c9",
      "parents": [
        "82253481282545806d050776af9b748d83cb21ba"
      ],
      "author": {
        "name": "Kazu Hirata",
        "email": "kazu@google.com",
        "time": "Tue Nov 04 08:28:51 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Nov 04 08:30:35 2025 -0800"
      },
      "message": "[ADT] Deprecate a soft-deprecated APInt constructor (#166314)\n\nThis patch deprecates an APInt constructor that has been\nsoft-deprecated via comments since:\n\n  commit 7a16288157efc5fb85fbe3b8b4c37071da7609a6\n  Author: Jeffrey Yasskin \u003cjyasskin@google.com\u003e\n  Date:   Mon Jul 18 21:45:40 2011 +0000\n\nThis patch updates a small number of remaining uses.\n\nGitOrigin-RevId: ed7d6c3511df7f5d1dbf52579740f7f4e4ada4f9\n"
    },
    {
      "commit": "82253481282545806d050776af9b748d83cb21ba",
      "tree": "8d46864bee584d863752f2c1d792c5c23ecb40a6",
      "parents": [
        "ad24089f576dffe8e21f202c8bf6d54aec6417d9"
      ],
      "author": {
        "name": "Aiden Grossman",
        "email": "aidengrossman@google.com",
        "time": "Tue Nov 04 01:31:18 2025 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 03 17:35:43 2025 -0800"
      },
      "message": "Revert \"[Polly] Introduce PhaseManager and remove LPM support (#125442)\"\n\nThis reverts commit e987ab11a6f3d3965ef26fc42c82db3e8b1d56f5.\n\nThis broke premerge:\n1. https://lab.llvm.org/staging/#/builders/192/builds/9521\n2. https://github.com/llvm/llvm-project/actions/runs/19054182009\n\nNotably this did not break inside the PR. Not exactly sure why. I realize that\nthere is a lot of test churn here, but they\u0027re largely in polly where commit\nfrequency is much lower, so a reapply of the patch should be clean.\n\nGitOrigin-RevId: a22d1c2225543aa9ae7882f6b1a97ee7b2c95574\n"
    },
    {
      "commit": "ad24089f576dffe8e21f202c8bf6d54aec6417d9",
      "tree": "6d806fb9fc87353b0ea9e027dc9871f26bd68407",
      "parents": [
        "c50c12efbb6d4112eb2938a6620f74116eb71a0d"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Mon Nov 03 23:34:50 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 03 14:41:22 2025 -0800"
      },
      "message": "[Polly] Introduce PhaseManager and remove LPM support (#125442)\n\nInstead of relying on any pass manager to schedule Polly\u0027s passes, add\nPolly\u0027s own pipeline manager which is seen as a monolithic pass in\nLLVM\u0027s pass manager. Polly\u0027s former passes are now phases of the new\nPhaseManager component.\n\nRelying on LLVM\u0027s pass manager (the legacy as well as the New Pass\nManager) to manage Polly\u0027s phases never was a good fit that the\nPhaseManager resolves:\n\n* Polly passes were modifying analysis results, in particular RegionInfo\nand ScopInfo. This means that there was not just one unique and\n\"definite\" analysis result, the actual result depended on which analyses\nran prior, and the pass manager was not allowed to throw away cached\nanalyses or prior SCoP optimizations would have been forgotten. The LLVM\npass manger\u0027s persistance of analysis results is not contractual but\ndesigned for caching.\n\n* Polly depends on a particular execution order of passes and regions\n(e.g. regression tests, invalidation of consecutive SCoPs). LLVM\u0027s pass\nmanager does not guarantee any excecution order.\n\n* Polly does not completely preserve DominatorTree, RegionInfo,\nLoopInfo, or ScalarEvolution, but only as-needed for Polly\u0027s own uses.\nBecause the ScopDetection object stores references to those analyses, it\nstill had to lie to the pass manager that they would be preserved, or\nthe pass manager would have released and recomputed the invalidated\nanalysis objects that ScopDetection/ScopInfo was still referencing. To\nensure that no non-Polly pass would see these not-completely-preserved\nanalyses, all analyses still had to be thrown away after the\nScopPassManager, respectively with a BarrierNoopPass in case of the LPM.\n\n* The NPM\u0027s PassInstrumentation wraps the IR unit into an `llvm::Any`\nobject, but implementations such as PrintIRInstrumentation call\nllvm_unreachable on encountering an unknown IR unit, such as SCoPs, with\nno extension points to add support. Hence LLVM crashes when dumping IR\nbetween SCoP passes (such as `-print-before-changed` with Polly being\nactive).\n\nThe new PhaseManager uses some command line options that previously\nbelonged to Polly\u0027s legacy passes, such as `-polly-print-detect` (so the\noption will continue to work). Hence the LPM support is incompatible\nwith the new approach and support for it is removed.\n\nGitOrigin-RevId: e987ab11a6f3d3965ef26fc42c82db3e8b1d56f5\n"
    },
    {
      "commit": "c50c12efbb6d4112eb2938a6620f74116eb71a0d",
      "tree": "8d46864bee584d863752f2c1d792c5c23ecb40a6",
      "parents": [
        "24a4f4dfd438f31f1b48d02efe5bff75ed207ec6"
      ],
      "author": {
        "name": "Shikhar Jain",
        "email": "shikharj@qti.qualcomm.com",
        "time": "Mon Nov 03 19:06:37 2025 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Nov 03 05:41:37 2025 -0800"
      },
      "message": " Bound ISL operations during pre-vectorization (#165204)\n\nBound ISL operations during pre-vectorization to\nprevent indefinite compilation. The MaxOpGuard\npreviously used for schedule computation is now\nextended to also guard pre-vectorization optimizations.\nThis patch includes a reduced test case derived\nfrom the original bug report.\n\n---------\n\nCo-authored-by: Michael Kruse \u003cllvm-project@meinersbur.de\u003e\nGitOrigin-RevId: 795fa9ea00a18b2ccd779efb17ce805a73d1ce7a\n"
    },
    {
      "commit": "24a4f4dfd438f31f1b48d02efe5bff75ed207ec6",
      "tree": "583e012747eafb32e469939cee02a995b1603a35",
      "parents": [
        "c5fb9b34219ef0edd6b509e2e8a5c08397db3158"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Fri Oct 31 19:23:49 2025 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 31 11:25:27 2025 -0700"
      },
      "message": "[Polly][CodePreparation] Extract common code of LPM and NPM (#140419)\n\nUse a common function for the non-boilerplate code shared between LPM\nand NPM as done by most other passes already. ScalarEvolution is not\nactually used.\n\nPatch extracted out of #125442 requested by\nhttps://github.com/llvm/llvm-project/pull/125442#discussion_r2034416019\n\nGitOrigin-RevId: 8c87f3eb35d5f5c12321b516265c732a7e2c31d1\n"
    },
    {
      "commit": "c5fb9b34219ef0edd6b509e2e8a5c08397db3158",
      "tree": "f1e0c7ef12eee7f0d68f24287c2d8d95e6e02a64",
      "parents": [
        "927890b52ebd7f0a2f9deaa027b0c291e1115aee"
      ],
      "author": {
        "name": "paperchalice",
        "email": "liujunchang97@outlook.com",
        "time": "Wed Oct 22 22:04:13 2025 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 07:05:58 2025 -0700"
      },
      "message": "[polly] Remove unsafe-fp-math uses (NFC) (#164603)\n\nPost cleanup for #164534.\n\nGitOrigin-RevId: 0b9ed5dc64149147aadc588d9077d80fb73a54d6\n"
    },
    {
      "commit": "927890b52ebd7f0a2f9deaa027b0c291e1115aee",
      "tree": "114fc82f1fe58226c9582d05a55f80acb823ae49",
      "parents": [
        "4d7fd323f85dcac3a8af42828c38a2766cde9db8"
      ],
      "author": {
        "name": "Michael Kruse",
        "email": "llvm-project@meinersbur.de",
        "time": "Wed Oct 22 15:00:28 2025 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 06:04:38 2025 -0700"
      },
      "message": "Reapply \"[Polly] Update ScopInliner for NPM (#125427)\" (#164601)\n\nAn assertion failed when Polly was registering for the pass manager\nwhich assumed that there would be only Polly passes. Since this does not\nneed to be the case, re-apply with the assert removed.\n\nIncludes a non-Polly change to trigger the premerge CI to trigger\ncheck-llvm which failed for 0b9a7b80c0674c5c6f746139912111bea7eae63b,\nbut pre-merge did not catch.\n\nGitOrigin-RevId: 6e0553f545df37a31b096f462f5319312728daca\n"
    },
    {
      "commit": "4d7fd323f85dcac3a8af42828c38a2766cde9db8",
      "tree": "121fe40dcc5520fdd43b1addfcdb0cde6bf821d9",
      "parents": [
        "0cab79bab9cec3e36dbde9163b346a06c69d2ee1"
      ],
      "author": {
        "name": "Tomohiro Kashiwada",
        "email": "kikairoya@gmail.com",
        "time": "Tue Oct 21 05:14:19 2025 +0900"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 13:16:17 2025 -0700"
      },
      "message": "[Unittest][Cygwin] Set $PATH when running unittests (#163947)\n\nAs the Cygwin platform requires $PATH to be set in order to run\nunittests, do the same as for the regular Windows target.\n\nGitOrigin-RevId: d4af5e6b0b4fef49c3277d4a13d279dfcc4e155a\n"
    }
  ],
  "next": "0cab79bab9cec3e36dbde9163b346a06c69d2ee1"
}
