aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/ArrayParameters.cc
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 03:41:33 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 03:58:26 +0000
commit91e506e404c0d285ec1ec77196e83248c8c77161 (patch)
treeadffdea64cc44d59f234293a7fb83a09abb92022 /lib/CodeGen/ArrayParameters.cc
parent0798836375047a051ad4bffa500e8e819fd51c5e (diff)
refactor(codegen): share array metadata registration
DECLARE and array-parameter binding both computed the dimension multipliers, filled the same ArrayMetadata and stored it in ArrayTable. Move that into a private ArrayHandler::defineMetadata helper that also yields the total element count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'lib/CodeGen/ArrayParameters.cc')
-rw-r--r--lib/CodeGen/ArrayParameters.cc13
1 files changed, 1 insertions, 12 deletions
diff --git a/lib/CodeGen/ArrayParameters.cc b/lib/CodeGen/ArrayParameters.cc
index 4f2d54d..57cf6dd 100644
--- a/lib/CodeGen/ArrayParameters.cc
+++ b/lib/CodeGen/ArrayParameters.cc
@@ -21,19 +21,8 @@ void ArrayHandler::bindArrayParameter(const std::string &Name,
return;
}
- std::vector<Value*> Multipliers;
Value *TotalElements = nullptr;
- computeDimsAndMultipliers(Name, LBs, UBs, Multipliers, TotalElements);
-
- ArrayMetadata Meta;
- Meta.Rank = static_cast<int>(LBs.size());
- Meta.ElementTypeName = ElemInfo->Name;
- Meta.ElementType = ElemInfo->LLVMType;
- Meta.ElementSizeC = Types.getSizeOfConstant(ElemInfo->LLVMType);
- Meta.LowerBounds = LBs;
- Meta.UpperBounds = UBs;
- Meta.Multipliers = std::move(Multipliers);
- ArrayTable[Name] = Meta;
+ const ArrayMetadata &Meta = defineMetadata(Name, ElemInfo, LBs, UBs, TotalElements);
Value *Ptr = DataPtr;
if (MakeCopy) {