[PATCH] D139882: [NFC][MC] `MCInst`: `Operands` small size optimization: store 16, not 8, inline `MCOperand`
    Roman Lebedev via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Dec 12 14:08:53 PST 2022
    
    
  
lebedev.ri created this revision.
lebedev.ri added reviewers: RKSimon, craig.topper, grosbach.
lebedev.ri added a project: LLVM.
Herald added subscribers: StephenFan, mstojanovic.
Herald added a project: All.
lebedev.ri requested review of this revision.
Herald added a subscriber: courbet.
This improves the torture test of
  ./bin/llvm-exegesis -mcpu=znver3 -mode=inverse_throughput --opcode-index=-1 --benchmarks-file=/dev/null --dump-object-to-disk=0 --measurements-print-progress --skip-measurements
from 2m17s to 2min14s, and has the following effect on memory:
  heaptrack stats:
  allocations:100809844 -> 77342110 (-23%)
  leaked allocations: 1128
  temporary allocations:  24911145  -> 1576268  (-93.7%) !!!
... at the cost of slightly higher peak RSS and peak heap memory consumption:
I'm not sure who is the code owner of this component.
Repository:
  rG LLVM Github Monorepo
https://reviews.llvm.org/D139882
Files:
  llvm/include/llvm/MC/MCInst.h
Index: llvm/include/llvm/MC/MCInst.h
===================================================================
--- llvm/include/llvm/MC/MCInst.h
+++ llvm/include/llvm/MC/MCInst.h
@@ -189,7 +189,7 @@
   unsigned Flags = 0;
 
   SMLoc Loc;
-  SmallVector<MCOperand, 8> Operands;
+  SmallVector<MCOperand, 16> Operands;
 
 public:
   MCInst() = default;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D139882.482262.patch
Type: text/x-patch
Size: 345 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221212/a40af96f/attachment.bin>
    
    
More information about the llvm-commits
mailing list