[PATCH] D72299: [DSE] Improve mayThrowBetween for 2 instructions in the same BB.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 7 13:17:59 PST 2020
fhahn planned changes to this revision.
fhahn marked an inline comment as done.
fhahn added a comment.
This is not really required for C/C++. I'll re-visit the patch once we have the more important pieces of MemorySSA based machinery in.
================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1706
+ // between them.
+ DenseMap<BasicBlock *, DenseMap<Instruction *, unsigned>> ThrowingBlocks;
----------------
efriedma wrote:
> fhahn wrote:
> > efriedma wrote:
> > > This map seems sort of expensive, but maybe not a big deal relative to other stuff we have here already.
> > Yep, we probably should populate it lazily. And I think at least for C/C++ programs, it should not really be needed at all. There's no difference in the MultiSource/SPEC2000/SPEC2006 binaries with and without this patch, now that I updated D72146 to skip throwing instructions modeled in MemorySSA.
> That's not surprising. It's theoretically possible to have a function that's readnone and not nothrow, but it doesn't happen in practice for C/C++ code.
Yep, I think wit would probably make sense to re-visit this patch later and focus on getting the other parts in first :)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72299/new/
https://reviews.llvm.org/D72299
More information about the llvm-commits
mailing list