diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-22 03:41:33 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-22 03:58:26 +0000 |
| commit | 91e506e404c0d285ec1ec77196e83248c8c77161 (patch) | |
| tree | adffdea64cc44d59f234293a7fb83a09abb92022 /lib/CodeGen/ArrayParameters.cc | |
| parent | 0798836375047a051ad4bffa500e8e819fd51c5e (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.cc | 13 |
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) { |
