mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-15 09:51:00 +00:00
[Alignment][NFC] DataLayout migration to llvm::Align
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: jholewinski, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67914 llvm-svn: 372596
This commit is contained in:
parent
e26d97bf6b
commit
f9b4fac2b1
@ -349,12 +349,12 @@ public:
|
||||
}
|
||||
|
||||
/// Layout pointer alignment
|
||||
unsigned getPointerABIAlignment(unsigned AS) const;
|
||||
llvm::Align getPointerABIAlignment(unsigned AS) 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;
|
||||
llvm::Align getPointerPrefAlignment(unsigned AS = 0) const;
|
||||
|
||||
/// Layout pointer size
|
||||
/// FIXME: The defaults need to be removed once all of
|
||||
@ -490,7 +490,7 @@ public:
|
||||
|
||||
/// Returns the minimum ABI-required alignment for an integer type of
|
||||
/// the specified bitwidth.
|
||||
unsigned getABIIntegerTypeAlignment(unsigned BitWidth) const;
|
||||
llvm::Align getABIIntegerTypeAlignment(unsigned BitWidth) const;
|
||||
|
||||
/// Returns the preferred stack/global alignment for the specified
|
||||
/// type.
|
||||
|
@ -1990,10 +1990,10 @@ void AsmPrinter::EmitXXStructorList(const DataLayout &DL, const Constant *List,
|
||||
}
|
||||
|
||||
// Emit the function pointers in the target-specific order
|
||||
const llvm::Align Align = llvm::Align(DL.getPointerPrefAlignment());
|
||||
llvm::stable_sort(Structors, [](const Structor &L, const Structor &R) {
|
||||
return L.Priority < R.Priority;
|
||||
});
|
||||
const llvm::Align Align = DL.getPointerPrefAlignment();
|
||||
for (Structor &S : Structors) {
|
||||
const TargetLoweringObjectFile &Obj = getObjFileLowering();
|
||||
const MCSymbol *KeySym = nullptr;
|
||||
|
@ -1173,7 +1173,7 @@ void IRTranslator::getStackGuard(Register DstReg,
|
||||
MachineMemOperand::MODereferenceable;
|
||||
MachineMemOperand *MemRef =
|
||||
MF->getMachineMemOperand(MPInfo, Flags, DL->getPointerSizeInBits() / 8,
|
||||
DL->getPointerABIAlignment(0));
|
||||
DL->getPointerABIAlignment(0).value());
|
||||
MIB.setMemRefs({MemRef});
|
||||
}
|
||||
|
||||
|
@ -883,13 +883,13 @@ unsigned MachineJumpTableInfo::getEntryAlignment(const DataLayout &TD) const {
|
||||
// alignment.
|
||||
switch (getEntryKind()) {
|
||||
case MachineJumpTableInfo::EK_BlockAddress:
|
||||
return TD.getPointerABIAlignment(0);
|
||||
return TD.getPointerABIAlignment(0).value();
|
||||
case MachineJumpTableInfo::EK_GPRel64BlockAddress:
|
||||
return TD.getABIIntegerTypeAlignment(64);
|
||||
return TD.getABIIntegerTypeAlignment(64).value();
|
||||
case MachineJumpTableInfo::EK_GPRel32BlockAddress:
|
||||
case MachineJumpTableInfo::EK_LabelDifference32:
|
||||
case MachineJumpTableInfo::EK_Custom32:
|
||||
return TD.getABIIntegerTypeAlignment(32);
|
||||
return TD.getABIIntegerTypeAlignment(32).value();
|
||||
case MachineJumpTableInfo::EK_Inline:
|
||||
return 1;
|
||||
}
|
||||
|
@ -377,7 +377,7 @@ void TargetLoweringObjectFileELF::emitPersonalityValue(
|
||||
ELF::SHT_PROGBITS, Flags, 0);
|
||||
unsigned Size = DL.getPointerSize();
|
||||
Streamer.SwitchSection(Sec);
|
||||
Streamer.EmitValueToAlignment(DL.getPointerABIAlignment(0));
|
||||
Streamer.EmitValueToAlignment(DL.getPointerABIAlignment(0).value());
|
||||
Streamer.EmitSymbolAttribute(Label, MCSA_ELF_TypeObject);
|
||||
const MCExpr *E = MCConstantExpr::create(Size, getContext());
|
||||
Streamer.emitELFSize(Label, E);
|
||||
|
@ -638,22 +638,22 @@ const StructLayout *DataLayout::getStructLayout(StructType *Ty) const {
|
||||
return L;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerABIAlignment(unsigned AS) const {
|
||||
llvm::Align DataLayout::getPointerABIAlignment(unsigned AS) const {
|
||||
PointersTy::const_iterator I = findPointerLowerBound(AS);
|
||||
if (I == Pointers.end() || I->AddressSpace != AS) {
|
||||
I = findPointerLowerBound(0);
|
||||
assert(I->AddressSpace == 0);
|
||||
}
|
||||
return I->ABIAlign.value();
|
||||
return I->ABIAlign;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerPrefAlignment(unsigned AS) const {
|
||||
llvm::Align DataLayout::getPointerPrefAlignment(unsigned AS) const {
|
||||
PointersTy::const_iterator I = findPointerLowerBound(AS);
|
||||
if (I == Pointers.end() || I->AddressSpace != AS) {
|
||||
I = findPointerLowerBound(0);
|
||||
assert(I->AddressSpace == 0);
|
||||
}
|
||||
return I->PrefAlign.value();
|
||||
return I->PrefAlign;
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPointerSize(unsigned AS) const {
|
||||
@ -711,12 +711,11 @@ llvm::Align DataLayout::getAlignment(Type *Ty, bool abi_or_pref) const {
|
||||
switch (Ty->getTypeID()) {
|
||||
// Early escape for the non-numeric types.
|
||||
case Type::LabelTyID:
|
||||
return llvm::Align(abi_or_pref ? getPointerABIAlignment(0)
|
||||
: getPointerPrefAlignment(0));
|
||||
return abi_or_pref ? getPointerABIAlignment(0) : getPointerPrefAlignment(0);
|
||||
case Type::PointerTyID: {
|
||||
unsigned AS = cast<PointerType>(Ty)->getAddressSpace();
|
||||
return llvm::Align(abi_or_pref ? getPointerABIAlignment(AS)
|
||||
: getPointerPrefAlignment(AS));
|
||||
return abi_or_pref ? getPointerABIAlignment(AS)
|
||||
: getPointerPrefAlignment(AS);
|
||||
}
|
||||
case Type::ArrayTyID:
|
||||
return getAlignment(cast<ArrayType>(Ty)->getElementType(), abi_or_pref);
|
||||
@ -762,8 +761,8 @@ unsigned DataLayout::getABITypeAlignment(Type *Ty) const {
|
||||
|
||||
/// getABIIntegerTypeAlignment - Return the minimum ABI-required alignment for
|
||||
/// an integer type of the specified bitwidth.
|
||||
unsigned DataLayout::getABIIntegerTypeAlignment(unsigned BitWidth) const {
|
||||
return getAlignmentInfo(INTEGER_ALIGN, BitWidth, true, nullptr).value();
|
||||
llvm::Align DataLayout::getABIIntegerTypeAlignment(unsigned BitWidth) const {
|
||||
return getAlignmentInfo(INTEGER_ALIGN, BitWidth, true, nullptr);
|
||||
}
|
||||
|
||||
unsigned DataLayout::getPrefTypeAlignment(Type *Ty) const {
|
||||
|
@ -1397,7 +1397,7 @@ static unsigned int getOpenCLAlignment(const DataLayout &DL, Type *Ty) {
|
||||
|
||||
auto *FTy = dyn_cast<FunctionType>(Ty);
|
||||
if (FTy)
|
||||
return DL.getPointerPrefAlignment();
|
||||
return DL.getPointerPrefAlignment().value();
|
||||
return DL.getPrefTypeAlignment(Ty);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user