Loading [MathJax]/extensions/tex2jax.js
CIRCT 21.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Macros | Functions
LongestPathAnalysis.cpp File Reference
#include "circt/Dialect/AIG/Analysis/LongestPathAnalysis.h"
#include "circt/Dialect/AIG/AIGOps.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWInstanceGraph.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/Seq/SeqOps.h"
#include "circt/Dialect/Seq/SeqTypes.h"
#include "circt/Support/InstanceGraph.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/Operation.h"
#include "mlir/IR/Threading.h"
#include "mlir/IR/Value.h"
#include "mlir/IR/Visitors.h"
#include "mlir/Pass/AnalysisManager.h"
#include "mlir/Support/FileUtilities.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT//MapVector.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMapInfoVariant.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/ImmutableList.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LogicalResult.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Mutex.h"
#include "llvm/Support/raw_ostream.h"
#include <condition_variable>
#include <cstdint>
#include <memory>
#include <mutex>
Include dependency graph for LongestPathAnalysis.cpp:

Go to the source code of this file.

Classes

class  Context
 This class provides a thread-safe interface to access the analysis results. More...
 
class  LocalVisitor
 
struct  circt::aig::LongestPathAnalysis::Impl
 

Macros

#define DEBUG_TYPE   "aig-longest-path-analysis"
 

Functions

static size_t getBitWidth (Value value)
 
template<typename T , typename Key >
static void deduplicatePathsImpl (SmallVectorImpl< T > &results, size_t startIndex, llvm::function_ref< Key(const T &)> keyFn, llvm::function_ref< int64_t(const T &)> delayFn)
 
static void deduplicatePaths (SmallVectorImpl< OpenPath > &results, size_t startIndex=0)
 
static void deduplicatePaths (SmallVectorImpl< DataflowPath > &results, size_t startIndex=0)
 
static llvm::ImmutableList< DebugPointmapList (llvm::ImmutableListFactory< DebugPoint > *debugPointFactory, llvm::ImmutableList< DebugPoint > list, llvm::function_ref< DebugPoint(DebugPoint)> fn)
 
static llvm::ImmutableList< DebugPointconcatList (llvm::ImmutableListFactory< DebugPoint > *debugPointFactory, llvm::ImmutableList< DebugPoint > lhs, llvm::ImmutableList< DebugPoint > rhs)
 
static StringAttr getNameImpl (Value value)
 
static void printObjectImpl (llvm::raw_ostream &os, const Object &object, int64_t delay=-1, llvm::ImmutableList< DebugPoint > history={}, StringRef comment="")
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aig-longest-path-analysis"

Definition at line 71 of file LongestPathAnalysis.cpp.

Function Documentation

◆ concatList()

static llvm::ImmutableList< DebugPoint > concatList ( llvm::ImmutableListFactory< DebugPoint > *  debugPointFactory,
llvm::ImmutableList< DebugPoint lhs,
llvm::ImmutableList< DebugPoint rhs 
)
static

◆ deduplicatePaths() [1/2]

static void deduplicatePaths ( SmallVectorImpl< DataflowPath > &  results,
size_t  startIndex = 0 
)
static

Definition at line 111 of file LongestPathAnalysis.cpp.

References deduplicatePathsImpl().

◆ deduplicatePaths() [2/2]

static void deduplicatePaths ( SmallVectorImpl< OpenPath > &  results,
size_t  startIndex = 0 
)
static

◆ deduplicatePathsImpl()

template<typename T , typename Key >
static void deduplicatePathsImpl ( SmallVectorImpl< T > &  results,
size_t  startIndex,
llvm::function_ref< Key(const T &)>  keyFn,
llvm::function_ref< int64_t(const T &)>  delayFn 
)
static

Definition at line 85 of file LongestPathAnalysis.cpp.

Referenced by deduplicatePaths().

◆ getBitWidth()

static size_t getBitWidth ( Value  value)
static

Definition at line 75 of file LongestPathAnalysis.cpp.

◆ getNameImpl()

static StringAttr getNameImpl ( Value  value)
static

Definition at line 143 of file LongestPathAnalysis.cpp.

◆ mapList()

static llvm::ImmutableList< DebugPoint > mapList ( llvm::ImmutableListFactory< DebugPoint > *  debugPointFactory,
llvm::ImmutableList< DebugPoint list,
llvm::function_ref< DebugPoint(DebugPoint)>  fn 
)
static

◆ printObjectImpl()

static void printObjectImpl ( llvm::raw_ostream &  os,
const Object object,
int64_t  delay = -1,
llvm::ImmutableList< DebugPoint history = {},
StringRef  comment = "" 
)
static