SLTozer wrote: > My guess here would have been that the issue is the cases where an > Instruction* or BasicBlock* is passed rather than BB+Iterator, because those > two cases go through an out-of-line constructor.
Seems like you're right - removing the extra dereference does little-to-nothing, but allowing the constructors to be inlined mitigates most of the cost. It still ends up being [a net negative for performance](http://llvm-compile-time-tracker.com/compare.php?from=d75f9dd1d29b332bdc51346de63cbc04646354d7&to=3acef100b23fb6fa616523dd0d1b85945adb7900&stat=instructions%3Au) though, even after allowing the constructors to become inlined. https://github.com/llvm/llvm-project/pull/96497 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits