[Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned)

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: arsenm, mehdi_amini, jvesely, nhaehnle, hiraditya, steven_wu, dexonsmith, dang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68944

llvm-svn: 374880
This commit is contained in:
Guillaume Chatelet
2019-10-15 11:24:36 +00:00
parent 284827f32b
commit 0e62011df8
33 changed files with 96 additions and 86 deletions

View File

@@ -722,7 +722,7 @@ private:
/// Converts alignment exponent (i.e. power of two (or zero)) to the
/// corresponding alignment to use. If alignment is too large, returns
/// a corresponding error code.
Error parseAlignmentValue(uint64_t Exponent, unsigned &Alignment);
Error parseAlignmentValue(uint64_t Exponent, MaybeAlign &Alignment);
Error parseAttrKind(uint64_t Code, Attribute::AttrKind *Kind);
Error parseModule(uint64_t ResumeBit, bool ShouldLazyLoadMetadata = false);
@@ -1544,12 +1544,12 @@ static Attribute::AttrKind getAttrFromCode(uint64_t Code) {
}
Error BitcodeReader::parseAlignmentValue(uint64_t Exponent,
unsigned &Alignment) {
MaybeAlign &Alignment) {
// Note: Alignment in bitcode files is incremented by 1, so that zero
// can be used for default alignment.
if (Exponent > Value::MaxAlignmentExponent + 1)
return error("Invalid alignment value");
Alignment = (1 << static_cast<unsigned>(Exponent)) >> 1;
Alignment = decodeMaybeAlign(Exponent);
return Error::success();
}
@@ -3112,7 +3112,7 @@ Error BitcodeReader::parseGlobalVarRecord(ArrayRef<uint64_t> Record) {
uint64_t RawLinkage = Record[3];
GlobalValue::LinkageTypes Linkage = getDecodedLinkage(RawLinkage);
unsigned Alignment;
MaybeAlign Alignment;
if (Error Err = parseAlignmentValue(Record[4], Alignment))
return Err;
std::string Section;
@@ -3243,7 +3243,7 @@ Error BitcodeReader::parseFunctionRecord(ArrayRef<uint64_t> Record) {
Context, getPointerElementFlatType(PTy)));
}
unsigned Alignment;
MaybeAlign Alignment;
if (Error Err = parseAlignmentValue(Record[5], Alignment))
return Err;
Func->setAlignment(Alignment);
@@ -4750,7 +4750,7 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
}
Type *OpTy = getTypeByID(Record[1]);
Value *Size = getFnValueByID(Record[2], OpTy);
unsigned Align;
MaybeAlign Align;
if (Error Err = parseAlignmentValue(AlignRecord & ~FlagMask, Align)) {
return Err;
}
@@ -4761,7 +4761,7 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
const DataLayout &DL = TheModule->getDataLayout();
unsigned AS = DL.getAllocaAddrSpace();
AllocaInst *AI = new AllocaInst(Ty, AS, Size, Align);
AllocaInst *AI = new AllocaInst(Ty, AS, Size, Align ? Align->value() : 0);
AI->setUsedWithInAlloca(InAlloca);
AI->setSwiftError(SwiftError);
I = AI;
@@ -4789,10 +4789,11 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
if (Error Err = typeCheckLoadStoreInst(Ty, Op->getType()))
return Err;
unsigned Align;
MaybeAlign Align;
if (Error Err = parseAlignmentValue(Record[OpNum], Align))
return Err;
I = new LoadInst(Ty, Op, "", Record[OpNum + 1], Align);
I = new LoadInst(Ty, Op, "", Record[OpNum + 1],
Align ? Align->value() : 0);
InstructionList.push_back(I);
break;
}
@@ -4826,10 +4827,11 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
return error("Invalid record");
SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]);
unsigned Align;
MaybeAlign Align;
if (Error Err = parseAlignmentValue(Record[OpNum], Align))
return Err;
I = new LoadInst(Ty, Op, "", Record[OpNum + 1], Align, Ordering, SSID);
I = new LoadInst(Ty, Op, "", Record[OpNum + 1],
Align ? Align->value() : 0, Ordering, SSID);
InstructionList.push_back(I);
break;
}
@@ -4848,10 +4850,11 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
if (Error Err = typeCheckLoadStoreInst(Val->getType(), Ptr->getType()))
return Err;
unsigned Align;
MaybeAlign Align;
if (Error Err = parseAlignmentValue(Record[OpNum], Align))
return Err;
I = new StoreInst(Val, Ptr, Record[OpNum+1], Align);
I = new StoreInst(Val, Ptr, Record[OpNum + 1],
Align ? Align->value() : 0);
InstructionList.push_back(I);
break;
}
@@ -4881,10 +4884,11 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0)
return error("Invalid record");
unsigned Align;
MaybeAlign Align;
if (Error Err = parseAlignmentValue(Record[OpNum], Align))
return Err;
I = new StoreInst(Val, Ptr, Record[OpNum+1], Align, Ordering, SSID);
I = new StoreInst(Val, Ptr, Record[OpNum + 1], Align ? Align->value() : 0,
Ordering, SSID);
InstructionList.push_back(I);
break;
}