[all-commits] [llvm/llvm-project] 32a4e3: [mlir] support non-interprocedural dataflow analys...

ftynse via All-commits all-commits at lists.llvm.org
Mon Dec 18 05:17:05 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 32a4e3fccaf304c8d541bdefdb1a7ef829f84c1c
      https://github.com/llvm/llvm-project/commit/32a4e3fccaf304c8d541bdefdb1a7ef829f84c1c
  Author: Oleksandr "Alex" Zinenko <zinenko at google.com>
  Date:   2023-12-18 (Mon, 18 Dec 2023)

  Changed paths:
    M mlir/include/mlir/Analysis/DataFlow/DenseAnalysis.h
    M mlir/include/mlir/Analysis/DataFlow/SparseAnalysis.h
    M mlir/include/mlir/Analysis/DataFlowFramework.h
    M mlir/lib/Analysis/DataFlow/DenseAnalysis.cpp
    M mlir/lib/Analysis/DataFlow/SparseAnalysis.cpp
    M mlir/test/Analysis/DataFlow/test-last-modified-callgraph.mlir
    M mlir/test/Analysis/DataFlow/test-next-access.mlir
    M mlir/test/Analysis/DataFlow/test-written-to.mlir
    M mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestDenseDataFlowAnalysis.h
    M mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestSparseBackwardDataFlowAnalysis.cpp

  Log Message:
  -----------
  [mlir] support non-interprocedural dataflow analyses (#75583)

The core implementation of the dataflow anlysis framework is
interpocedural by design. While this offers better analysis precision,
it also comes with additional cost as it takes longer for the analysis
to reach the fixpoint state. Add a configuration mechanism to the
dataflow solver to control whether it operates inteprocedurally or not
to offer clients a choice.

As a positive side effect, this change also adds hooks for explicitly
processing external/opaque function calls in the dataflow analyses,
e.g., based off of attributes present in the the function declaration or
call operation such as alias scopes and modref available in the LLVM
dialect.

This change should not affect existing analyses and the default solver
configuration remains interprocedural.

Co-authored-by: Jacob Peng <jacobmpeng at gmail.com>




More information about the All-commits mailing list