LLVM
8.0.1
|
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <cassert>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "scalarize-masked-mem-intrin" |
Functions | |
INITIALIZE_PASS (ScalarizeMaskedMemIntrin, DEBUG_TYPE, "Scalarize unsupported masked memory intrinsics", false, false) FunctionPass *llvm | |
static bool | isConstantIntVector (Value *Mask) |
static void | scalarizeMaskedLoad (CallInst *CI) |
static void | scalarizeMaskedStore (CallInst *CI) |
static void | scalarizeMaskedGather (CallInst *CI) |
static void | scalarizeMaskedScatter (CallInst *CI) |
#define DEBUG_TYPE "scalarize-masked-mem-intrin" |
Definition at line 40 of file ScalarizeMaskedMemIntrin.cpp.
INITIALIZE_PASS | ( | ScalarizeMaskedMemIntrin | , |
DEBUG_TYPE | , | ||
"Scalarize unsupported masked memory intrinsics" | , | ||
false | , | ||
false | |||
) |
Definition at line 73 of file ScalarizeMaskedMemIntrin.cpp.
Definition at line 80 of file ScalarizeMaskedMemIntrin.cpp.
References C, llvm::dyn_cast(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), and llvm::BitmaskEnumDetail::Mask().
Referenced by scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), and scalarizeMaskedStore().
|
static |
Definition at line 363 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::PHINode::addIncoming(), llvm::BranchInst::Create(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::SequentialType::getNumElements(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::SPII::Load, llvm::BitmaskEnumDetail::Mask(), llvm::Value::replaceAllUsesWith(), and llvm::BasicBlock::splitBasicBlock().
Referenced by scalarizeMaskedScatter().
|
static |
Definition at line 127 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::PHINode::addIncoming(), llvm::BranchInst::Create(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::SequentialType::getElementType(), llvm::SequentialType::getNumElements(), llvm::Instruction::getParent(), llvm::Type::getPointerTo(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::SPII::Load, llvm::BitmaskEnumDetail::Mask(), llvm::MinAlign(), llvm::Value::replaceAllUsesWith(), and llvm::BasicBlock::splitBasicBlock().
Referenced by scalarizeMaskedScatter().
|
static |
Definition at line 472 of file ScalarizeMaskedMemIntrin.cpp.
References assert(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::BranchInst::Create(), llvm::dyn_cast(), llvm::BasicBlock::end(), llvm::Function::end(), llvm::Instruction::eraseFromParent(), F(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::IntrinsicInst::getIntrinsicID(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), I, isConstantIntVector(), llvm::BitmaskEnumDetail::Mask(), llvm::Intrinsic::masked_gather, llvm::Intrinsic::masked_load, llvm::Intrinsic::masked_scatter, llvm::Intrinsic::masked_store, runOnFunction(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedStore(), and llvm::BasicBlock::splitBasicBlock().
|
static |
Definition at line 253 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::BranchInst::Create(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::SequentialType::getElementType(), llvm::SequentialType::getNumElements(), llvm::Instruction::getParent(), llvm::Type::getPointerTo(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::BitmaskEnumDetail::Mask(), llvm::MinAlign(), and llvm::BasicBlock::splitBasicBlock().
Referenced by scalarizeMaskedScatter().