[Mlir-commits] [mlir] [mlir] support non-interprocedural dataflow analyses (PR #75583)

William Moses llvmlistbot at llvm.org
Fri Dec 15 10:27:04 PST 2023


================
@@ -54,12 +54,22 @@ LogicalResult AbstractDenseForwardDataFlowAnalysis::visit(ProgramPoint point) {
 }
 
 void AbstractDenseForwardDataFlowAnalysis::visitCallOperation(
-    CallOpInterface call, AbstractDenseLattice *after) {
+    CallOpInterface call, const AbstractDenseLattice &before,
+    AbstractDenseLattice *after) {
+  // Allow for customizing the behavior of calls to external symbols, including
+  // when the analysis is explicitly marked as non-interprocedural.
+  auto callable =
+      dyn_cast_if_present<CallableOpInterface>(call.resolveCallable());
+  if (!getSolverConfig().isInterprocedural() ||
+      (callable && !callable.getCallableRegion())) {
----------------
wsmoses wrote:

Okay, that seems reasonable to me.

https://github.com/llvm/llvm-project/pull/75583


More information about the Mlir-commits mailing list