[PATCH] D6594: Fix for bug 8281 - Extremely slow assembling and disassembling of ptrtoint
Tim Shen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 10 11:18:44 PST 2021
timshen added inline comments.
================
Comment at: llvm/lib/IR/ConstantFold.cpp:365
+ Constant *E = getFoldedSizeOf(ATy->getElementType(), DestTy, true, Cache);
+ return Cache[Ty] = ConstantExpr::getNUWMul(E, N);
}
----------------
This is correct today, but newly added `return` statements in the future might miss the `Cache[Ty] = ` part.
Do you mind doing the following:
```
static Constant *getFoldedSizeOfImpl(Type *Ty, Type *DestTy, bool Folded,
DenseMap<Type *, Constant *> &Cache) {
// The actual implementation, no explicit caching.
// It recursively calls into getFoldedSizeOf below.
}
static Constant *getFoldedSizeOf(Type *Ty, Type *DestTy, bool Folded,
DenseMap<Type *, Constant *> &Cache) {
Constant*& V = Cache[Ty];
if (V == nullptr)
V = getFoldedSizeOfImpl(...);
return V;
}
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D6594/new/
https://reviews.llvm.org/D6594
More information about the llvm-commits
mailing list