value

package
v0.3.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2022 License: 0BSD, Unlicense Imports: 2 Imported by: 77

Documentation

Overview

Package value provides a definition of LLVM IR values.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Named

type Named interface {
	Value
	// Name returns the name of the value.
	Name() string
	// SetName sets the name of the value.
	SetName(name string)
}

Named is a named LLVM IR value.

A Named value has one of the following underlying types.

*ir.Global            // https://pkg.go.dev/github.com/llir/llvm/ir#Global
*ir.Func              // https://pkg.go.dev/github.com/llir/llvm/ir#Func
*ir.Param             // https://pkg.go.dev/github.com/llir/llvm/ir#Param
*ir.Block             // https://pkg.go.dev/github.com/llir/llvm/ir#Block
TODO: add named metadata value?
ir.Instruction        // https://pkg.go.dev/github.com/llir/llvm/ir#Instruction (except store and fence)
*ir.TermInvoke        // https://pkg.go.dev/github.com/llir/llvm/ir#TermInvoke
*ir.TermCatchSwitch   // https://pkg.go.dev/github.com/llir/llvm/ir#TermCatchSwitch (token result used by catchpad)

type User added in v0.3.5

type User interface {
	// Operands returns a mutable list of operands of the given value user
	// (instruction or terminator).
	Operands() []*Value
}

User is an instruction or terminator which uses values as operands.

type Value

type Value interface {
	// String returns the LLVM syntax representation of the value as a type-value
	// pair.
	fmt.Stringer
	// Type returns the type of the value.
	Type() types.Type
	// Ident returns the identifier associated with the value.
	Ident() string
}

Value is an LLVM IR value, which may be used as an operand of instructions and terminators.

A Value has one of the following underlying types.

constant.Constant   // https://pkg.go.dev/github.com/llir/llvm/ir/constant#Constant
value.Named         // https://pkg.go.dev/github.com/llir/llvm/ir/value#Named
TODO: add literal metadata value?

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL