passes

This module implements the passes functionality. A pass must implement the TPass interface.

Types

TPassData = tuple[input: PNode, closeOutput: PNode]
  Source Edit

Procs

proc makePass(open: TPassOpen = nil; process: TPassProcess = nil;
              close: TPassClose = nil; isFrontend = false): TPass {...}{.raises: [],
    tags: [].}
  Source Edit
proc skipCodegen(config: ConfigRef; n: PNode): bool {...}{.inline, raises: [],
    tags: [].}
  Source Edit
proc clearPasses(g: ModuleGraph) {...}{.raises: [], tags: [].}
  Source Edit
proc registerPass(g: ModuleGraph; p: TPass) {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
  Source Edit
proc carryPass(g: ModuleGraph; p: TPass; module: PSym; m: TPassData): TPassData {...}{.
    raises: [Exception], tags: [RootEffect].}
  Source Edit
proc carryPasses(g: ModuleGraph; nodes: PNode; module: PSym;
                 passes: openArray[TPass]) {...}{.raises: [Exception],
    tags: [RootEffect].}
  Source Edit
proc moduleHasChanged(graph: ModuleGraph; module: PSym): bool {...}{.inline,
    raises: [], tags: [].}
  Source Edit
proc processModule(graph: ModuleGraph; module: PSym; stream: PLLStream): bool {...}{.
    discardable, raises: [Exception, ValueError, IOError, ERecoverableError,
                          KeyError, OSError], tags: [RootEffect, WriteIOEffect,
    ReadIOEffect, ReadEnvEffect, ReadDirEffect].}
  Source Edit