clash-lib-1.8.1: Clash: a functional hardware description language - As a library

Copyright | (C) 2021 QBayLogic B.V. 2022 Google Inc.
License | BSD2 (see the file LICENSE)
Maintainer | QBayLogic B.V. <devops@qbaylogic.com>
Safe Haskell | Safe-Inferred
Language | Haskell2010

Clash.Normalize.Primitives

Description

Special primitives created during the normalization process.

Synopsis

- removedArg :: PrimInfo
- undefined :: PrimInfo
- undefinedX :: PrimInfo

# Documentation

removedArg :: PrimInfo Source #

The removedArg primitive represents an argument which is computationally irrelevant, and has been removed from the circuit (as removing it does not change the behaviour of the circuit). Examples of such arguments are unused arguments to blackboxes, as removing them does not affect the rendered HDL.

undefined :: PrimInfo Source #

The undefined primitive represents an undefined value that was identified during normalization. This includes undefined results to compile-time evaluation, such as division by zero.

undefinedX :: PrimInfo Source #

The undefinedX primitive represents an X-exception throwing value that was identified during normalization.