diff options
author | Kazu Hirata <kazu@google.com> | 2024-01-26 17:18:42 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-26 17:18:42 -0800 |
commit | c9790f8f733f6014fdd8bdacb057c9871e624bcc (patch) | |
tree | c469dfb090316d7725f2f3e36442a0705f7d9e10 | |
parent | c1a155bf785152abc72b77608261a3d0e6c776a6 (diff) | |
download | llvm-c9790f8f733f6014fdd8bdacb057c9871e624bcc.zip llvm-c9790f8f733f6014fdd8bdacb057c9871e624bcc.tar.gz llvm-c9790f8f733f6014fdd8bdacb057c9871e624bcc.tar.bz2 |
[IR] Use SmallDenseSet (NFC) (#79556)
The use of SmallDenseSet saves 0.39% of heap allocations during the
compilation of a large preprocessed file, namely X86ISelLowering.cpp,
for the X86 target. During the experiment, WL.size() was 2 or less
99.9% of the time. The inline size of 4 should accommodate up to 2
entries at the 3/4 occupancy rate.
-rw-r--r-- | llvm/lib/IR/Instruction.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/lib/IR/Instruction.cpp b/llvm/lib/IR/Instruction.cpp index f9a38e4..904ce17 100644 --- a/llvm/lib/IR/Instruction.cpp +++ b/llvm/lib/IR/Instruction.cpp @@ -1167,9 +1167,7 @@ void Instruction::copyMetadata(const Instruction &SrcInst, if (!SrcInst.hasMetadata()) return; - DenseSet<unsigned> WLS; - for (unsigned M : WL) - WLS.insert(M); + SmallDenseSet<unsigned, 4> WLS(WL.begin(), WL.end()); // Otherwise, enumerate and copy over metadata from the old instruction to the // new one. |