|
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().
1.8.13