https://github.com/aengelke created https://github.com/llvm/llvm-project/pull/208169
The PassConcept/PassModel vtable has a size of 64 bytes (offset to top, RTTI pointer, complete object destructor, deleting destructor, run, printPipeline, name, isRequired), which add up to 53kiB (all targets)/44 kiB (single-target). As more back-end passes get ported to the new pass manager, this size will increase. Remove the vtables by replacing the virtual dispatch with explicit function pointers, initialized when adding the pass to the pass manager. While this *very* slightly increases the cost of adding a pass, there's also a very slight win from avoiding the vtable indirection when running/destructing the pass. _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
