[all-commits] [llvm/llvm-project] 77b013: Revert "[Support] Remove cl::Sink (#224953)"

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Tue Sep 22 00:37:38 PDT 2026


  Branch: refs/heads/users/ergawy/unstructured-incoming-branch-map
  Home:   https://github.com/llvm/llvm-project
  Commit: 77b013e680a29ed1fc1b0b31a4604396ac66249e
      https://github.com/llvm/llvm-project/commit/77b013e680a29ed1fc1b0b31a4604396ac66249e
  Author: ergawy <kareem.ergawy at gmail.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/docs/CommandLine.md
    M llvm/include/llvm/Support/CommandLine.h
    M llvm/lib/Support/CommandLine.cpp
    M llvm/unittests/Support/CommandLineTest.cpp
    M mlir/include/mlir/Pass/PassOptions.h

  Log Message:
  -----------
  Revert "[Support] Remove cl::Sink (#224953)"

This reverts commit 5a50c15fa686c9c49b78631ac42b133340867ae3.


  Commit: 90cb89923a7d04dbd48b80aea8c68fd6e6a64318
      https://github.com/llvm/llvm-project/commit/90cb89923a7d04dbd48b80aea8c68fd6e6a64318
  Author: ergawy <kareem.ergawy at gmail.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Lower/PFTDefs.h
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/test/Lower/assigned-goto-labeled-end.f90
    M flang/test/Lower/ifconvert.f90
    A flang/test/Lower/pre-fir-tree-incoming-branches.f90
    M flang/test/Lower/trailing-cycle.f90

  Log Message:
  -----------
  [flang] Record and dump the evaluations that branch to each evaluation

Whether anything outside a construct branches into it is currently answered
by walking the whole function per query, with a TODO on hasIncomingBranch
saying as much. The information is available where the forward edges are
built, so record the inverse there.

markBranchTarget is the single point every branch passes through when
controlSuccessor and extraControlSuccessors are set, so the reverse edge is
written beside the forward one and the two cannot drift. The map is keyed by
the target and lives on FunctionLikeUnit next to labelEvaluationMap, with the
same lifetime: populated while branches are analyzed, cleared when the unit is
left.

PFT dumps print it alongside the existing "-> target" edges, so both
directions of the branch graph are observable. Three existing tests match dump
lines in full and gain the annotation; assigned-goto-labeled-end.f90 already
captured each branch's target and now also captures the branch's own index,
asserting the two directions agree rather than that each merely exists.

The new test covers a CYCLE recorded against its EndDoStmt, two sources
converging on one target, and two sources at different nesting depths where
one escapes an inner loop.

Nothing reads the map yet.


Compare: https://github.com/llvm/llvm-project/compare/77b013e680a2%5E...90cb89923a7d

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list