On this page:
4.1 Builder Setup
llvm-builder-create
llvm-append-basic-block
llvm-builder-position-at-end
llvm-get-param
llvm-get-insert-block
4.2 Return Instructions
llvm-build-ret
llvm-build-ret-void
llvm-build-aggregate-ret
4.3 Arithmetic Instructions
llvm-build-add
llvm-build-sub
llvm-build-mul
llvm-build-sdiv
llvm-build-udiv
llvm-build-srem
llvm-build-urem
llvm-build-neg
llvm-build-nswadd
llvm-build-nswsub
llvm-build-nswmul
llvm-build-nswneg
llvm-build-nuwadd
llvm-build-nuwsub
llvm-build-nuwmul
llvm-build-nuwneg
llvm-build-fadd
llvm-build-fsub
llvm-build-fmul
llvm-build-fdiv
llvm-build-frem
llvm-build-fneg
4.4 Bitwise Instructions
llvm-build-and
llvm-build-or
llvm-build-xor
llvm-build-not
llvm-build-shl
llvm-build-lshr
llvm-build-ashr
4.5 Comparison Instructions
llvm-build-icmp
llvm-build-fcmp
llvm-build-is-null
llvm-build-is-not-null
4.6 Control Flow
llvm-build-br
llvm-build-cond-br
llvm-build-switch
llvm-add-case
llvm-build-unreachable
llvm-build-select
4.7 Memory Instructions
llvm-build-alloca
llvm-build-malloc
llvm-build-array-alloca
llvm-build-array-malloc
llvm-build-load2
llvm-build-store
llvm-build-gep2
llvm-build-in-bounds-gep2
llvm-build-struct-gep2
llvm-build-free
4.8 Function Calls
llvm-build-call2
llvm-build-invoke2
4.9 Type Cast Instructions
llvm-build-trunc
llvm-build-zext
llvm-build-sext
llvm-build-fp->si
llvm-build-fp->ui
llvm-build-si->fp
llvm-build-ui->fp
llvm-build-fp-trunc
llvm-build-fp-ext
llvm-build-bitcast
llvm-build-ptr->int
llvm-build-int->ptr
llvm-build-addrspace-cast
4.10 PHI Nodes
llvm-build-phi
llvm-add-incoming
4.11 Vector Instructions
llvm-build-extract-element
llvm-build-insert-element
llvm-build-shuffle-vector
4.12 Aggregate Instructions
llvm-build-extract-value
llvm-build-insert-value
4.13 Other Instructions
llvm-build-freeze
llvm-build-global-string
llvm-build-global-string-ptr
llvm-build-string-ptr
4.14 Value Queries
llvm-typeof
llvm-constant?
llvm-undef?
llvm-poison?
9.0

4 Builder🔗ℹ

The builder is used to construct LLVM IR instructions. Create a builder, position it at the end of a basic block, then use the llvm-build-* functions to emit instructions.

4.1 Builder Setup🔗ℹ

Creates a new instruction builder.

procedure

(llvm-append-basic-block function [name])  LLVMBasicBlockRef?

  function : LLVMValueRef?
  name : string? = ""
Creates and appends a new basic block to the given function.

procedure

(llvm-builder-position-at-end builder    
  basic-block)  void?
  builder : LLVMBuilderRef?
  basic-block : LLVMBasicBlockRef?
Sets builder insert position to the end of basic-block.

procedure

(llvm-get-param function index)  LLVMValueRef?

  function : LLVMValueRef?
  index : integer?
Gets parameter from function by index.

procedure

(llvm-get-insert-block builder)  LLVMBasicBlockRef?

  builder : LLVMBuilderRef?
Returns the basic block the builder is currently positioned at.

4.2 Return Instructions🔗ℹ

procedure

(llvm-build-ret builder value)  LLVMValueRef?

  builder : LLVMBuilderRef?
  value : LLVMValueRef?
Builds a return instruction returning value.

procedure

(llvm-build-ret-void builder)  LLVMValueRef?

  builder : LLVMBuilderRef?
Builds a void return instruction.

procedure

(llvm-build-aggregate-ret builder ret-vals)  LLVMValueRef?

  builder : LLVMBuilderRef?
  ret-vals : (listof LLVMValueRef?)
Builds a return instruction returning multiple values.

4.3 Arithmetic Instructions🔗ℹ

All arithmetic instructions take a builder, operands, and an optional name string (defaulting to "") for the result register.

procedure

(llvm-build-add builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer addition.

procedure

(llvm-build-sub builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer subtraction.

procedure

(llvm-build-mul builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer multiplication.

procedure

(llvm-build-sdiv builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Signed integer division.

procedure

(llvm-build-udiv builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Unsigned integer division.

procedure

(llvm-build-srem builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Signed integer remainder.

procedure

(llvm-build-urem builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Unsigned integer remainder.

procedure

(llvm-build-neg builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Integer negation.

procedure

(llvm-build-nswadd builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer addition with NSW (no signed wrap) flag.

procedure

(llvm-build-nswsub builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer subtraction with NSW flag.

procedure

(llvm-build-nswmul builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer multiplication with NSW flag.

procedure

(llvm-build-nswneg builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Integer negation with NSW flag.

procedure

(llvm-build-nuwadd builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer addition with NUW (no unsigned wrap) flag.

procedure

(llvm-build-nuwsub builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer subtraction with NUW flag.

procedure

(llvm-build-nuwmul builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer multiplication with NUW flag.

procedure

(llvm-build-nuwneg builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Integer negation with NUW flag.

procedure

(llvm-build-fadd builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point addition.

procedure

(llvm-build-fsub builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point subtraction.

procedure

(llvm-build-fmul builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point multiplication.

procedure

(llvm-build-fdiv builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point division.

procedure

(llvm-build-frem builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point remainder.

procedure

(llvm-build-fneg builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Floating-point negation.

4.4 Bitwise Instructions🔗ℹ

procedure

(llvm-build-and builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Bitwise AND.

procedure

(llvm-build-or builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Bitwise OR.

procedure

(llvm-build-xor builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Bitwise XOR.

procedure

(llvm-build-not builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Bitwise NOT.

procedure

(llvm-build-shl builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Shift left.

procedure

(llvm-build-lshr builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Logical shift right.

procedure

(llvm-build-ashr builder lhs rhs [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Arithmetic shift right.

4.5 Comparison Instructions🔗ℹ

procedure

(llvm-build-icmp builder    
  predicate    
  lhs    
  rhs    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  predicate : symbol?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Integer comparison. predicate is one of: 'int-eq, 'int-ne, 'int-ugt, 'int-uge, 'int-ult, 'int-ule (unsigned), 'int-sgt, 'int-sge, 'int-slt, 'int-sle (signed).

The alias llvm-build-int-cmp is also available.

procedure

(llvm-build-fcmp builder    
  predicate    
  lhs    
  rhs    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  predicate : symbol?
  lhs : LLVMValueRef?
  rhs : LLVMValueRef?
  name : string? = ""
Floating-point comparison. predicate is one of: 'real-oeq, 'real-ogt, 'real-oge, 'real-olt, 'real-ole, 'real-one, 'real-ord (ordered), 'real-ueq, 'real-ugt, 'real-uge, 'real-ult, 'real-ule, 'real-uno (unordered), 'real-predicate-false, 'real-predicate-true.

The alias llvm-build-float-cmp is also available.

procedure

(llvm-build-is-null builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Checks if value is null.

procedure

(llvm-build-is-not-null builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Checks if value is not null.

4.6 Control Flow🔗ℹ

procedure

(llvm-build-br builder dest)  LLVMValueRef?

  builder : LLVMBuilderRef?
  dest : LLVMBasicBlockRef?
Unconditional branch to dest.

procedure

(llvm-build-cond-br builder    
  cond    
  then-block    
  else-block)  LLVMValueRef?
  builder : LLVMBuilderRef?
  cond : LLVMValueRef?
  then-block : LLVMBasicBlockRef?
  else-block : LLVMBasicBlockRef?
Conditional branch. Jumps to then-block if cond is true, otherwise else-block.

procedure

(llvm-build-switch builder    
  val    
  default-block    
  num-cases)  LLVMValueRef?
  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  default-block : LLVMBasicBlockRef?
  num-cases : exact-nonnegative-integer?
Creates a switch instruction. Use llvm-add-case to add cases.

procedure

(llvm-add-case switch on-val dest)  void?

  switch : LLVMValueRef?
  on-val : LLVMValueRef?
  dest : LLVMBasicBlockRef?
Adds a case to a switch instruction.

procedure

(llvm-build-unreachable builder)  LLVMValueRef?

  builder : LLVMBuilderRef?
Marks a point in code as unreachable.

procedure

(llvm-build-select builder if then else [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  if : LLVMValueRef?
  then : LLVMValueRef?
  else : LLVMValueRef?
  name : string? = ""
Selects between two values based on a condition (like a ternary operator).

4.7 Memory Instructions🔗ℹ

procedure

(llvm-build-alloca builder ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  name : string? = ""
Allocates memory on the stack for the given type.

procedure

(llvm-build-malloc builder ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  name : string? = ""
Allocates memory on the heap for the given type.

procedure

(llvm-build-array-alloca builder ty val [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  val : LLVMValueRef?
  name : string? = ""
Allocates an array on the stack.

procedure

(llvm-build-array-malloc builder ty val [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  val : LLVMValueRef?
  name : string? = ""
Allocates an array on the heap.

procedure

(llvm-build-load2 builder    
  ty    
  pointer-val    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  pointer-val : LLVMValueRef?
  name : string? = ""
Loads a value of ty from the pointer pointer-val.

procedure

(llvm-build-store builder val ptr)  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  ptr : LLVMValueRef?
Stores val to the pointer ptr.

procedure

(llvm-build-gep2 builder    
  ty    
  pointer    
  indices    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  pointer : LLVMValueRef?
  indices : (listof LLVMValueRef?)
  name : string? = ""
Computes a pointer to a sub-element of an aggregate type (GEP — Get Element Pointer). indices is a list of index values.

procedure

(llvm-build-in-bounds-gep2 builder    
  ty    
  pointer    
  indices    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  pointer : LLVMValueRef?
  indices : (listof LLVMValueRef?)
  name : string? = ""
Like llvm-build-gep2 but with the inbounds flag set.

procedure

(llvm-build-struct-gep2 builder    
  ty    
  pointer    
  idx    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  pointer : LLVMValueRef?
  idx : exact-nonnegative-integer?
  name : string? = ""
Computes a pointer to a field of a struct type.

procedure

(llvm-build-free builder ptr)  LLVMValueRef?

  builder : LLVMBuilderRef?
  ptr : LLVMValueRef?
Frees heap-allocated memory.

4.8 Function Calls🔗ℹ

procedure

(llvm-build-call2 builder    
  fn-type    
  fn    
  args    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  fn-type : LLVMTypeRef?
  fn : LLVMValueRef?
  args : (listof LLVMValueRef?)
  name : string? = ""
Calls fn with the given args. fn-type is the function’s type. name names the return value (use "" for void calls).

procedure

(llvm-build-invoke2 builder    
  fn-ty    
  fn    
  args    
  then    
  catch    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  fn-ty : LLVMTypeRef?
  fn : LLVMValueRef?
  args : (listof LLVMValueRef?)
  then : LLVMBasicBlockRef?
  catch : LLVMBasicBlockRef?
  name : string? = ""
Invokes fn with the given args. On normal return, control goes to then; on exception, to catch.

4.9 Type Cast Instructions🔗ℹ

procedure

(llvm-build-trunc builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Truncates an integer to a narrower type.

procedure

(llvm-build-zext builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Zero-extends an integer to a wider type.

procedure

(llvm-build-sext builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Sign-extends an integer to a wider type.

procedure

(llvm-build-fp->si builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts a floating-point value to a signed integer.

procedure

(llvm-build-fp->ui builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts a floating-point value to an unsigned integer.

procedure

(llvm-build-si->fp builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts a signed integer to a floating-point value.

procedure

(llvm-build-ui->fp builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts an unsigned integer to a floating-point value.

procedure

(llvm-build-fp-trunc builder    
  val    
  dest-ty    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Truncates a float to a narrower float type.

procedure

(llvm-build-fp-ext builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Extends a float to a wider float type.

procedure

(llvm-build-bitcast builder val dest-ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Reinterprets the bits of a value as a different type of the same size.

procedure

(llvm-build-ptr->int builder    
  val    
  dest-ty    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts a pointer to an integer.

procedure

(llvm-build-int->ptr builder    
  val    
  dest-ty    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Converts an integer to a pointer.

procedure

(llvm-build-addrspace-cast builder    
  val    
  dest-ty    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  val : LLVMValueRef?
  dest-ty : LLVMTypeRef?
  name : string? = ""
Casts a pointer to a different address space.

4.10 PHI Nodes🔗ℹ

procedure

(llvm-build-phi builder ty [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  ty : LLVMTypeRef?
  name : string? = ""
Creates a PHI node of the given type. Use llvm-add-incoming to add incoming values from predecessor blocks.

procedure

(llvm-add-incoming phi    
  incoming-values    
  incoming-blocks)  void?
  phi : LLVMValueRef?
  incoming-values : (listof LLVMValueRef?)
  incoming-blocks : (listof LLVMBasicBlockRef?)
Adds incoming values to a PHI node. Each value in incoming-values comes from the corresponding predecessor basic block in incoming-blocks. The two lists must have the same length.

4.11 Vector Instructions🔗ℹ

procedure

(llvm-build-extract-element builder    
  vec-val    
  index    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  vec-val : LLVMValueRef?
  index : LLVMValueRef?
  name : string? = ""
Extracts an element from a vector at the given index.

procedure

(llvm-build-insert-element builder    
  vec-val    
  elt-val    
  index    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  vec-val : LLVMValueRef?
  elt-val : LLVMValueRef?
  index : LLVMValueRef?
  name : string? = ""
Inserts an element into a vector at the given index.

procedure

(llvm-build-shuffle-vector builder    
  v1    
  v2    
  mask    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  v1 : LLVMValueRef?
  v2 : LLVMValueRef?
  mask : LLVMValueRef?
  name : string? = ""
Shuffles elements from two vectors using the given mask.

4.12 Aggregate Instructions🔗ℹ

procedure

(llvm-build-extract-value builder    
  agg-val    
  index    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  agg-val : LLVMValueRef?
  index : exact-nonnegative-integer?
  name : string? = ""
Extracts a field from an aggregate (struct or array) at the given index.

procedure

(llvm-build-insert-value builder    
  agg-val    
  elt-val    
  index    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  agg-val : LLVMValueRef?
  elt-val : LLVMValueRef?
  index : exact-nonnegative-integer?
  name : string? = ""
Inserts a value into an aggregate at the given index.

4.13 Other Instructions🔗ℹ

procedure

(llvm-build-freeze builder v [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  v : LLVMValueRef?
  name : string? = ""
Freezes a potentially undefined or poison value to a fixed value.

procedure

(llvm-build-global-string builder str [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  str : string?
  name : string? = ""
Creates a global string constant.

procedure

(llvm-build-global-string-ptr builder    
  str    
  [name])  LLVMValueRef?
  builder : LLVMBuilderRef?
  str : string?
  name : string? = ""
Creates a pointer to a global string constant. The alias llvm-build-string-ptr is also available.

procedure

(llvm-build-string-ptr builder str [name])  LLVMValueRef?

  builder : LLVMBuilderRef?
  str : string?
  name : string? = ""

4.14 Value Queries🔗ℹ

procedure

(llvm-typeof val)  LLVMTypeRef?

  val : LLVMValueRef?
Returns the type of a value.

procedure

(llvm-constant? val)  boolean?

  val : LLVMValueRef?
Returns whether the value is a constant.

procedure

(llvm-undef? val)  boolean?

  val : LLVMValueRef?
Returns whether the value is undefined.

procedure

(llvm-poison? val)  boolean?

  val : LLVMValueRef?
Returns whether the value is a poison value.