diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:12:03 +0000 |
| commit | c9157d925c489f07ba9c0b2ce47e5149b75969a5 (patch) | |
| tree | 08bc4a3d9cad3f9ebffa558ddf140b9d9257b219 /contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp | |
| parent | 2a66844f606a35d68ad8a8061f4bea204274b3bc (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp b/contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp index 2065bfbd1c44..1994e6aec84b 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/Analysis.cpp @@ -140,15 +140,14 @@ void llvm::ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, SmallVectorImpl<uint64_t> *FixedOffsets, uint64_t StartingOffset) { TypeSize Offset = TypeSize::get(StartingOffset, Ty->isScalableTy()); - SmallVector<TypeSize, 4> Offsets; - if (FixedOffsets) + if (FixedOffsets) { + SmallVector<TypeSize, 4> Offsets; ComputeValueVTs(TLI, DL, Ty, ValueVTs, &Offsets, Offset); - else - ComputeValueVTs(TLI, DL, Ty, ValueVTs, nullptr, Offset); - - if (FixedOffsets) for (TypeSize Offset : Offsets) - FixedOffsets->push_back(Offset.getKnownMinValue()); + FixedOffsets->push_back(Offset.getFixedValue()); + } else { + ComputeValueVTs(TLI, DL, Ty, ValueVTs, nullptr, Offset); + } } void llvm::ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, @@ -166,15 +165,14 @@ void llvm::ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, SmallVectorImpl<uint64_t> *FixedOffsets, uint64_t StartingOffset) { TypeSize Offset = TypeSize::get(StartingOffset, Ty->isScalableTy()); - SmallVector<TypeSize, 4> Offsets; - if (FixedOffsets) + if (FixedOffsets) { + SmallVector<TypeSize, 4> Offsets; ComputeValueVTs(TLI, DL, Ty, ValueVTs, MemVTs, &Offsets, Offset); - else - ComputeValueVTs(TLI, DL, Ty, ValueVTs, MemVTs, nullptr, Offset); - - if (FixedOffsets) for (TypeSize Offset : Offsets) - FixedOffsets->push_back(Offset.getKnownMinValue()); + FixedOffsets->push_back(Offset.getFixedValue()); + } else { + ComputeValueVTs(TLI, DL, Ty, ValueVTs, MemVTs, nullptr, Offset); + } } void llvm::computeValueLLTs(const DataLayout &DL, Type &Ty, |
