package nir
- Alphabetic
- By Inheritance
- nir
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package serialization
Type Members
- sealed abstract class Attr extends AnyRef
- final class Attrs extends Product with Serializable
- sealed abstract class Bin extends AnyRef
- sealed abstract class Comp extends AnyRef
- sealed abstract class Conv extends AnyRef
- sealed abstract class Defn extends Positioned
A definition in NIR.
A definition in NIR.
Programs in NIR are represented as a sequence of definitions denoting types, methods and fields. Definitions fall into two categories:
- Top-level definitions: these represent classes, modules, traits, or global variables and constants.
- Member definitions: these represent fields or methods.
Classes and modules inherit from a single parent with the exception of
java.lang.Object, which sits at the top of the hierarchy. They may additionally implement traits.Definitions may also carry attributes providing further information about their semantics (e.g., whether a method may be inlined). Attributes are also used to mark special-purpose definitions, such as stubs, proxies and FFIs.
- final class Fresh extends AnyRef
- sealed abstract class Global extends AnyRef
The identifier of a type or method (aka a symbol).
- sealed abstract class Inst extends Positioned
- class InstructionBuilder extends AnyRef
A class to build sequences of NIR instructions.
- sealed trait LinktimeCondition extends AnyRef
- final case class Local(id: Long) extends AnyVal with Product with Serializable
- type LocalName = String
The name of a variable in program sources.
- type LocalNames = Map[Local, LocalName]
A map from SSA identifier to its name in program sources.
A map from SSA identifier to its name in program sources.
Local variables get lowered to an static assignment that is assigned to a unique identifier in the context of its definition. Instances of this type are used to maintain the correspondance between an SSA ID and its corresponding name in program sources.
- sealed abstract class MemoryOrder extends AnyRef
An atomic memory ordering constraints.
An atomic memory ordering constraints.
Atomic instructions take ordering parameters specifying with which other instructions they synchronize.
- See also
https://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints.
- sealed case class NIRSource(directory: Path, path: Path) extends Product with Serializable
- sealed abstract class Next extends AnyRef
- sealed abstract class Op extends AnyRef
- trait Positioned extends AnyRef
- final case class ScopeId(id: Int) extends AnyVal with Product with Serializable
The identifier of a lexical scope.
- final class Sig extends AnyRef
- sealed trait SourceFile extends AnyRef
- final case class SourcePosition(source: SourceFile, line: Int, column: Int, nirSource: NIRSource = NIRSource.None) extends Product with Serializable
- trait Transform extends AnyRef
- trait Traverse extends AnyRef
- sealed abstract class Type extends AnyRef
- sealed abstract class Val extends AnyRef
A NIR value.
Value Members
- object Attr
- object Attrs extends java.io.Serializable
- object Bin
- object Comp
- object Conv
- object Defn
- object Fresh
- object Global
- object Inst
- object LinktimeCondition
- object Mangle
- object MemoryOrder
- object NIRSource extends java.io.Serializable
- object Next
- object Of
- object Op
- object Positioned
- object ScopeId extends java.io.Serializable
- object Show
- object Sig
- object SourceFile
- object SourcePosition extends java.io.Serializable
- object Type
- object Unmangle
- object Val
- object Versions