LLVM: lib/IR/DataLayout.cpp File Reference (original) (raw)
Go to the source code of this file.
| Functions | |
|---|---|
| static Error | createSpecFormatError (Twine Format) |
| static Error | parseAddrSpace (StringRef Str, unsigned &AddrSpace) |
| Attempts to parse an address space component of a specification. | |
| static Error | parseSize (StringRef Str, unsigned &BitWidth, StringRef Name="size") |
| Attempts to parse a size component of a specification. | |
| static Error | parseAlignment (StringRef Str, Align &Alignment, StringRef Name, bool AllowZero=false) |
| Attempts to parse an alignment component of a specification. | |
| static APInt | getElementIndex (TypeSize ElemSize, APInt &Offset) |
◆ createSpecFormatError()
| Error createSpecFormatError ( Twine Format) | static |
|---|
◆ getElementIndex()
Definition at line 973 of file DataLayout.cpp.
References assert(), llvm::BitWidth, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::APInt::getZero(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::isUIntN(), and llvm::Offset.
Referenced by findBuildAggregateRec(), llvm::DataLayout::getGEPIndexForOffset(), llvm::DataLayout::getGEPIndicesForOffset(), slpvectorizer::BoUpSLP::getTreeCost(), isFirstInsertElement(), and slpvectorizer::BoUpSLP::vectorizeTree().
◆ parseAddrSpace()
◆ parseAlignment()
Attempts to parse an alignment component of a specification.
On success, returns the value converted to byte amount in Alignment. If the value is zero and AllowZero is true, Alignment is set to one.
Return an error in a number of cases:
Stris empty or contains characters other than decimal digits;- the value is zero and
AllowZerois false; - the value is too large;
- the value is not a multiple of the byte width;
- the value converted to byte amount is not not a power of two.
Definition at line 297 of file DataLayout.cpp.
References llvm::createStringError(), llvm::isPowerOf2_32(), llvm::isUInt(), llvm::Error::success(), and llvm::to_integer().