LLVM
8.0.1
|
#include "llvm/IR/IRBuilder.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/None.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.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/Operator.h"
#include "llvm/IR/Statepoint.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
#include <cstdint>
#include <vector>
Go to the source code of this file.
Functions | |
static CallInst * | createCallHelper (Value *Callee, ArrayRef< Value *> Ops, IRBuilderBase *Builder, const Twine &Name="", Instruction *FMFSource=nullptr) |
static InvokeInst * | createInvokeHelper (Value *Invokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Ops, IRBuilderBase *Builder, const Twine &Name="") |
static CallInst * | getReductionIntrinsic (IRBuilderBase *Builder, Intrinsic::ID ID, Value *Src) |
template<typename T0 , typename T1 , typename T2 , typename T3 > | |
static std::vector< Value * > | getStatepointArgs (IRBuilderBase &B, uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< T0 > CallArgs, ArrayRef< T1 > TransitionArgs, ArrayRef< T2 > DeoptArgs, ArrayRef< T3 > GCArgs) |
template<typename T0 , typename T1 , typename T2 , typename T3 > | |
static CallInst * | CreateGCStatepointCallCommon (IRBuilderBase *Builder, uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< T0 > CallArgs, ArrayRef< T1 > TransitionArgs, ArrayRef< T2 > DeoptArgs, ArrayRef< T3 > GCArgs, const Twine &Name) |
template<typename T0 , typename T1 , typename T2 , typename T3 > | |
static InvokeInst * | CreateGCStatepointInvokeCommon (IRBuilderBase *Builder, uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< T0 > InvokeArgs, ArrayRef< T1 > TransitionArgs, ArrayRef< T2 > DeoptArgs, ArrayRef< T3 > GCArgs, const Twine &Name) |
|
static |
Definition at line 75 of file IRBuilder.cpp.
References llvm::Instruction::copyFastMathFlags(), llvm::CallInst::Create(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::GetInsertPoint(), llvm::BasicBlock::getInstList(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), Name, and llvm::IRBuilderBase::SetInstDebugLocation().
Referenced by llvm::IRBuilderBase::CreateAssumption(), llvm::IRBuilderBase::CreateBinaryIntrinsic(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemCpy(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemSet(), llvm::IRBuilderBase::CreateFAddReduce(), llvm::IRBuilderBase::CreateFMulReduce(), llvm::IRBuilderBase::CreateGCRelocate(), llvm::IRBuilderBase::CreateGCResult(), CreateGCStatepointCallCommon(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateInvariantStart(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilderBase::CreateMaskedStore(), llvm::IRBuilderBase::CreateMemCpy(), llvm::IRBuilderBase::CreateMemMove(), llvm::IRBuilderBase::CreateMemSet(), llvm::IRBuilderBase::CreateUnaryIntrinsic(), and getReductionIntrinsic().
|
static |
Definition at line 602 of file IRBuilder.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), createCallHelper(), llvm::Intrinsic::experimental_gc_statepoint, llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), getStatepointArgs(), and llvm::Value::getType().
|
static |
Definition at line 653 of file IRBuilder.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), createInvokeHelper(), llvm::Intrinsic::experimental_gc_statepoint, llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), getStatepointArgs(), and llvm::Value::getType().
|
static |
Definition at line 87 of file IRBuilder.cpp.
References llvm::InvokeInst::Create(), llvm::IRBuilderBase::CreateMemSet(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::GetInsertPoint(), llvm::BasicBlock::getInstList(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), Name, and llvm::IRBuilderBase::SetInstDebugLocation().
Referenced by CreateGCStatepointInvokeCommon().
|
static |
Definition at line 313 of file IRBuilder.cpp.
References createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), and llvm::Type::getVectorElementType().
Referenced by llvm::IRBuilderBase::CreateAddReduce(), llvm::IRBuilderBase::CreateAndReduce(), llvm::IRBuilderBase::CreateFPMaxReduce(), llvm::IRBuilderBase::CreateFPMinReduce(), llvm::IRBuilderBase::CreateIntMaxReduce(), llvm::IRBuilderBase::CreateIntMinReduce(), llvm::IRBuilderBase::CreateMulReduce(), llvm::IRBuilderBase::CreateOrReduce(), and llvm::IRBuilderBase::CreateXorReduce().
|
static |
Definition at line 581 of file IRBuilder.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), llvm::IRBuilderBase::getInt32(), llvm::IRBuilderBase::getInt64(), and llvm::ArrayRef< T >::size().
Referenced by CreateGCStatepointCallCommon(), and CreateGCStatepointInvokeCommon().