[llvm] [RFC][MC] Cache MCRegAliasIterator (PR #93510)

Pierre van Houtryve via llvm-commits llvm-commits at lists.llvm.org
Tue May 28 03:50:51 PDT 2024


================
@@ -187,6 +187,9 @@ class MCRegisterInfo {
   DenseMap<MCRegister, int> L2SEHRegs;        // LLVM to SEH regs mapping
   DenseMap<MCRegister, int> L2CVRegs;         // LLVM to CV regs mapping
 
+  mutable DenseMap<MCPhysReg, std::vector<MCPhysReg>> RegAliasesCache;
----------------
Pierre-vh wrote:

This could also just be a `std::vector<std::unique_ptr<std::vector<MCPhysReg>>>` where register IDs are the indexes into the vector.

It'd use more space upfront (for AMDGPU, about 9000*8 bytes) but makes accesses a lot faster, and would be more memory efficient if we end up caching tons of aliases.

https://github.com/llvm/llvm-project/pull/93510


More information about the llvm-commits mailing list