• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
          • Expression-sizing
          • Occform
          • Oprewrite
          • Expand-functions
          • Delayredux
          • Unparameterization
          • Caseelim
          • Split
          • Selresolve
          • Weirdint-elim
          • Vl-delta
          • Replicate-insts
          • Rangeresolve
          • Propagate
          • Clean-selects
          • Clean-params
          • Blankargs
          • Inline-mods
          • Expr-simp
          • Trunc
          • Always-top
          • Gatesplit
          • Gate-elim
          • Expression-optimization
            • Vl-modulelist-optimize
            • Vl-op-optimize
            • Vl-expr-optimize
            • Vl-plainarglist-optimize
            • Vl-namedarglist-optimize
            • Vl-gateinstlist-optimize
            • Vl-modinstlist-optimize
            • Vl-assignlist-optimize
            • Vl-arguments-optimize
            • Vl-plainarg-optimize
            • Vl-namedarg-optimize
            • Vl-gateinst-optimize
            • Vl-assign-optimize
            • Vl-modinst-optimize
            • Vl-module-optimize
            • Vl-design-optimize
          • Elim-supplies
          • Wildelim
          • Drop-blankports
          • Clean-warnings
          • Addinstnames
          • Custom-transform-hooks
          • Annotate
          • Latchcode
          • Elim-unused-vars
          • Problem-modules
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Transforms

Expression-optimization

Simplify expressions in a few trivial ways, mainly to clean up ugly generated expressions.

During the course of expression rewriting, splitting, and so on, we often introduce intermediate expressions which are ugly, large, confusing, etc.; We now introduce a routine to perform some really trivial optimizations, which actually produce a pretty significant impact when applied throughout the rewritten, split up, simplified tree.

WARNING: These are only valid on sized expressions!

Subtopics

Vl-modulelist-optimize
(vl-modulelist-optimize x ss) maps vl-module-optimize across a list.
Vl-op-optimize
Core function in expression-optimization.
Vl-expr-optimize
Optimize sub-expressions throughout an expression.
Vl-plainarglist-optimize
Optimize expressions throughout a vl-plainarglist-p.
Vl-namedarglist-optimize
Optimize expressions throughout a vl-namedarglist-p.
Vl-gateinstlist-optimize
Optimize expressions throughout a vl-gateinstlist-p.
Vl-modinstlist-optimize
Optimize expressions throughout a vl-modinstlist-p.
Vl-assignlist-optimize
Optimize expressions throughout a vl-assignlist-p.
Vl-arguments-optimize
Optimize expressions throughout a vl-arguments-p.
Vl-plainarg-optimize
Optimize expressions throughout a vl-plainarg-p.
Vl-namedarg-optimize
Optimize expressions throughout a vl-namedarg-p.
Vl-gateinst-optimize
Optimize expressions throughout a vl-gateinst-p.
Vl-assign-optimize
Optimize expressions throughout a vl-assign-p.
Vl-modinst-optimize
Optimize expressions throughout a vl-modinst-p.
Vl-module-optimize
Optimize expressions throughout a module.
Vl-design-optimize
Top-level optimize transform.