Common base class shared among various IRBuilders.
Synopsis
Declared in <llvm/IR/IRBuilder.h>
class IRBuilderBase;
Types
Name |
Description |
RAII guard that restores fast‐math builder settings. |
|
InsertPoint ‐ A saved insertion point. |
|
RAII guard that restores the builder insert point. |
|
RAII guard that restores default operand bundles. |
Member Functions
Name |
Description |
|
Construct an IRBuilderBase. |
Clear the insertion point: created instructions will not be inserted into a block. |
|
Create an a shr instruction. |
|
Create an add instruction. |
|
Create a vector int add reduction intrinsic of the source vector. |
|
Create an addr space cast. |
|
Cast between aggregates with matching structure. |
|
Create an aggregate return from multiple values. |
|
Create an aligned load. |
|
Create an aligned store. |
|
Create an assume intrinsic call that represents an alignment assumption on the provided pointer. |
|
Create an alloca instruction. |
|
Get allocation size of an alloca as a runtime Value* (handles both static and dynamic allocas and vscale factor). |
|
Create an and instruction. |
|
Create a vector int AND reduction intrinsic of the source vector. |
|
Create a call to the arithmetic_fence intrinsic. |
|
|
|
Create an atomic cmpxchg instruction. |
|
Create an atomicrmw instruction. |
|
Create a bin op. |
|
Create a binop with fast‐math flags. |
|
Create a call to intrinsic |
|
Create a bit cast instruction. |
|
Create a bit or pointer cast. |
|
Create casts that preserve the bit pattern of a value. |
|
Create an unconditional 'br label X' instruction. |
|
Create a call instruction. |
|
|
|
Create a cast instruction. |
|
Create a catch pad. |
|
Create a catch ret. |
|
Create a catch switch. |
|
Create a cleanup pad. |
|
Create a cleanup ret. |
|
Create a cmp. |
|
|
|
Create a const gep1_32. |
|
Create a const gep1_64. |
|
Create a const gep2_32. |
|
Create a const gep2_64. |
|
Create a const in bounds gep1_32. |
|
Create a const in bounds gep1_64. |
|
Create a const in bounds gep2_32. |
|
Create a const in bounds gep2_64. |
|
Create a constrained floating‐point binop. |
|
Create a constrained fp call. |
|
Create a constrained fp cast. |
|
Create a constrained fp cmp. |
|
Create a constrained floating‐point intrinsic call. |
|
Create a constrained FP binop without rounding metadata. |
|
Create call to the copysign intrinsic. |
|
Create a call to llvm.experimental_cttz_elts |
|
Create an assume intrinsic call that represents a dereferencable assumption on the provided pointer. |
|
Create a disjoint or. |
|
Create an expression which evaluates to the number of elements in |
|
Create and insert an element unordered‐atomic memcpy between the specified pointers. |
|
Create and insert an element unordered‐atomic memmove between the specified pointers. |
|
|
|
Create an exact binop instruction. |
|
Create an exact sdiv instruction. |
|
Create an exact udiv instruction. |
|
Create an extract element. |
|
Create an extract value. |
|
Create a call to the vector.extract intrinsic. |
|
Create call to the fabs intrinsic. |
|
Create a f add instruction. |
|
Create a fadd with fast‐math flags. |
|
Create a sequential vector fadd reduction intrinsic. |
|
Create a f cmp. |
|
Create an fcmp fmf instruction. |
|
Create an fcmp oeq instruction. |
|
Create an fcmp oge instruction. |
|
Create an fcmp ogt instruction. |
|
Create an fcmp ole instruction. |
|
Create an fcmp olt instruction. |
|
Create an fcmp one instruction. |
|
Create an fcmp ord instruction. |
|
Create an fcmp s instruction. |
|
Create an fcmp ueq instruction. |
|
Create an fcmp uge instruction. |
|
Create an fcmp ugt instruction. |
|
Create an fcmp ule instruction. |
|
Create an fcmp ult instruction. |
|
Create an fcmp une instruction. |
|
Create an fcmp uno instruction. |
|
Create a f div instruction. |
|
Create a fdiv with fast‐math flags. |
|
Create call to the fma intrinsic. |
|
Create a f mul instruction. |
|
Create a fmul with fast‐math flags. |
|
Create a sequential vector fmul reduction intrinsic. |
|
Create a f neg. |
|
Create a fneg with fast‐math flags. |
|
Create a fp cast. |
|
Create a fp ext. |
|
Create a fpext with fast‐math flags. |
|
Create a vector float max reduction intrinsic of the source vector. |
|
Create a vector float maximum reduction intrinsic of the source vector. This variant follows the NaN and signed zero semantic of llvm.maximumnum intrinsic. |
|
Create a vector float maximum reduction intrinsic of the source vector. This variant follows the NaN and signed zero semantic of llvm.maximum intrinsic. |
|
Create a vector float min reduction intrinsic of the source vector. |
|
Create a vector float minimum reduction intrinsic of the source vector. This variant follows the NaN and signed zero semantic of llvm.minimumnum intrinsic. |
|
Create a vector float minimum reduction intrinsic of the source vector. This variant follows the NaN and signed zero semantic of llvm.minimum intrinsic. |
|
Create a fp to si. |
|
Create a fp to ui. |
|
Create a fp trunc. |
|
Create a fptrunc with fast‐math flags. |
|
Create a f rem instruction. |
|
Create a frem with fast‐math flags. |
|
Create a f sub instruction. |
|
Create a fsub with fast‐math flags. |
|
Create a fence instruction. |
|
Generate the IR for a call to the builtin free function. |
|
Create a freeze instruction. |
|
Create a call to the experimental.gc.pointer.base intrinsic to get the base pointer for the specified derived pointer. |
|
Create a call to the experimental.gc.get.pointer.offset intrinsic to get the offset of the specified derived pointer from its base. |
|
Create a call to the experimental.gc.relocate intrinsics to project the relocated value of one pointer from the statepoint. |
|
Create a call to the experimental.gc.result intrinsic to extract the result from a call wrapped in a statepoint. |
|
|
|
|
|
Create a gep instruction. |
|
Make a new global variable with initializer type i8* |
|
Create an i cmp. |
|
Create an icmp eq instruction. |
|
Create an icmp ne instruction. |
|
Create an icmp sge instruction. |
|
Create an icmp sgt instruction. |
|
Create an icmp sle instruction. |
|
Create an icmp slt instruction. |
|
Create an icmp uge instruction. |
|
Create an icmp ugt instruction. |
|
Create an icmp ule instruction. |
|
Create an icmp ult instruction. |
|
Create an in bounds gep. |
|
Create an in bounds ptr add. |
|
Create an indirect branch instruction. |
|
Create an insert element. |
|
Create an insert value. |
|
|
|
Create an int cast. |
|
Create a vector integer max reduction intrinsic of the source vector. |
|
Create a vector integer min reduction intrinsic of the source vector. |
|
Create an int to ptr. |
|
Create a possibly constant‐folded intrinsic call. |
|
Create an intrinsic call that is never constant‐folded. |
|
Create a call to invariant.start intrinsic. |
|
Create an invoke instruction. |
|
Return a boolean value testing if |
|
Return a boolean value testing if |
|
Return a boolean value testing if |
|
Return a boolean value testing if |
|
Create an l shr instruction. |
|
Create a landing pad. |
|
Create a launder.invariant.group intrinsic call. |
|
Create call to the ldexp intrinsic. |
|
Create a lifetime.end intrinsic. |
|
Create a lifetime.start intrinsic. |
|
|
|
Create a logical and. |
|
Create a logical op. |
|
Create a logical or. |
|
Generate IR for a call to malloc. |
|
Create a call to Masked Compress Store intrinsic |
|
Create a call to Masked Expand Load intrinsic |
|
Create a call to Masked Gather intrinsic |
|
Create a call to Masked Load intrinsic |
|
Create a call to Masked Scatter intrinsic |
|
Create a call to Masked Store intrinsic |
|
Create call to the maxnum intrinsic. |
|
Create call to the maximum intrinsic. |
|
Create call to the maximum intrinsic. |
|
|
|
Create a mem cpy inline. |
|
Create a memmove intrinsic. |
|
|
|
Create an inline memset intrinsic. |
|
Create a memory‐transfer intrinsic. |
|
Create call to the minnum intrinsic. |
|
Create call to the minimum intrinsic. |
|
Create call to the minimumnum intrinsic. |
|
Create a mul instruction. |
|
Create a vector int mul reduction intrinsic of the source vector. |
|
Create either a UnaryOperator or BinaryOperator depending on |
|
Create an nsw add instruction. |
|
Create an nsw mul instruction. |
|
Create an nsw neg instruction. |
|
Create an nsw sub instruction. |
|
Create an nuw add instruction. |
|
Create an nuw mul instruction. |
|
Create an nuw sub instruction. |
|
Create a neg instruction. |
|
|
|
Create a no wrap bin op. |
|
Create an assume intrinsic call that represents a nonnull assumption on the provided pointer. |
|
Create a not instruction. |
|
Create an or instruction. |
|
Create a vector int OR reduction intrinsic of the source vector. |
|
Create a phi instruction. |
|
Create a pointer bit cast or addr space cast. |
|
Create a pointer cast. |
|
Create a preserve array access index. |
|
Create a preserve struct access index. |
|
Create a preserve union access index. |
|
Create a ptr add. |
|
|
|
Create a ptr to addr. |
|
Create a ptr to int. |
|
Create a resume. |
|
Create a 'ret <val>' instruction. |
|
Create a 'ret void' instruction. |
|
Create a s div instruction. |
|
Create a s ext instruction. |
|
Create a s ext or bit cast. |
|
Create a SExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy. |
|
Create a si to fp. |
|
Create a s rem instruction. |
|
Create a select instruction. |
|
Create a select with fast‐math flags. |
|
Create a select fmf with unknown profile. |
|
Create a select with unknown profile. |
|
Create a shl instruction. |
|
|
|
Create a call to llvm.stackrestore |
|
Create a call to llvm.stacksave |
|
Creates a vector of type |
|
Create a store instruction. |
|
Create a strip.invariant.group intrinsic call. |
|
Create a struct gep. |
|
Create a structured alloca. |
|
Create a structured gep. |
|
Create a sub instruction. |
|
Create a switch instruction with the specified value, default dest, and with a hint for the number of cases that will be added (for efficient allocation). |
|
Create a call to llvm.threadlocal.address intrinsic. |
|
Create a trunc instruction. |
|
Create a trunc or bit cast. |
|
Create an expression for the runtime size of a type. |
|
Create an u div instruction. |
|
Create an ui to fp. |
|
Create an u rem instruction. |
|
Create an un op. |
|
Create a call to intrinsic |
|
Create an unreachable. |
|
Create a va arg instruction. |
|
Create a call to llvm.vscale.<Ty>(). |
|
Create a vector interleave. |
|
Return a vector value that contains the vector V reversed |
|
Return a vector value that contains |
|
Create a vector.splice.left operation. |
|
Create a vector.splice.right operation. |
|
Create a xor instruction. |
|
Create a vector int XOR reduction intrinsic of the source vector. |
|
Create a z ext instruction. |
|
Create a z ext or bit cast. |
|
Create a ZExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy. |
|
Return the basic block of the current insert point. |
|
Return the iterator of the current insert point. |
|
|
|
Set location information used by debugging information. |
|
|
|
Set the insert point past entry‐block static allocas. |
|
If this builder has a current debug location, set it on the specified instruction. |
|
Clear the fast‐math flags. |
|
Create an is.fpclass intrinsic call. |
|
Return an all true boolean vector (mask) with |
|
Fetch the type representing a 16‐bit brain floating point value. |
|
Fetch the type representing a 128‐bit byte. |
|
Fetch the type representing a 16‐bit byte. |
|
Fetch the type representing a 32‐bit byte. |
|
Fetch the type representing a 64‐bit byte. |
|
Fetch the type representing an 8‐bit byte. |
|
Fetch the type representing an N‐bit byte. |
|
Fetch the type of a byte with size at least as big as that of a pointer in the given address space. |
|
Return the LLVM context used by this builder. |
|
Get location information used by debugging information. |
|
Get the return type of the current function that we're emitting into. |
|
Get the exception handling used with constrained floating point |
|
Get the rounding mode handling used with constrained floating point |
|
Get the floating point math metadata being used. |
|
Fetch the type representing a 64‐bit floating point value. |
|
Get the constant value for i1 false. |
|
|
|
Fetch the type representing a 32‐bit floating point value. |
|
Fetch the type representing a 16‐bit floating point value. |
|
Fetch the type of an integer that should be used to index GEP operations within AddressSpace. |
|
Get a constant integer value. |
|
Get a constant value representing either true or false. |
|
Fetch the type representing a 128‐bit integer. |
|
Get a constant 16‐bit value. |
|
Fetch the type representing a 16‐bit integer. |
|
Fetch the type representing a single bit |
|
Get a constant 32‐bit value. |
|
Fetch the type representing a 32‐bit integer. |
|
Get a constant 64‐bit value. |
|
Fetch the type representing a 64‐bit integer. |
|
Get a constant 8‐bit value. |
|
Fetch the type representing an 8‐bit integer. |
|
Get a constant N‐bit value, zero extended from a 64‐bit value. |
|
Fetch the type representing an N‐bit integer. |
|
Fetch the type of an integer with size at least as big as that of a pointer in the given address space. |
|
Query for the use of constrained floating point math |
|
Fetch the type representing a pointer. |
|
Get the constant value for i1 true. |
|
Fetch the type representing void. |
|
Sets the current insert point to a previously‐saved location. |
|
Returns the current insert point, clearing it in the process. |
|
Returns the current insert point. |
|
Add the StrictFP attribute to a call instruction. |
|
Add the StrictFP attribute to the current function. |
|
Set the exception handling to be used with constrained floating point |
|
Set the rounding mode handling to be used with constrained floating point |
|
Set the floating point math metadata to be used. |
|
Set the default operand bundles for new calls. |
|
Set the fast‐math flags to be used with generated fp‐math operators |
|
Enable or disable constrained floating‐point math. |
Protected Data Members
Name |
Description |
Basic block used as the current insert point. |
|
LLVM context used to create IR objects. |
|
Default exception behavior for constrained FP. |
|
Default rounding mode for constrained FP. |
|
Default floating‐point math metadata tag. |
|
Default operand bundles attached to new calls. |
|
Fast‐math flags applied to created floating‐point ops. |
|
Constant folder used when creating instructions. |
|
Iterator within BB where new instructions are inserted. |
|
Helper that inserts newly created instructions. |
|
Whether CreateF* builds constrained FP intrinsics. |
Non-Member Functions
Name |
Description |
Emit IR to implement the given cmpxchg operation on values in registers, returning the new value. |
|
Concatenate a list of vectors. |
|
Create a reduction of the given vector |
|
Create a mask that filters the members of an interleave group where there are gaps. |
|
Returns a Min/Max operation corresponding to MinMaxRecurrenceKind. The Builder's fast‐math‐flags must be set to propagate the expected values. |
|
Create an ordered reduction intrinsic using the given recurrence kind |
|
Overloaded function to generate vector‐predication intrinsics for ordered reduction. |
|
Overloaded function to generate vector‐predication intrinsics for reduction. |
|
Create a vector reduction for recurrence kind |
|
Emit code to compute a GEP's offset from its base pointer. |
|
Expand a scalable vector reduction into an element‐wise runtime loop. |
|
Generates an ordered vector reduction using extracts to reduce the value. |
|
Generates a vector reduction using shufflevectors to reduce the value. Fast‐math‐flags are propagated using the IRBuilder's setting. |
|
Split a basic block at an IRBuilder insertion point. |
|
Split a block and suffix the current block name for the new successor. |