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 case class Attrs(inlineHint: Inline = MayInline, specialize: Specialize = MaySpecialize, opt: Opt = UnOpt, align: Option[Alignment] = Option.empty, isExtern: Boolean = false, isBlocking: Boolean = false, isDyn: Boolean = false, isStub: Boolean = false, isAbstract: Boolean = false, isVolatile: Boolean = false, isFinal: Boolean = false, isSafePublish: Boolean = false, isLinktimeResolved: Boolean = false, isUsingIntrinsics: Boolean = false, links: Seq[Link] = Seq.empty, preprocessorDefinitions: Seq[Define] = Seq.empty) 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