[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