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 <[email protected]> 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, _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
