diff options
| author | Mingming Liu <mingmingl@google.com> | 2025-09-10 15:25:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-10 15:25:31 -0700 |
| commit | 1417dafa1db9cb1b2b09438aa9f53ea5ab6e36e2 (patch) | |
| tree | 57f4b1f313c8cf74eed8819870f39c36ea263c68 /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
| parent | 898b813bc8a6d0276bf0f4769f5f2f64b34e632d (diff) | |
| parent | b8cefcb601ddaa18482555c4ff363c01a270c2fe (diff) | |
Merge branch 'main' into users/mingmingl-llvm/samplefdo-profile-formatusers/mingmingl-llvm/samplefdo-profile-format
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
| -rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 86a2edbd8bd4..de37c391cf25 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -103,12 +103,15 @@ static std::optional<TypeSize> getObjectSize(const Value *V, const TargetLibraryInfo &TLI, bool NullIsValidLoc, bool RoundToAlign = false) { - uint64_t Size; ObjectSizeOpts Opts; Opts.RoundToAlign = RoundToAlign; Opts.NullIsUnknownSize = NullIsValidLoc; - if (getObjectSize(V, Size, DL, &TLI, Opts)) - return TypeSize::getFixed(Size); + if (std::optional<TypeSize> Size = getBaseObjectSize(V, DL, &TLI, Opts)) { + // FIXME: Remove this check, only exists to preserve previous behavior. + if (Size->isScalable()) + return std::nullopt; + return Size; + } return std::nullopt; } @@ -227,9 +230,9 @@ EarliestEscapeAnalysis::getCapturesBefore(const Value *Object, auto Iter = EarliestEscapes.try_emplace(Object); if (Iter.second) { std::pair<Instruction *, CaptureComponents> EarliestCapture = - FindEarliestCapture( - Object, *const_cast<Function *>(DT.getRoot()->getParent()), - /*ReturnCaptures=*/false, DT, CaptureComponents::Provenance); + FindEarliestCapture(Object, *DT.getRoot()->getParent(), + /*ReturnCaptures=*/false, DT, + CaptureComponents::Provenance); if (EarliestCapture.first) Inst2Obj[EarliestCapture.first].push_back(Object); Iter.first->second = EarliestCapture; |
