This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
speedup for SUPER::method() calls.
authorsyber <syber@crazypanda.ru>
Fri, 28 Nov 2014 18:22:25 +0000 (21:22 +0300)
committerFather Chrysostomos <sprout@cpan.org>
Sat, 29 Nov 2014 02:10:58 +0000 (18:10 -0800)
commit7d6c333c75cb0519428c389de3894edcb394d3a0
treed03a03a0aaa68b1a8348aea290600d0d7bee4e48
parent5ec005187f9529697da2ef026ddf0a3758600148
speedup for SUPER::method() calls.

In ck_method:
Scan for '/::. If found SUPER::, create OP_METHOD_SUPER op
with precomputed hash value for method name.

In B::*, added support for method_super

In pp_hot.c, pp_method_*:
S_method_common removed, code related to getting stash is
moved to S_opmethod_stash, other code is moved to
pp_method_* functions.

As a result, SUPER::func() calls speeded up by 50%.
14 files changed:
dump.c
embed.fnc
embed.h
ext/B/B/Concise.pm
ext/Opcode/Opcode.pm
lib/B/Deparse.pm
lib/B/Op_private.pm
op.c
opcode.h
opnames.h
pp_hot.c
pp_proto.h
proto.h
regen/opcodes