|
CIRCT 23.0.0git
|
Classes | |
| struct | ClassLowering |
| struct | Context |
| A helper class to facilitate the conversion from a Slang AST to MLIR operations. More... | |
| struct | FlattenedIfacePort |
| Lowering information for a single signal flattened from an interface port. More... | |
| struct | FunctionLowering |
| Function lowering information. More... | |
| struct | HierPathInfo |
| Hierarchical path information. More... | |
| struct | InterfaceLowering |
| Lowering information for an expanded interface instance. More... | |
| struct | LocationKey |
| ImportVerilog Elaboration Phases for Hierarchical Names. More... | |
| struct | LoopFrame |
| Information about a loops continuation and exit blocks relevant while lowering the loop's body statements. More... | |
| struct | ModuleLowering |
| Module lowering information. More... | |
| struct | PortLowering |
| Port lowering information. More... | |
| struct | VirtualInterfaceLowering |
Cached lowering information for representing SystemVerilog virtual interface handles as Moore types (a struct of references to interface members). More... | |
| struct | VirtualInterfaceMemberAccess |
| A mapping entry for resolving Slang virtual interface member accesses. More... | |
Typedefs | |
| using | CaptureMap = DenseMap< const slang::ast::SubroutineSymbol *, SmallSetVector< const slang::ast::ValueSymbol *, 4 > > |
| 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 | |
| CaptureMap | analyzeFunctionCaptures (const slang::ast::RootSymbol &root) |
Analyze the AST rooted at root to determine which variables each function captures. | |
| const slang::ast::InstanceBodySymbol * | getCanonicalBody (const slang::ast::InstanceSymbol &inst) |
Get the slang canonical body for the given instance, if there is one. | |
| using circt::ImportVerilog::CaptureMap = typedef DenseMap<const slang::ast::SubroutineSymbol *, SmallSetVector<const slang::ast::ValueSymbol *, 4> > |
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.
Definition at line 41 of file CaptureAnalysis.h.
| CaptureMap circt::ImportVerilog::analyzeFunctionCaptures | ( | const slang::ast::RootSymbol & | root | ) |
Analyze the AST rooted at root to determine which variables each function captures.
A variable is considered captured by a function if it is referenced inside the function's body (or transitively through called functions) and is neither local to the function nor a global variable (package-scope or compilation-unit-scope variables that are lowered via get_global_signal).
Referenced by circt::ImportVerilog::Context::convertCompilation().
|
inline |
Get the slang canonical body for the given instance, if there is one.
If there isn't one, fall back to the normal body.
Definition at line 39 of file ImportVerilogInternals.h.
Referenced by circt::ImportVerilog::Context::convertCompilation().