LLVM: lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "scalarize-masked-mem-intrin" |
◆ DEBUG_TYPE
#define DEBUG_TYPE "scalarize-masked-mem-intrin"
◆ adjustForEndian()
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN | ( | ScalarizeMaskedMemIntrinLegacyPass | , |
|---|---|---|---|
| DEBUG_TYPE | , | ||
| "Scalarize unsupported masked memory intrinsics" | , | ||
| false | , | ||
| false | ) |
◆ isConstantIntVector()
| bool isConstantIntVector ( Value * Mask) | static |
|---|
Definition at line 93 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), and llvm::isa().
Referenced by optimizeCallInst(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), and scalarizeMaskedVectorHistogram().
◆ optimizeBlock()
◆ optimizeCallInst()
Definition at line 1098 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::any_of(), llvm::cast(), llvm::TargetTransformInfo::ConstantMask, DL, llvm::dyn_cast(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::CallBase::getParamAlign(), llvm::Value::getType(), II, llvm::isa(), isConstantIntVector(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), llvm::MaybeAlign::valueOrOne(), and llvm::TargetTransformInfo::VariableOrConstantMask.
Referenced by optimizeBlock().
◆ runImpl()
◆ scalarizeMaskedCompressStore()
Definition at line 833 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::PHINode::addIncoming(), adjustForEndian(), llvm::BasicBlock::begin(), llvm::cast(), llvm::commonAlignment(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Type::getPrimitiveSizeInBits(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedExpandLoad()
Definition at line 696 of file ScalarizeMaskedMemIntrin.cpp.
References llvm::PHINode::addIncoming(), adjustForEndian(), llvm::BasicBlock::begin(), llvm::cast(), llvm::commonAlignment(), DL, llvm::Instruction::eraseFromParent(), llvm::PoisonValue::get(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Type::getPrimitiveSizeInBits(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::PoisonMaskElem, llvm::Value::replaceAllUsesWith(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedGather()
Definition at line 469 of file ScalarizeMaskedMemIntrin.cpp.
References adjustForEndian(), llvm::BasicBlock::begin(), llvm::cast(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::Value::replaceAllUsesWith(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedLoad()
Definition at line 145 of file ScalarizeMaskedMemIntrin.cpp.
References adjustForEndian(), llvm::BasicBlock::begin(), llvm::cast(), llvm::commonAlignment(), llvm::Instruction::copyMetadata(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::Value::getName(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Type::getPrimitiveSizeInBits(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::isa(), isConstantIntVector(), llvm::isSplatValue(), llvm::Value::replaceAllUsesWith(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), llvm::Value::takeName(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedScatter()
Definition at line 603 of file ScalarizeMaskedMemIntrin.cpp.
References adjustForEndian(), assert(), llvm::BasicBlock::begin(), llvm::cast(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::isa(), isConstantIntVector(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedStore()
Definition at line 317 of file ScalarizeMaskedMemIntrin.cpp.
References adjustForEndian(), llvm::BasicBlock::begin(), llvm::cast(), llvm::commonAlignment(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Type::getIntNTy(), llvm::APInt::getOneBitSet(), llvm::CallBase::getParamAlign(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Type::getPrimitiveSizeInBits(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::isa(), isConstantIntVector(), llvm::isSplatValue(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThen(), and llvm::MaybeAlign::valueOrOne().
Referenced by optimizeCallInst().
◆ scalarizeMaskedVectorHistogram()
Definition at line 946 of file ScalarizeMaskedMemIntrin.cpp.
References assert(), llvm::BasicBlock::begin(), llvm::cast(), DL, llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::CallBase::getIntrinsicID(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isConstantIntVector(), llvm::Type::isVoidTy(), llvm_unreachable, llvm::Value::setName(), and llvm::SplitBlockAndInsertIfThen().
Referenced by optimizeCallInst().