[llvm] [ObjectSizeOffsetVisitor] Add a max recursion depth (PR #67479)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 26 13:28:49 PDT 2023
================
@@ -50,6 +51,12 @@ using namespace llvm;
#define DEBUG_TYPE "memory-builtins"
+static cl::opt<unsigned> ObjectSizeOffsetVisitorMaxRecurseDepth(
+ "object-size-offset-visitor-max-recurse-depth",
+ cl::desc(
+ "Maximum number of PHIs for ObjectSizeOffsetVisitor to look through"),
+ cl::init(100));
----------------
nikic wrote:
> I think it's unlikely that we hit huge fanout in real world code, it's typically pretty linear at least with large autogenerated code.
I guess the fact that values don't get revisited does avoid large fan-out in practice.
> In the case I was looking at, this dropped DSE time from >30s to <1s.
Huh, that sounds like a bug. We usually don't query objectsize on non-root objects, and DSE probably shouldn't do that either.
Somewhat expensive objectsize analysis is okay for actual llvm.objectsize intrinsics, but not for generic passes.
https://github.com/llvm/llvm-project/pull/67479
More information about the llvm-commits
mailing list