diff options
| author | Kazu Hirata <kazu@google.com> | 2024-07-14 02:35:17 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-14 02:35:17 -0700 |
| commit | c28ddf900051760e3ae8cef33b26da3c37f5627e (patch) | |
| tree | 32d001dc1c71193ed9f82edf6e0be58545a8747c /llvm/lib/Transforms/Utils/LowerSwitch.cpp | |
| parent | 181e4c6291c94a38c0ee89d2128f8d70b15d2d23 (diff) | |
| download | llvm-c28ddf900051760e3ae8cef33b26da3c37f5627e.zip llvm-c28ddf900051760e3ae8cef33b26da3c37f5627e.tar.gz llvm-c28ddf900051760e3ae8cef33b26da3c37f5627e.tar.bz2 | |
[Analysis] Use BitVector::test in areInlineCompatible (NFC) (#98776)
areInlineCompatible checks to see if CalleeTLI.OverrideAsUnavailable
is a subset of OverrideAsUnavailable by computing a union of the two
and comparing the union and OverrideAsUnavailable.
The problem is that computing a union involves memory allocations.
This patch removes the need for memory allocations by switching to
BitVector::test. Note that A.test(B) returns true if A - B is
non-empty. That is, !A.test(B) is true if A if a subset of B.
The use of BitVector::test here saves 0.20% of heap allocations during
the compilation of X86ISelLowering.cpp.ii, a preprocessed version of
X86ISelLowering.cpp.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LowerSwitch.cpp')
0 files changed, 0 insertions, 0 deletions
