LLVM 20.0.0git
|
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include <optional>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "lower-mem-intrinsics" |
#define DEBUG_TYPE "lower-mem-intrinsics" |
Definition at line 20 of file LowerMemIntrinsics.cpp.
|
static |
Definition at line 866 of file LowerMemIntrinsics.cpp.
References llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::ScalarEvolution::getSCEV(), llvm::CmpInst::ICMP_NE, and llvm::ScalarEvolution::isKnownPredicateAt().
Referenced by llvm::expandMemCpyAsLoop().
|
static |
Definition at line 651 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::commonAlignment(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateInBoundsGEP(), llvm::IRBuilderBase::CreatePHI(), llvm::IRBuilderBase::CreateSub(), DL, llvm::Instruction::eraseFromParent(), F, llvm::BasicBlock::getContext(), llvm::BasicBlock::getFirstNonPHI(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::TargetTransformInfo::getMemcpyLoopLoweringType(), llvm::TargetTransformInfo::getMemcpyLoopResidualLoweringType(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), llvm::ConstantInt::isZero(), llvm::IRBuilderBase::SetInsertPoint(), llvm::Value::setName(), llvm::BasicBlock::splitBasicBlock(), llvm::SplitBlockAndInsertIfThenElse(), and tryInsertCastToCommonAddrSpace().
Referenced by llvm::expandMemMoveAsLoop().
|
static |
Definition at line 398 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), llvm::commonAlignment(), llvm::BranchInst::Create(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateInBoundsGEP(), llvm::IRBuilderBase::CreatePHI(), llvm::IRBuilderBase::CreateSub(), llvm::IRBuilderBase::CreateUnreachable(), DL, llvm::Instruction::eraseFromParent(), F, llvm::BasicBlock::getContext(), llvm::Type::getInt8Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::TargetTransformInfo::getMemcpyLoopLoweringType(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), getRuntimeLoopCount(), getRuntimeLoopRemainder(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::Value::setName(), llvm::SplitBlockAndInsertIfThenElse(), and tryInsertCastToCommonAddrSpace().
Referenced by llvm::expandMemMoveAsLoop().
|
static |
Definition at line 826 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), llvm::commonAlignment(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateInBoundsGEP(), llvm::IRBuilderBase::CreatePHI(), DL, llvm::Instruction::eraseFromParent(), F, llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), SetValue(), and llvm::BasicBlock::splitBasicBlock().
Referenced by llvm::expandMemSetAsLoop().
|
static |
Definition at line 159 of file LowerMemIntrinsics.cpp.
References B, llvm::isPowerOf2_32(), and llvm::Log2_32().
Referenced by createMemMoveLoopUnknownSize().
|
static |
Definition at line 169 of file LowerMemIntrinsics.cpp.
References B, and llvm::isPowerOf2_32().
Referenced by createMemMoveLoopUnknownSize().
|
static |
Definition at line 353 of file LowerMemIntrinsics.cpp.
References B, llvm::Value::getType(), llvm::TargetTransformInfo::isValidAddrSpaceCast(), and llvm_unreachable.
Referenced by createMemMoveLoopKnownSize(), and createMemMoveLoopUnknownSize().