[PATCH] D84906: [NFC] Use GetUnderlyingObjects in findAllocaForValue
Johannes Doerfert via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 30 09:18:58 PDT 2020
jdoerfert added inline comments.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4302-4307
AllocaInst *llvm::findAllocaForValue(Value *V) {
- DenseMap<Value *, AllocaInst *> AllocaForValue;
- return ::findAllocaForValue(V, AllocaForValue);
+ SmallVector<const Value *, 16> Objects;
+ GetUnderlyingObjects(V, Objects);
+ if (Objects.size() != 1)
+ return nullptr;
+ return const_cast<AllocaInst *>(dyn_cast<AllocaInst>(Objects.front()));
----------------
It seems silly that we have the single object and multi object interface that do different things. Arguably, you would like to write the above code. Maybe we should allow `GetUnderlyingObject` to (optionally) look through PHI and select instead? Making that happen seems little work but makes these awkward invocations unnecessary. WDYT?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D84906/new/
https://reviews.llvm.org/D84906
More information about the llvm-commits
mailing list