#include "mlir/Analysis/DataFlow/DenseAnalysis.h"
#include "mlir/Analysis/DataFlow/DeadCodeAnalysis.h"
#include "mlir/Analysis/DataFlowFramework.h"
#include "mlir/IR/Block.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/Region.h"
#include "mlir/Interfaces/CallInterfaces.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <optional>
usingnamespacemlir;
usingnamespacemlir::dataflow;
LogicalResult AbstractDenseForwardDataFlowAnalysis::initialize(Operation *top) { … }
LogicalResult AbstractDenseForwardDataFlowAnalysis::visit(ProgramPoint *point) { … }
void AbstractDenseForwardDataFlowAnalysis::visitCallOperation(
CallOpInterface call, const AbstractDenseLattice &before,
AbstractDenseLattice *after) { … }
LogicalResult
AbstractDenseForwardDataFlowAnalysis::processOperation(Operation *op) { … }
void AbstractDenseForwardDataFlowAnalysis::visitBlock(Block *block) { … }
void AbstractDenseForwardDataFlowAnalysis::visitRegionBranchOperation(
ProgramPoint *point, RegionBranchOpInterface branch,
AbstractDenseLattice *after) { … }
const AbstractDenseLattice *
AbstractDenseForwardDataFlowAnalysis::getLatticeFor(ProgramPoint *dependent,
LatticeAnchor anchor) { … }
LogicalResult
AbstractDenseBackwardDataFlowAnalysis::initialize(Operation *top) { … }
LogicalResult
AbstractDenseBackwardDataFlowAnalysis::visit(ProgramPoint *point) { … }
void AbstractDenseBackwardDataFlowAnalysis::visitCallOperation(
CallOpInterface call, const AbstractDenseLattice &after,
AbstractDenseLattice *before) { … }
LogicalResult
AbstractDenseBackwardDataFlowAnalysis::processOperation(Operation *op) { … }
void AbstractDenseBackwardDataFlowAnalysis::visitBlock(Block *block) { … }
void AbstractDenseBackwardDataFlowAnalysis::visitRegionBranchOperation(
ProgramPoint *point, RegionBranchOpInterface branch,
RegionBranchPoint branchPoint, AbstractDenseLattice *before) { … }
const AbstractDenseLattice *
AbstractDenseBackwardDataFlowAnalysis::getLatticeFor(ProgramPoint *dependent,
LatticeAnchor anchor) { … }