From b4eaaccc884b621f62d271f6e9518d4701a2bd17 Mon Sep 17 00:00:00 2001 From: Glen Gibb Date: Fri, 14 Mar 2014 07:17:03 -0400 Subject: [PATCH] Documentation fixes, bug723. Signed-off-by: Wilson Snyder --- Changes | 2 ++ internals.pod | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Changes b/Changes index 27ef3feac..fea9253c8 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,8 @@ indicates the contributor was also the author of the fix; Thanks! *** Add --no-trace-params. +**** Documentation fixes, bug723. [Glen Gibb] + * Verilator 3.856 2014-03-11 diff --git a/internals.pod b/internals.pod index 54025959a..77f5c800e 100644 --- a/internals.pod +++ b/internals.pod @@ -40,7 +40,7 @@ Verilator then performs many additional edits and optimizations on the hierarchical design. This includes coverage, assertions, X elimination, inlining, constant propagation, and dead code elimination. -References in the design are then psudo-flattened. Each module's variables +References in the design are then pseudo-flattened. Each module's variables and functions get "Scope" references. A scope reference is an occurrence of that un-flattened variable in the flattened hierarchy. A module that occurs only once in the hierarchy will have a single scope and single VarScope for @@ -49,7 +49,7 @@ occurrence, and two VarScopes for each variable. This allows optimizations to proceed across the flattened design, while still preserving the hierarchy. -Additional edits and optimizations proceed on the psudo-flat design. These +Additional edits and optimizations proceed on the pseudo-flat design. These include module references, function inlining, loop unrolling, variable lifetime analysis, lookup table creation, always splitting, and logic gate simplifications (pushing inverters, etc). @@ -80,8 +80,8 @@ classes). Each C has pointers to up to four children, accessed by the C through C methods. These methods are then abstracted in a specific Ast* node class to a more specific name. For example with the -C node (for C statements), C calls C to give the -pointer to the AST for the "then" block, while C calls C to +C node (for C statements), C calls C to give the +pointer to the AST for the "then" block, while C calls C to give the pointer to the AST for the "else" block, or NULL if there is not one. @@ -97,7 +97,7 @@ are at the top of the tree. By convention, each function/method uses the variable C as a pointer to the C currently being processed. -=item C +=item C The passes are implemented by AST visitor classes (see L). These are implemented by subclasses of the abstract class, @@ -119,7 +119,7 @@ C, C and C, which may be used in algorithms for ordering the graph. A generic C/C member variable is also provided. Virtual methods are provided to specify the name, color, shape and style to be -used in dot output. Typically users provided derived classes from +used in dot output. Typically users provide derived classes from C which will reimplement these methods. Iterators are provided to access in and out edges. Typically these are used in @@ -219,7 +219,7 @@ and optimization passes. This allows separation of the pass algorithm from the AST on which it operates. Wikipedia provides an introduction to the concept at L. -As noted above, all visitors are derived classes of C. All +As noted above, all visitors are derived classes of C. All derived classes of C implement the C method, which takes as argument a reference to an instance or a C derived class and applies the visit method of the C to the invoking AstNode @@ -262,7 +262,7 @@ exiting the lower for will lose the upper for's setting. User attributes. Each C (B The AST node, not the visitor) has five user attributes, which may be accessed as an integer using the C through C methods, or as a pointer (of type -C) using the C through C methods (a common +C) using the C through C methods (a common technique lifted from graph traversal packages). A visitor first clears the one it wants to use by calling @@ -290,7 +290,7 @@ module. Parameters can be passed between the visitors in close to the "normal" function caller to callee way. This is the second C parameter of type -C that is ignored on most of the visitor functions. V3Width does +C that is ignored on most of the visitor functions. V3Width does this, but it proved more messy than the above and is deprecated. (V3Width was nearly the first module written. Someday this scheme may be removed, as it slows the program down to have to pass vup everywhere.) @@ -301,10 +301,10 @@ as it slows the program down to have to pass vup everywhere.) C provides a set of iterators to facilitate walking over the tree. Each takes two arguments, a visitor, C, of type C and -an optional pointer user data, C, of type C. The second is +an optional pointer user data, C, of type C. The second is one of the ways to pass parameters to visitors described in L, but its use is no deprecated and should be used for new visitor -classes. +Functions>, but its use is now deprecated and should I be used for new +visitor classes. =over 4