diff options
author | Nikita Popov <npopov@redhat.com> | 2024-06-28 08:36:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-28 08:36:49 +0200 |
commit | 9df71d7673b5c98e1032d01be83724a45b42fafc (patch) | |
tree | cf5f0c837110b4a753e71b0532d8e5ee6d487411 /llvm/lib/IR | |
parent | 519e0bb094bd9444b64ac62f2e8192543fdb94b9 (diff) | |
download | llvm-9df71d7673b5c98e1032d01be83724a45b42fafc.zip llvm-9df71d7673b5c98e1032d01be83724a45b42fafc.tar.gz llvm-9df71d7673b5c98e1032d01be83724a45b42fafc.tar.bz2 |
[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()->getDataLayout()` pattern.
Diffstat (limited to 'llvm/lib/IR')
-rw-r--r-- | llvm/lib/IR/DebugInfo.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/IR/Function.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/IR/Globals.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/IR/Mangler.cpp | 6 |
4 files changed, 12 insertions, 4 deletions
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp index e57c3fe..7f1489e 100644 --- a/llvm/lib/IR/DebugInfo.cpp +++ b/llvm/lib/IR/DebugInfo.cpp @@ -2271,7 +2271,7 @@ bool AssignmentTrackingPass::runOnFunction(Function &F) { return /*Changed*/ false; bool Changed = false; - auto *DL = &F.getParent()->getDataLayout(); + auto *DL = &F.getDataLayout(); // Collect a map of {backing storage : dbg.declares} (currently "backing // storage" is limited to Allocas). We'll use this to find dbg.declares to // delete after running `trackAssignments`. diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp index 1190a3f..5fb348a8 100644 --- a/llvm/lib/IR/Function.cpp +++ b/llvm/lib/IR/Function.cpp @@ -359,6 +359,10 @@ LLVMContext &Function::getContext() const { return getType()->getContext(); } +const DataLayout &Function::getDataLayout() const { + return getParent()->getDataLayout(); +} + unsigned Function::getInstructionCount() const { unsigned NumInstrs = 0; for (const BasicBlock &BB : BasicBlocks) diff --git a/llvm/lib/IR/Globals.cpp b/llvm/lib/IR/Globals.cpp index 3cc29ea..c518529 100644 --- a/llvm/lib/IR/Globals.cpp +++ b/llvm/lib/IR/Globals.cpp @@ -121,6 +121,10 @@ bool GlobalValue::canBenefitFromLocalAlias() const { !isa<GlobalIFunc>(this) && !isDeduplicateComdat(getComdat()); } +const DataLayout &GlobalValue::getDataLayout() const { + return getParent()->getDataLayout(); +} + void GlobalObject::setAlignment(MaybeAlign Align) { assert((!Align || *Align <= MaximumAlignment) && "Alignment is greater than MaximumAlignment!"); diff --git a/llvm/lib/IR/Mangler.cpp b/llvm/lib/IR/Mangler.cpp index 019fe84..e6c3ea9 100644 --- a/llvm/lib/IR/Mangler.cpp +++ b/llvm/lib/IR/Mangler.cpp @@ -128,7 +128,7 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, PrefixTy = Private; } - const DataLayout &DL = GV->getParent()->getDataLayout(); + const DataLayout &DL = GV->getDataLayout(); if (!GV->hasName()) { // Get the ID for the global, assigning a new one if we haven't got one // already. @@ -227,7 +227,7 @@ void llvm::emitLinkerFlagsForGlobalCOFF(raw_ostream &OS, const GlobalValue *GV, raw_string_ostream FlagOS(Flag); Mangler.getNameWithPrefix(FlagOS, GV, false); FlagOS.flush(); - if (Flag[0] == GV->getParent()->getDataLayout().getGlobalPrefix()) + if (Flag[0] == GV->getDataLayout().getGlobalPrefix()) OS << Flag.substr(1); else OS << Flag; @@ -266,7 +266,7 @@ void llvm::emitLinkerFlagsForGlobalCOFF(raw_ostream &OS, const GlobalValue *GV, raw_string_ostream FlagOS(Flag); Mangler.getNameWithPrefix(FlagOS, GV, false); FlagOS.flush(); - if (Flag[0] == GV->getParent()->getDataLayout().getGlobalPrefix()) + if (Flag[0] == GV->getDataLayout().getGlobalPrefix()) OS << Flag.substr(1); else OS << Flag; |