CIRCT 24.0.0git
Loading...
Searching...
No Matches
CaptureAnalysis.h File Reference
#include "circt/Support/LLVM.h"
#include "llvm/ADT/SetVector.h"
Include dependency graph for CaptureAnalysis.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  circt::ImportVerilog::AmbiguousHierCapture
 A function whose hierarchical reference resolves to one symbol reachable through more than one instance. More...

Namespaces

namespace  slang
namespace  slang::ast
namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
namespace  circt::ImportVerilog

Typedefs

using circt::ImportVerilog::CaptureMap
 The result of capture analysis: for each function, the set of non-local, non-global variable symbols that the function captures directly or transitively through calls.

Functions

bool circt::ImportVerilog::isCompileTimeConstant (slang::ast::SymbolKind kind)
 Return true if symbols of this kind are elaboration-time constants.
const slang::ast::InstanceSymbol * circt::ImportVerilog::getRootInstance (const slang::ast::HierarchicalReference &ref)
 Return the first instance on a hierarchical reference path, i.e.
CaptureMap circt::ImportVerilog::analyzeFunctionCaptures (const slang::ast::RootSymbol &root, SmallVectorImpl< AmbiguousHierCapture > &ambiguous)
 Analyze the AST rooted at root to determine which variables each function captures: symbols referenced inside the function's body (directly or through called functions) that are neither local nor global, including hierarchical references to other instances.