[clang] [llvm] [llvm] Remove GlobalVariable::getAlignment (NFC) (PR #213300)
Alex MacLean via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 31 08:53:44 PDT 2026
https://github.com/AlexMaclean created https://github.com/llvm/llvm-project/pull/213300
None
>From 1be081cdb9059c321afabc1379c5901959f18f96 Mon Sep 17 00:00:00 2001
From: Alex Maclean <amaclean at nvidia.com>
Date: Fri, 31 Jul 2026 08:52:49 -0700
Subject: [PATCH] [llvm] Remove GlobalVariable::getAlignment (NFC)
---
clang/lib/CodeGen/CGCUDANV.cpp | 15 ++++++++-------
clang/lib/CodeGen/CGDecl.cpp | 2 +-
clang/lib/CodeGen/CGObjCMac.cpp | 2 +-
clang/lib/CodeGen/CodeGenModule.cpp | 8 ++++----
llvm/include/llvm/IR/GlobalVariable.h | 6 ------
llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp | 2 +-
llvm/lib/Target/DirectX/DXILDataScalarization.cpp | 2 +-
llvm/lib/Target/DirectX/DXILFlattenArrays.cpp | 2 +-
llvm/lib/Transforms/IPO/Instrumentor.cpp | 5 +++--
9 files changed, 20 insertions(+), 24 deletions(-)
diff --git a/clang/lib/CodeGen/CGCUDANV.cpp b/clang/lib/CodeGen/CGCUDANV.cpp
index 416ed935c1b30..5487c144bbade 100644
--- a/clang/lib/CodeGen/CGCUDANV.cpp
+++ b/clang/lib/CodeGen/CGCUDANV.cpp
@@ -587,9 +587,9 @@ static void replaceManagedVar(llvm::GlobalVariable *Var,
}
if (auto *I = dyn_cast<llvm::Instruction>(U)) {
llvm::Value *OldV = Var;
- llvm::Instruction *NewV = new llvm::LoadInst(
- Var->getType(), ManagedVar, "ld.managed", false,
- llvm::Align(Var->getAlignment()), I->getIterator());
+ llvm::Instruction *NewV =
+ new llvm::LoadInst(Var->getType(), ManagedVar, "ld.managed", false,
+ Var->getAlign().valueOrOne(), I->getIterator());
WorkItem.pop_back();
// Replace constant expressions directly or indirectly using the managed
// variable with instructions.
@@ -719,7 +719,8 @@ llvm::Function *CGNVCUDARuntime::makeRegisterGlobalsFn() {
Var,
VarName,
llvm::ConstantInt::get(VarSizeTy, VarSize),
- llvm::ConstantInt::get(IntTy, Var->getAlignment())};
+ llvm::ConstantInt::get(IntTy,
+ Var->getAlign().valueOrOne().value())};
if (!Var->isDeclaration())
Builder.CreateCall(RegisterManagedVar, Args);
} else {
@@ -990,7 +991,7 @@ llvm::Function *CGNVCUDARuntime::makeModuleCtorFunction() {
GpuBinaryHandle->setVisibility(llvm::GlobalValue::HiddenVisibility);
Address GpuBinaryAddr(
GpuBinaryHandle, PtrTy,
- CharUnits::fromQuantity(GpuBinaryHandle->getAlignment()));
+ CharUnits::fromQuantity(GpuBinaryHandle->getAlign().valueOrOne()));
{
auto *HandleValue = CtorBuilder.CreateLoad(GpuBinaryAddr);
llvm::Constant *Zero =
@@ -1133,7 +1134,7 @@ llvm::Function *CGNVCUDARuntime::makeModuleDtorFunction() {
Address GpuBinaryAddr(
GpuBinaryHandle, GpuBinaryHandle->getValueType(),
- CharUnits::fromQuantity(GpuBinaryHandle->getAlignment()));
+ CharUnits::fromQuantity(GpuBinaryHandle->getAlign().valueOrOne()));
auto *HandleValue = DtorBuilder.CreateLoad(GpuBinaryAddr);
// There is only one HIP fat binary per linked module, however there are
// multiple destructor functions. Make sure the fat binary is unregistered
@@ -1316,7 +1317,7 @@ void CGNVCUDARuntime::createOffloadingEntries() {
llvm::offloading::emitOffloadingEntry(
M, Kind, I.Var, getDeviceSideName(I.D), VarSize,
llvm::offloading::OffloadGlobalManagedEntry | Flags,
- /*Data=*/I.Var->getAlignment(), ManagedVar);
+ /*Data=*/I.Var->getAlign().valueOrOne().value(), ManagedVar);
} else {
llvm::offloading::emitOffloadingEntry(
M, Kind, I.Var, getDeviceSideName(I.D), VarSize,
diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp
index 29bc47130c4cd..b8fae352d41d7 100644
--- a/clang/lib/CodeGen/CGDecl.cpp
+++ b/clang/lib/CodeGen/CGDecl.cpp
@@ -1179,7 +1179,7 @@ Address CodeGenModule::createUnnamedGlobalFrom(const VarDecl &D,
GV->setAlignment(Align.getAsAlign());
GV->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global);
CacheEntry = GV;
- } else if (CacheEntry->getAlignment() < uint64_t(Align.getQuantity())) {
+ } else if (CacheEntry->getAlign().valueOrOne() < Align.getAsAlign()) {
CacheEntry->setAlignment(Align.getAsAlign());
}
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index e518b875f44bb..8838597344ccf 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -2244,7 +2244,7 @@ CGObjCCommonMac::GenerateConstantNSString(const StringLiteral *Literal) {
if (auto *C = Entry.second)
return ConstantAddress(C, C->getValueType(),
- CharUnits::fromQuantity(C->getAlignment()));
+ CharUnits::fromQuantity(C->getAlign().valueOrOne()));
// If we don't already have it, get _NSConstantStringClassReference.
llvm::Constant *Class = getNSConstantStringClassRef();
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index e7c1d182fd20d..4bc925dc87be9 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -7255,8 +7255,8 @@ CodeGenModule::GetAddrOfConstantCFString(const StringLiteral *Literal) {
StringLength);
if (auto *C = Entry.second)
- return ConstantAddress(
- C, C->getValueType(), CharUnits::fromQuantity(C->getAlignment()));
+ return ConstantAddress(C, C->getValueType(),
+ CharUnits::fromQuantity(C->getAlign().valueOrOne()));
const ASTContext &Context = getContext();
const llvm::Triple &Triple = getTriple();
@@ -7545,7 +7545,7 @@ CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,
if (!LangOpts.WritableStrings) {
Entry = &ConstantStringMap[C];
if (auto GV = *Entry) {
- if (uint64_t(Alignment.getQuantity()) > GV->getAlignment())
+ if (Alignment.getAsAlign() > GV->getAlign().valueOrOne())
GV->setAlignment(Alignment.getAsAlign());
return ConstantAddress(castStringLiteralToDefaultAddressSpace(*this, GV),
GV->getValueType(), Alignment);
@@ -7612,7 +7612,7 @@ ConstantAddress CodeGenModule::GetAddrOfConstantCString(const std::string &Str,
if (!LangOpts.WritableStrings) {
Entry = &ConstantStringMap[C];
if (auto GV = *Entry) {
- if (uint64_t(Alignment.getQuantity()) > GV->getAlignment())
+ if (Alignment.getAsAlign() > GV->getAlign().valueOrOne())
GV->setAlignment(Alignment.getAsAlign());
return ConstantAddress(castStringLiteralToDefaultAddressSpace(*this, GV),
GV->getValueType(), Alignment);
diff --git a/llvm/include/llvm/IR/GlobalVariable.h b/llvm/include/llvm/IR/GlobalVariable.h
index 2488173ee0565..abec37de39671 100644
--- a/llvm/include/llvm/IR/GlobalVariable.h
+++ b/llvm/include/llvm/IR/GlobalVariable.h
@@ -311,12 +311,6 @@ class GlobalVariable : public GlobalObject, public ilist_node<GlobalVariable> {
///
LLVM_ABI void clearCodeModel();
- /// FIXME: Remove this function once transition to Align is over.
- uint64_t getAlignment() const {
- MaybeAlign Align = getAlign();
- return Align ? Align->value() : 0;
- }
-
/// Returns the alignment of the given variable.
MaybeAlign getAlign() const { return GlobalObject::getAlign(); }
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
index 2b78094837c68..4f273a0e2909d 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
@@ -587,7 +587,7 @@ void AMDGPUSwLowerLDS::updateMallocSizeForDynamicLDS(
assert(SwLDS && SwLDSMetadata);
StructType *MetadataStructType =
cast<StructType>(SwLDSMetadata->getValueType());
- unsigned MaxAlignment = SwLDS->getAlignment();
+ unsigned MaxAlignment = SwLDS->getAlign().valueOrOne().value();
Value *MaxAlignValue = IRB.getInt32(MaxAlignment);
Value *MaxAlignValueMinusOne = IRB.getInt32(MaxAlignment - 1);
diff --git a/llvm/lib/Target/DirectX/DXILDataScalarization.cpp b/llvm/lib/Target/DirectX/DXILDataScalarization.cpp
index 9a2cf663901a0..c6506a9e0b059 100644
--- a/llvm/lib/Target/DirectX/DXILDataScalarization.cpp
+++ b/llvm/lib/Target/DirectX/DXILDataScalarization.cpp
@@ -451,7 +451,7 @@ static bool findAndReplaceVectors(Module &M) {
// Copy relevant attributes
NewGlobal->setUnnamedAddr(G.getUnnamedAddr());
- if (G.getAlignment() > 0) {
+ if (G.getAlign()) {
NewGlobal->setAlignment(G.getAlign());
}
diff --git a/llvm/lib/Target/DirectX/DXILFlattenArrays.cpp b/llvm/lib/Target/DirectX/DXILFlattenArrays.cpp
index 7e1436e05a34a..1ac1b572939be 100644
--- a/llvm/lib/Target/DirectX/DXILFlattenArrays.cpp
+++ b/llvm/lib/Target/DirectX/DXILFlattenArrays.cpp
@@ -459,7 +459,7 @@ static void flattenGlobalArrays(
// Copy relevant attributes
NewGlobal->setUnnamedAddr(G.getUnnamedAddr());
- if (G.getAlignment() > 0) {
+ if (G.getAlign()) {
NewGlobal->setAlignment(G.getAlign());
}
diff --git a/llvm/lib/Transforms/IPO/Instrumentor.cpp b/llvm/lib/Transforms/IPO/Instrumentor.cpp
index bfa22199ef9f6..865571cb563d3 100644
--- a/llvm/lib/Transforms/IPO/Instrumentor.cpp
+++ b/llvm/lib/Transforms/IPO/Instrumentor.cpp
@@ -957,7 +957,7 @@ static Value *createValuePack(const Range &R, InstrumentationConfig &IConf,
IConf.getRTName("", "value_pack"));
auto *AI = IIRB.getAlloca(Fn, STy);
- IIRB.IRB.CreateMemCpy(AI, AI->getAlign(), GV, MaybeAlign(GV->getAlignment()),
+ IIRB.IRB.CreateMemCpy(AI, AI->getAlign(), GV, GV->getAlign(),
IIRB.DL.getTypeAllocSize(STy));
for (auto [Param, Idx] : Values) {
auto *Ptr = IIRB.IRB.CreateStructGEP(STy, AI, Idx);
@@ -1721,7 +1721,8 @@ Value *GlobalVarIO::getAlignment(Value &V, Type &Ty,
InstrumentationConfig &IConf,
InstrumentorIRBuilderTy &IIRB) {
GlobalVariable &GV = cast<GlobalVariable>(V);
- return getCI(&Ty, GV.getAlignment());
+ MaybeAlign Alignment = GV.getAlign();
+ return getCI(&Ty, Alignment ? Alignment->value() : 0);
}
Value *GlobalVarIO::getDeclaredSize(Value &V, Type &Ty,
InstrumentationConfig &IConf,
More information about the cfe-commits
mailing list