LLVM 22.0.0git
|
#include "llvm/IR/DataLayout.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/MemAlloc.h"
#include "llvm/Support/TypeSize.h"
#include "llvm/TargetParser/Triple.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <new>
#include <utility>
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) |
Variables | |
constexpr DataLayout::PrimitiveSpec | DefaultIntSpecs [] |
constexpr DataLayout::PrimitiveSpec | DefaultFloatSpecs [] |
constexpr DataLayout::PrimitiveSpec | DefaultVectorSpecs [] |
constexpr DataLayout::PointerSpec | DefaultPointerSpecs [] |
Definition at line 257 of file DataLayout.cpp.
References llvm::createStringError().
Definition at line 949 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 areTwoInsertFromSameBuildVector(), findBuildAggregateRec(), llvm::DataLayout::getGEPIndexForOffset(), llvm::DataLayout::getGEPIndicesForOffset(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), isFirstInsertElement(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().
Attempts to parse an address space component of a specification.
Definition at line 263 of file DataLayout.cpp.
References llvm::createStringError(), llvm::isUInt(), llvm::Error::success(), and llvm::to_integer().
|
static |
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:
Str
is empty or contains characters other than decimal digits;AllowZero
is false;Definition at line 296 of file DataLayout.cpp.
References llvm::createStringError(), llvm::isPowerOf2_32(), llvm::isUInt(), llvm::Error::success(), and llvm::to_integer().
Attempts to parse a size component of a specification.
Definition at line 274 of file DataLayout.cpp.
References llvm::BitWidth, llvm::createStringError(), llvm::isUInt(), llvm::Error::success(), and llvm::to_integer().
|
constexpr |
Definition at line 183 of file DataLayout.cpp.
Referenced by llvm::DataLayout::DataLayout().
|
constexpr |
Definition at line 177 of file DataLayout.cpp.
Referenced by llvm::DataLayout::DataLayout().
|
constexpr |
Definition at line 195 of file DataLayout.cpp.
Referenced by llvm::DataLayout::DataLayout().
|
constexpr |
Definition at line 189 of file DataLayout.cpp.
Referenced by llvm::DataLayout::DataLayout().