cut out/inline wrapper calls of sv_*catpvf*
authorDaniel Dragan <bulk88@hotmail.com>
Thu, 26 Dec 2013 19:18:16 +0000 (14:18 -0500)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 29 Dec 2013 14:03:29 +0000 (06:03 -0800)
commit147eebd0a5a440afce6e575b0430102a24a6ab9d
tree67ed1b51975788ac2acda37a16584bfab339f890
parentc77808333c43c183362d2c2a2b71cb2af640ff72
cut out/inline wrapper calls of sv_*catpvf*

these wrappers use 1 or 2 indirect calls to reach the guts of Perl's
format string engine. Win64 and ARM (and I assume other 4 register regcall
platforms) compilers can't easily tailcall or optimize these due to
sv_vcatpvfn_flags > 4 args and strlen calls. They allocate lots of C
stack and set up new frames and copy args over. So just call the core
format string function directly.

Not all paths to sv_vcatpvfn_flags were optimized since they have no CORE
or CPAN grep usage. sv_vcatpvf has usage, sv_catpvf_mg* have none but were
done anyway because they sound like they would be commonly used.
sv.c