|
LLVM 24.0.0git
|
This is a helper class that's used by presplitLoadsAndStores to split a slice into smaller slices, including splitting the corresponding load/store instruction. More...
Classes | |
| struct | Iterator |
| An iterator which iterates over the sub-slices that we want to split the slice into. More... | |
Public Member Functions | |
| SliceSplitter (IRBuilderTy &IRB, const DataLayout &DL, std::vector< uint64_t > &Splits, unsigned SliceSize) | |
| Iterator | begin () |
| Iterator | end () |
| LoadInst * | createLoad (Value *BasePtr, Iterator &It, Instruction *SplitI) |
| StoreInst * | createStore (Value *StoreVal, Value *BasePtr, Iterator &It, Instruction *SplitI) |
| Slice | createSlice (Instruction *I, uint64_t BaseOffset, Iterator &It) |
This is a helper class that's used by presplitLoadsAndStores to split a slice into smaller slices, including splitting the corresponding load/store instruction.
|
inline |
Definition at line 5001 of file SROA.cpp.
Referenced by SliceSplitter::Iterator::Iterator().
|
inline |
Definition at line 5033 of file SROA.cpp.
References llvm::Instruction::copyMetadata(), getAdjustedAlignment(), getAdjustedPtr(), llvm::Value::getContext(), llvm::Type::getIntNTy(), llvm::getLoadStoreAddressSpace(), llvm::Value::getName(), SliceSplitter::Iterator::getOffset(), and SliceSplitter::Iterator::getSize().
|
inline |
Definition at line 5071 of file SROA.cpp.
References llvm::dbgs(), llvm::dyn_cast(), SliceSplitter::Iterator::getOffset(), llvm::LoadInst::getPointerOperandIndex(), SliceSplitter::Iterator::getSize(), I, LLVM_DEBUG, and llvm_unreachable.
|
inline |
Definition at line 5049 of file SROA.cpp.
References llvm::AAMDNodes::adjustForAccess(), llvm::Instruction::copyMetadata(), llvm::Instruction::getAAMetadata(), getAdjustedAlignment(), getAdjustedPtr(), llvm::getLoadStoreAddressSpace(), SliceSplitter::Iterator::getOffset(), llvm::Value::getType(), and llvm::Instruction::setAAMetadata().