Skip to content

Commit f3f15ca

Browse files
committed
[Alignment][NFC] Remove deprecated GlobalObject::getAlignment
Differential Revision: https://reviews.llvm.org/D139836
1 parent dabda23 commit f3f15ca

File tree

8 files changed

+27
-20
lines changed

8 files changed

+27
-20
lines changed

llvm/include/llvm/IR/GlobalObject.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,6 @@ class GlobalObject : public GlobalValue {
6666
public:
6767
GlobalObject(const GlobalObject &) = delete;
6868

69-
/// FIXME: Remove this function once transition to Align is over.
70-
uint64_t getAlignment() const {
71-
MaybeAlign Align = getAlign();
72-
return Align ? Align->value() : 0;
73-
}
74-
7569
/// Returns the alignment of the given variable or function.
7670
///
7771
/// Note that for functions this is the alignment of the code, not the

llvm/lib/IR/Globals.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,7 @@ void GlobalObject::setAlignment(MaybeAlign Align) {
124124
unsigned AlignmentData = encode(Align);
125125
unsigned OldData = getGlobalValueSubClassData();
126126
setGlobalValueSubClassData((OldData & ~AlignmentMask) | AlignmentData);
127-
assert(MaybeAlign(getAlignment()) == Align &&
128-
"Alignment representation error!");
127+
assert(getAlign() == Align && "Alignment representation error!");
129128
}
130129

131130
void GlobalObject::copyAttributesFrom(const GlobalObject *Src) {

llvm/lib/Linker/LinkModules.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,12 @@ bool ModuleLinker::linkIfNeeded(GlobalValue &GV,
352352
SGVar->setConstant(false);
353353
}
354354
if (DGVar->hasCommonLinkage() && SGVar->hasCommonLinkage()) {
355-
MaybeAlign Align(
356-
std::max(DGVar->getAlignment(), SGVar->getAlignment()));
355+
MaybeAlign DAlign = DGVar->getAlign();
356+
MaybeAlign SAlign = SGVar->getAlign();
357+
MaybeAlign Align = std::nullopt;
358+
if (DAlign || SAlign)
359+
Align = std::max(DAlign.valueOrOne(), SAlign.valueOrOne());
360+
357361
SGVar->setAlignment(Align);
358362
DGVar->setAlignment(Align);
359363
}

llvm/lib/Object/IRSymtab.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ Error Builder::addSymbol(const ModuleSymbolTable &Msymtab,
289289
inconvertibleErrorCode());
290290
Uncommon().CommonSize =
291291
GV->getParent()->getDataLayout().getTypeAllocSize(GV->getValueType());
292-
Uncommon().CommonAlign = GVar->getAlignment();
292+
Uncommon().CommonAlign = GVar->getAlign() ? GVar->getAlign()->value() : 0;
293293
}
294294

295295
const GlobalObject *GO = GV->getAliaseeObject();

llvm/lib/Target/PowerPC/PPCMIPeephole.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ bool PPCMIPeephole::simplifyCode() {
843843
if (SrcMI->getOperand(1).isGlobal()) {
844844
const GlobalObject *GO =
845845
dyn_cast<GlobalObject>(SrcMI->getOperand(1).getGlobal());
846-
if (GO && GO->getAlignment() >= 4)
846+
if (GO && GO->getAlign() && *GO->getAlign() >= 4)
847847
IsWordAligned = true;
848848
} else if (SrcMI->getOperand(1).isImm()) {
849849
int64_t Value = SrcMI->getOperand(1).getImm();

llvm/lib/Transforms/IPO/MergeFunctions.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,12 @@ void MergeFunctions::writeAlias(Function *F, Function *G) {
775775
auto *GA = GlobalAlias::create(G->getValueType(), PtrType->getAddressSpace(),
776776
G->getLinkage(), "", BitcastF, G->getParent());
777777

778-
F->setAlignment(MaybeAlign(std::max(F->getAlignment(), G->getAlignment())));
778+
const MaybeAlign FAlign = F->getAlign();
779+
const MaybeAlign GAlign = G->getAlign();
780+
if (FAlign || GAlign)
781+
F->setAlignment(std::max(FAlign.valueOrOne(), GAlign.valueOrOne()));
782+
else
783+
F->setAlignment(std::nullopt);
779784
GA->takeName(G);
780785
GA->setVisibility(G->getVisibility());
781786
GA->setUnnamedAddr(GlobalValue::UnnamedAddr::Global);
@@ -822,12 +827,15 @@ void MergeFunctions::mergeTwoFunctions(Function *F, Function *G) {
822827
removeUsers(F);
823828
F->replaceAllUsesWith(NewF);
824829

825-
MaybeAlign MaxAlignment(std::max(G->getAlignment(), NewF->getAlignment()));
826-
827830
writeThunkOrAlias(F, G);
828831
writeThunkOrAlias(F, NewF);
829832

830-
F->setAlignment(MaxAlignment);
833+
const MaybeAlign NewFAlign = NewF->getAlign();
834+
const MaybeAlign GAlign = G->getAlign();
835+
if (NewFAlign || GAlign)
836+
F->setAlignment(std::max(NewFAlign.valueOrOne(), GAlign.valueOrOne()));
837+
else
838+
F->setAlignment(std::nullopt);
831839
F->setLinkage(GlobalValue::PrivateLinkage);
832840
++NumDoubleWeak;
833841
++NumFunctionsMerged;

llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1759,7 +1759,7 @@ bool ModuleAddressSanitizer::shouldInstrumentGlobal(GlobalVariable *G) const {
17591759
// - Need to poison all copies, not just the main thread's one.
17601760
if (G->isThreadLocal()) return false;
17611761
// For now, just ignore this Global if the alignment is large.
1762-
if (G->getAlignment() > getMinRedzoneSizeForGlobal()) return false;
1762+
if (G->getAlign() && *G->getAlign() > getMinRedzoneSizeForGlobal()) return false;
17631763

17641764
// For non-COFF targets, only instrument globals known to be defined by this
17651765
// TU.

llvm/unittests/IR/ValueTest.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ TEST(GlobalTest, CreateAddressSpace) {
6161
GlobalVariable::NotThreadLocal,
6262
1);
6363

64-
EXPECT_TRUE(Value::MaximumAlignment == 4294967296ULL);
65-
Dummy0->setAlignment(Align(4294967296ULL));
66-
EXPECT_EQ(Dummy0->getAlignment(), 4294967296ULL);
64+
const Align kMaxAlignment(Value::MaximumAlignment);
65+
EXPECT_TRUE(kMaxAlignment.value() == 4294967296ULL);
66+
Dummy0->setAlignment(kMaxAlignment);
67+
EXPECT_TRUE(Dummy0->getAlign());
68+
EXPECT_EQ(*Dummy0->getAlign(), kMaxAlignment);
6769

6870
// Make sure the address space isn't dropped when returning this.
6971
Constant *Dummy1 = M->getOrInsertGlobal("dummy", Int32Ty);

0 commit comments

Comments
 (0)