[PATCH] D46018: [GlobalISel][IRTranslator] Split aggregates during IR translation

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 29 14:33:59 PDT 2018


aemerson added inline comments.


================
Comment at: include/llvm/CodeGen/GlobalISel/IRTranslator.h:78
+    using const_offset_iterator =
+        DenseMap<const Value *, OffsetListT *>::const_iterator;
+
----------------
rtereshin wrote:
> This looks like over 128 bytes per `Value` or more. How does memory consumption change with this patch?
> 
> If it ends up being a problem, we might reuse the `MachineInstr`s approach with storing machine memory operands. It's a similar pattern - in absolute majority of the cases we have just one to one (in case of value to vregs, or one to zero in case of the machine instruction to memory operands) mapping, but only sometimes its one to many.
I haven't measured memory consumption, but changing the SmallVector capacities to 1 has no impact on the compile time on CTMark so I'll do that.

Can you be more specific about the MachineInstr thing? To which bit of code are you referring to? I think at capacities of 1 this should be fine.


Repository:
  rL LLVM

https://reviews.llvm.org/D46018





More information about the llvm-commits mailing list