LLVM 19.0.0git
Macros | Functions
IRBuilder.cpp File Reference
#include "llvm/IR/IRBuilder.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/NoFolder.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Statepoint.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <cstdint>
#include <optional>
#include <vector>
#include "llvm/IR/ConstrainedOps.def"

Go to the source code of this file.

Macros

#define INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC)
 
#define INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC)
 

Functions

static bool isConstantOne (const Value *Val)
 isConstantOne - Return true only if val is constant int 1
 
static MaybeAlign getAlign (Value *Ptr)
 
template<typename T0 >
static std::vector< Value * > getStatepointArgs (IRBuilderBase &B, uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< T0 > CallArgs)
 
template<typename T1 , typename T2 , typename T3 >
static std::vector< OperandBundleDefgetStatepointBundles (std::optional< ArrayRef< T1 > > TransitionArgs, std::optional< ArrayRef< T2 > > DeoptArgs, ArrayRef< T3 > GCArgs)
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static CallInstCreateGCStatepointCallCommon (IRBuilderBase *Builder, uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, uint32_t Flags, ArrayRef< T0 > CallArgs, std::optional< ArrayRef< T1 > > TransitionArgs, std::optional< ArrayRef< T2 > > DeoptArgs, ArrayRef< T3 > GCArgs, const Twine &Name)
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static InvokeInstCreateGCStatepointInvokeCommon (IRBuilderBase *Builder, uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< T0 > InvokeArgs, std::optional< ArrayRef< T1 > > TransitionArgs, std::optional< ArrayRef< T2 > > DeoptArgs, ArrayRef< T3 > GCArgs, const Twine &Name)
 

Macro Definition Documentation

◆ INSTRUCTION [1/2]

#define INSTRUCTION (   NAME,
  NARG,
  ROUND_MODE,
  INTRINSIC 
)
Value:
case Intrinsic::INTRINSIC: \
HasRoundingMD = ROUND_MODE; \
break;

◆ INSTRUCTION [2/2]

#define INSTRUCTION (   NAME,
  NARG,
  ROUND_MODE,
  INTRINSIC 
)
Value:
case Intrinsic::INTRINSIC: \
HasRoundingMD = ROUND_MODE; \
break;

Function Documentation

◆ CreateGCStatepointCallCommon()

template<typename T0 , typename T1 , typename T2 , typename T3 >
static CallInst * CreateGCStatepointCallCommon ( IRBuilderBase Builder,
uint64_t  ID,
uint32_t  NumPatchBytes,
FunctionCallee  ActualCallee,
uint32_t  Flags,
ArrayRef< T0 >  CallArgs,
std::optional< ArrayRef< T1 > >  TransitionArgs,
std::optional< ArrayRef< T2 > >  DeoptArgs,
ArrayRef< T3 >  GCArgs,
const Twine Name 
)
static

◆ CreateGCStatepointInvokeCommon()

template<typename T0 , typename T1 , typename T2 , typename T3 >
static InvokeInst * CreateGCStatepointInvokeCommon ( IRBuilderBase Builder,
uint64_t  ID,
uint32_t  NumPatchBytes,
FunctionCallee  ActualInvokee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
uint32_t  Flags,
ArrayRef< T0 >  InvokeArgs,
std::optional< ArrayRef< T1 > >  TransitionArgs,
std::optional< ArrayRef< T2 > >  DeoptArgs,
ArrayRef< T3 >  GCArgs,
const Twine Name 
)
static

◆ getAlign()

static MaybeAlign getAlign ( Value Ptr)
static

Definition at line 530 of file IRBuilder.cpp.

References A, and Ptr.

Referenced by computeKnownBitsFromOperator(), and foldPatternedLoads().

◆ getStatepointArgs()

template<typename T0 >
static std::vector< Value * > getStatepointArgs ( IRBuilderBase B,
uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualCallee,
uint32_t  Flags,
ArrayRef< T0 >  CallArgs 
)
static

◆ getStatepointBundles()

template<typename T1 , typename T2 , typename T3 >
static std::vector< OperandBundleDef > getStatepointBundles ( std::optional< ArrayRef< T1 > >  TransitionArgs,
std::optional< ArrayRef< T2 > >  DeoptArgs,
ArrayRef< T3 >  GCArgs 
)
static

◆ isConstantOne()

static bool isConstantOne ( const Value Val)
static

isConstantOne - Return true only if val is constant int 1

Definition at line 295 of file IRBuilder.cpp.

References assert(), and llvm::ConstantInt::isOne().

Referenced by llvm::IRBuilderBase::CreateMalloc().