summaryrefslogtreecommitdiff
path: root/pp_proto.h
diff options
context:
space:
mode:
authorRichard Leach <richardleach@users.noreply.github.com>2022-07-08 14:52:19 +0000
committerRichard Leach <richardleach@users.noreply.github.com>2022-08-17 11:19:10 +0100
commit9fdd7fc4796d89d16dceea42f2af91e4fde296ed (patch)
tree9f113c432769e4dd1e8628fe2500059a588cce52 /pp_proto.h
parent434ccf36bb90d7dfe527c3ecd775983821669b4a (diff)
downloadperl-9fdd7fc4796d89d16dceea42f2af91e4fde296ed.tar.gz
Implement OP_PADSV_STORE - combined sassign/padsv OP
This commit introduces a new OP to replace simple cases of OP_SASSIGN and OP_PADSV. For example, 'my $x = 1' is currently implemented as: 1 <;> nextstate(main 1 -e:1) v:{ 2 <$> const(IV 1) s 3 <0> padsv[$x:1,2] sRM*/LVINTRO 4 <2> sassign vKS/2 But now will be turned into: 1 <;> nextstate(main 1 -e:1) v:{ 2 <$> const(IV 1) s 3 <1> padsv_store[$x:1,2] vKMS/LVINTRO This intended to be a transparent performance optimization. It should be applicable for RHS optrees of varying complexity.
Diffstat (limited to 'pp_proto.h')
-rw-r--r--pp_proto.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/pp_proto.h b/pp_proto.h
index 83516cdf66..c89828a56b 100644
--- a/pp_proto.h
+++ b/pp_proto.h
@@ -199,6 +199,7 @@ PERL_CALLCONV OP *Perl_pp_padcv(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_padhv(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_padrange(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_padsv(pTHX) __attribute__visibility__("hidden");
+PERL_CALLCONV OP *Perl_pp_padsv_store(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_pipe_op(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_poptry(pTHX) __attribute__visibility__("hidden");
PERL_CALLCONV OP *Perl_pp_pos(pTHX) __attribute__visibility__("hidden");