forked from OSchip/llvm-project
Move these functions out of line. A DenseMap lookup is not a simple operation.
llvm-svn: 202274
This commit is contained in:
parent
429e9edd08
commit
5109fcc0ae
|
@ -281,34 +281,18 @@ public:
|
|||
/// Layout pointer alignment
|
||||
/// FIXME: The defaults need to be removed once all of
|
||||
/// the backends/clients are updated.
|
||||
unsigned getPointerABIAlignment(unsigned AS = 0) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.ABIAlign;
|
||||
}
|
||||
unsigned getPointerABIAlignment(unsigned AS = 0) const;
|
||||
|
||||
/// Return target's alignment for stack-based pointers
|
||||
/// FIXME: The defaults need to be removed once all of
|
||||
/// the backends/clients are updated.
|
||||
unsigned getPointerPrefAlignment(unsigned AS = 0) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.PrefAlign;
|
||||
}
|
||||
unsigned getPointerPrefAlignment(unsigned AS = 0) const;
|
||||
|
||||
/// Layout pointer size
|
||||
/// FIXME: The defaults need to be removed once all of
|
||||
/// the backends/clients are updated.
|
||||
unsigned getPointerSize(unsigned AS = 0) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.TypeByteWidth;
|
||||
}
|
||||
unsigned getPointerSize(unsigned AS = 0) const;
|
||||
|
||||
/// Layout pointer size, in bits
|
||||
/// FIXME: The defaults need to be removed once all of
|
||||
/// the backends/clients are updated.
|
||||
|
|
|
@ -585,6 +585,30 @@ std::string DataLayout::getStringRepresentation() const {
|
|||
return OS.str();
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerABIAlignment(unsigned AS) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.ABIAlign;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerPrefAlignment(unsigned AS) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.PrefAlign;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerSize(unsigned AS) const {
|
||||
DenseMap<unsigned, PointerAlignElem>::const_iterator val = Pointers.find(AS);
|
||||
if (val == Pointers.end()) {
|
||||
val = Pointers.find(0);
|
||||
}
|
||||
return val->second.TypeByteWidth;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerTypeSizeInBits(Type *Ty) const {
|
||||
assert(Ty->isPtrOrPtrVectorTy() &&
|
||||
"This should only be called with a pointer or pointer vector type");
|
||||
|
|
Loading…
Reference in New Issue