From 91e506e404c0d285ec1ec77196e83248c8c77161 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 03:41:33 +0000 Subject: 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 --- lib/CodeGen/ArrayParameters.cc | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'lib/CodeGen/ArrayParameters.cc') 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 Multipliers; Value *TotalElements = nullptr; - computeDimsAndMultipliers(Name, LBs, UBs, Multipliers, TotalElements); - - ArrayMetadata Meta; - Meta.Rank = static_cast(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) { -- cgit v1.3.1-4-g156e