hxy9243 added a comment. Thanks for pointing out. It's true that it may cause ABI breakage. It would be nice to keep compatibility while getting the performance benefits from inlining.
I've tested the patch with google-benchmark/util_smartptr_libcxx shipped with libcxx on x86_64 server, and attached the results as following: BASE libcxx r283113: $ taskset -c 23 ./util_smartptr.libcxx.out Run on (24 X 1200 MHz CPU s) 2016-10-12 13:52:03 ***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead. Benchmark Time CPU Iterations ---------------------------------------------------------------- BM_SharedPtrCreateDestroy 54 ns 54 ns 12388755 BM_SharedPtrIncDecRef 37 ns 37 ns 19021739 BM_WeakPtrIncDecRef 38 ns 38 ns 18421053 libcxx with patch: $ taskset -c 23 ./util_smartptr.libcxx.out Run on (24 X 1200 MHz CPU s) 2016-10-12 13:48:38 ***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead. Benchmark Time CPU Iterations ---------------------------------------------------------------- BM_SharedPtrCreateDestroy 44 ns 44 ns 14730639 BM_SharedPtrIncDecRef 18 ns 18 ns 38888889 BM_WeakPtrIncDecRef 30 ns 30 ns 23648649 Repository: rL LLVM https://reviews.llvm.org/D24991 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits