scala.scalanative.nir

Type members

Classlikes

sealed abstract class Attr
Companion:
object
object Attr
Companion:
class
final case class Attrs(inlineHint: Inline, specialize: Specialize, opt: Opt, align: Option[Alignment], isExtern: Boolean, isBlocking: Boolean, isDyn: Boolean, isStub: Boolean, isAbstract: Boolean, isVolatile: Boolean, isFinal: Boolean, isSafePublish: Boolean, isLinktimeResolved: Boolean, isUsingIntrinsics: Boolean, links: Seq[Link], preprocessorDefinitions: Seq[Define])
Companion:
object
object Attrs
Companion:
class
sealed abstract class Bin
Companion:
object
object Bin
Companion:
class
sealed abstract class Comp
Companion:
object
object Comp
Companion:
class
sealed abstract class Conv
Companion:
object
object Conv
Companion:
class
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.

Companion:
object
object Defn
Companion:
class
final class Fresh
Companion:
object
object Fresh
Companion:
class
sealed abstract class Global

The identifier of a type or method (aka a symbol).

The identifier of a type or method (aka a symbol).

Companion:
object
object Global
Companion:
class
sealed abstract class Inst extends Positioned
Companion:
object
object Inst
Companion:
class
class InstructionBuilder(implicit fresh: Fresh)

A class to build sequences of NIR instructions.

A class to build sequences of NIR instructions.

sealed trait LinktimeCondition
Companion:
object
Companion:
class
final case class Local(id: Long) extends AnyVal
object Mangle
sealed abstract class MemoryOrder(val tag: Int)

An atomic memory ordering constraints.

An atomic memory ordering constraints.

Atomic instructions take ordering parameters specifying with which other instructions they synchronize.

See also:
Companion:
object
Companion:
class
sealed case class NIRSource(directory: Path, path: Path)
Companion:
object
object NIRSource
Companion:
class
sealed abstract class Next
Companion:
object
object Next
Companion:
class
object Of
sealed abstract class Op
Companion:
object
object Op
Companion:
class
Companion:
object
object Positioned
Companion:
class
final case class ScopeId(id: Int) extends AnyVal

The identifier of a lexical scope.

The identifier of a lexical scope.

Companion:
object
object ScopeId
Companion:
class
object Show
final class Sig(val mangle: String)
Companion:
object
object Sig
Companion:
class
sealed trait SourceFile
Companion:
object
object SourceFile
Companion:
class
final case class SourcePosition(source: SourceFile, line: Int, column: Int, nirSource: NIRSource)
Companion:
object
Companion:
class
trait Transform
trait Traverse
sealed abstract class Type
Companion:
object
object Type
Companion:
class
object Unmangle
sealed abstract class Val

A NIR value.

A NIR value.

Companion:
object
object Val
Companion:
class
object Versions

Types

The name of a variable in program sources.

The name of a variable in program sources.

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.