78 lines
2.8 KiB
ReStructuredText
78 lines
2.8 KiB
ReStructuredText
+-----------------+
|
|
| layout: page |
|
|
+-----------------+
|
|
| title: Values |
|
|
+-----------------+
|
|
|
|
`llvm.core.Value <llvm.core.Value.html>`_ is the base class of all
|
|
values computed by a program that may be used as operands to other
|
|
values. A value has a type associated with it (an object of
|
|
`llvm.core.Type <types.html>`_).
|
|
|
|
The class hierarchy is:
|
|
|
|
::
|
|
|
|
Value
|
|
User
|
|
Constant
|
|
ConstantExpr
|
|
ConstantAggregateZero
|
|
ConstantInt
|
|
ConstantFP
|
|
ConstantArray
|
|
ConstantStruct
|
|
ConstantVector
|
|
ConstantPointerNull
|
|
UndefValue
|
|
GlobalValue
|
|
GlobalVariable
|
|
Function
|
|
Instruction
|
|
CallOrInvokeInstruction
|
|
PHINode
|
|
SwitchInstruction
|
|
CompareInstruction
|
|
Argument
|
|
BasicBlock
|
|
|
|
The `Value <llvm.core.Value.html>`_ class is abstract, it's not meant to
|
|
be instantiated. `User <llvm.core.User.html>`_ is a
|
|
`Value <llvm.core.Value.html>`_ that in turn uses (i.e., can refer to)
|
|
other values (for e.g., a constant expression 1+2 refers to two constant
|
|
values 1 and 2).
|
|
|
|
`Constant <llvm.core.Constant.html>`_-s represent constants that appear
|
|
within code or as initializers of globals. They are constructed using
|
|
static methods of `Constant <llvm.core.Constant.html>`_. Various types
|
|
of constants are represented by various subclasses of
|
|
`Constant <llvm.core.Constant.html>`_. However, most of them are empty
|
|
and do not provide any additional attributes or methods over
|
|
`Constant <llvm.core.Constant.html>`_.
|
|
|
|
The `Function <functions.html>`_ object represents an instance of a
|
|
function type. Such objects contain
|
|
`Argument <llvm.core.Argument.html>`_ objects, which represent the
|
|
actual, local-variable-like arguments of the function (not to be
|
|
confused with the arguments returned by a function *type* object --
|
|
these represent the *type* of the arguments).
|
|
|
|
The various `Instruction <llvm.core.Instruction.html>`_-s are created by
|
|
the `Builder <llvm.core.Builder.html>`_ class. Most instructions are
|
|
represented by `Instruction <llvm.core.Instruction.html>`_ itself, but
|
|
there are a few subclasses that represent interesting instructions.
|
|
|
|
`Value <llvm.core.Value.html>`_ objects have a type (read-only), and a
|
|
name (read-write).
|
|
|
|
**Related Links** `functions <functions.html>`_,
|
|
`comparision <comparision.html>`_,
|
|
`llvm.core.Value <llvm.core.Value.html>`_,
|
|
`llvm.core.User <llvm.core.User.html>`_,
|
|
`llvm.core.Constant <llvm.core.Constant.html>`_,
|
|
`llvm.core.GlobalValue <llvm.core.GlobalValue.html>`_,
|
|
`llvm.core.GlobalVariable <llvm.core.GlobalVariable.html>`_,
|
|
`llvm.core.Argument <llvm.core.Argument.html>`_,
|
|
`llvm.core.Instruction <llvm.core.Instruction.html>`_,
|
|
`llvm.core.Builder <llvm.core.Builder.html>`_,
|
|
`llvm.core.BasicBlock <llvm.core.BasicBlock.html>`_
|