diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2013-12-26 14:18:16 -0500 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2013-12-29 06:03:29 -0800 |
commit | 147eebd0a5a440afce6e575b0430102a24a6ab9d (patch) | |
tree | 67ed1b51975788ac2acda37a16584bfab339f890 /universal.c | |
parent | c77808333c43c183362d2c2a2b71cb2af640ff72 (diff) | |
download | perl-147eebd0a5a440afce6e575b0430102a24a6ab9d.tar.gz |
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.
Diffstat (limited to 'universal.c')
0 files changed, 0 insertions, 0 deletions