diff options
author | River Riddle <riddleriver@gmail.com> | 2020-10-27 16:03:22 -0700 |
---|---|---|
committer | River Riddle <riddleriver@gmail.com> | 2020-10-27 16:16:51 -0700 |
commit | eacac2679ddb2b53025a11933eb222eaf75812ef (patch) | |
tree | 031fb4eb7e520e041b741699c29aeddf6d67d84c /clang/lib/Basic/FileManager.cpp | |
parent | ef728eaf6e8de17b9f5bac89c972a94e37e4f09e (diff) | |
download | llvm-eacac2679ddb2b53025a11933eb222eaf75812ef.zip llvm-eacac2679ddb2b53025a11933eb222eaf75812ef.tar.gz llvm-eacac2679ddb2b53025a11933eb222eaf75812ef.tar.bz2 |
[mlir][Interfaces] Optimize the implementation of InterfaceMap to reduce generated code size.
An InterfaceMap is generated for every single operation type, and is responsible for a large amount of the code size from MLIR given that its internals highly utilize templates. This revision refactors the internal implementation to use bare malloc/free for interface instances as opposed to static variables and moves as much code out of templates as possible. This led to a decrease of over >1mb (~12% of total MLIR related code size) for a downstream MLIR library with a large amount of operations.
Differential Revision: https://reviews.llvm.org/D90086
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
0 files changed, 0 insertions, 0 deletions