LLVM
8.0.1
|
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca. More...
Friends | |
class | InstVisitor< AllocaSliceRewriter, bool > |
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca.
Also implements the rewriting to vector-based accesses when the partition passes the isVectorPromotionViable predicate. Most of the rewriting logic lives here.
|
inline |
Definition at line 2277 of file SROA.cpp.
References assert(), and llvm::DataLayout::getTypeSizeInBits().
|
inline |
Definition at line 2306 of file SROA.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), canConvertValue(), convertValue(), llvm::Instruction::copyMetadata(), llvm::copyNonnullMetadata(), llvm::dbgs(), llvm::Value::deleteValue(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), extractInteger(), extractVector(), llvm::StringRef::find(), llvm::StringRef::find_first_not_of(), GEP, llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::UndefValue::get(), llvm::Instruction::getAAMetadata(), llvm::DataLayout::getABITypeAlignment(), getAdjustedAlignment(), getAdjustedPtr(), llvm::AllocaInst::getAlignment(), llvm::LoadInst::getAlignment(), llvm::StoreInst::getAlignment(), llvm::AllocaInst::getAllocatedType(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::IntegerType::getBitWidth(), getBitWidth(), llvm::Type::getContext(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::MemIntrinsicBase< Derived >::getDestAlignment(), llvm::SequentialType::getElementType(), llvm::SelectInst::getFalseValue(), llvm::BasicBlock::getFirstInsertionPt(), llvm::DataLayout::getIndexedOffsetInType(), llvm::DataLayout::getIndexSizeInBits(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::Type::getInt8PtrTy(), llvm::Type::getIntegerBitWidth(), llvm::Type::getIntNTy(), llvm::IntrinsicInst::getIntrinsicID(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::Instruction::getMetadata(), llvm::Value::getName(), llvm::User::getOperand(), llvm::LoadInst::getOrdering(), llvm::StoreInst::getOrdering(), llvm::Instruction::getParent(), llvm::LoadInst::getPointerAddressSpace(), llvm::Type::getPointerAddressSpace(), llvm::StoreInst::getPointerAddressSpace(), llvm::LoadInst::getPointerOperand(), llvm::StoreInst::getPointerOperand(), llvm::Type::getPointerTo(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemIntrinsicBase< Derived >::getRawDestUse(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::Type::getScalarType(), llvm::MemTransferBase< BaseCL >::getSourceAlignment(), llvm::LoadInst::getSyncScopeID(), llvm::StoreInst::getSyncScopeID(), llvm::SelectInst::getTrueValue(), llvm::Value::getType(), llvm::DataLayout::getTypeSizeInBits(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getTypeStoreSizeInBits(), llvm::ConstantExpr::getUDiv(), llvm::Use::getUser(), llvm::MemSetBase< BaseCL >::getValue(), llvm::StoreInst::getValueOperand(), llvm::ConstantExpr::getZExt(), llvm::APInt::getZExtValue(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), insertInteger(), insertVector(), llvm::DataLayout::isBigEndian(), llvm::isInstructionTriviallyDead(), llvm::Type::isIntegerTy(), llvm::DataLayout::isLegalInteger(), llvm::Instruction::isLifetimeStartOrEnd(), llvm::Type::isPointerTy(), llvm::LoadInst::isSimple(), llvm::StoreInst::isSimple(), llvm::Type::isSingleValueType(), llvm::LoadInst::isVolatile(), llvm::StoreInst::isVolatile(), llvm::MemIntrinsic::isVolatile(), llvm::Intrinsic::lifetime_start, LLVM_DEBUG, llvm_unreachable, llvm::SPII::Load, llvm::max(), llvm::LLVMContext::MD_access_group, llvm::LLVMContext::MD_mem_parallel_loop_access, llvm::LLVMContext::MD_nonnull, llvm::MinAlign(), N, Name, NDEBUG, llvm::StringRef::npos, llvm::User::op_begin(), llvm::User::op_end(), llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::sroa::AllocaSlices::printSlice(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), replace(), llvm::Value::replaceAllUsesWith(), llvm::StringRef::rfind(), second, llvm::Instruction::setAAMetadata(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::LoadInst::setAtomic(), llvm::StoreInst::setAtomic(), llvm::MemIntrinsicBase< Derived >::setDest(), llvm::MemIntrinsicBase< Derived >::setDestAlignment(), llvm::MemIntrinsicBase< Derived >::setLength(), llvm::User::setOperand(), llvm::MemTransferBase< BaseCL >::setSource(), llvm::MemTransferBase< BaseCL >::setSourceAlignment(), Size, llvm::SmallVectorBase::size(), llvm::SPII::Store, llvm::Value::stripInBoundsOffsets(), llvm::StringRef::substr(), std::swap(), llvm::Value::users(), llvm::Value::uses(), and llvm::APInt::zextOrTrunc().
|
friend |