[InlineCost] Don't call collectEphemeralValues() if too many assumptions #129279
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CallAnalyzer::analyze()
can take several hours to run if the function contains thousands of @llvm.assume() calls and there are thousands of callsites. The time is spent incollectEphemeralvalues()
. This patch adds a check that disables the collection of ephemeral values if there are more assumptions than a limit controlled by the-inline-ephval-assumptions-limit
flag. Disabling the collection of ephemeral values will increase the function cost, making it less likely to be inlined, but if there are too many calls to@llvm.assume()
then the chances are that the function will be too big to inline anyway.