summaryrefslogtreecommitdiff
path: root/opcode.pl
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-10-31 20:36:36 +0000
committerNicholas Clark <nick@ccl4.org>2005-10-31 20:36:36 +0000
commit0b612f938c486fe63cc6e365cfa90d407732bbcc (patch)
tree58862224b6243030fd8a50655bd612e9d66c2faa /opcode.pl
parentaf51a00e97d5c55987039f94df86e106c0d31ef5 (diff)
downloadperl-0b612f938c486fe63cc6e365cfa90d407732bbcc.tar.gz
All the ops that are simply C<return some_other_op();> can be bypassed
in the op dispatch table, and the bodies retired. p4raw-id: //depot/perl@25940
Diffstat (limited to 'opcode.pl')
-rwxr-xr-xopcode.pl26
1 files changed, 25 insertions, 1 deletions
diff --git a/opcode.pl b/opcode.pl
index e3b9056b4e..6b0129490f 100755
--- a/opcode.pl
+++ b/opcode.pl
@@ -41,7 +41,31 @@ my %alias;
my @raw_alias = (
Perl_do_kv => [qw( keys values )],
Perl_unimplemented_op => [qw(padany threadsv mapstart)],
- );
+ # All the ops with a body of { return NORMAL; }
+ Perl_pp_null => [qw(scalar regcmaybe lineseq scope)],
+
+ Perl_pp_goto => ['dump'],
+ Perl_pp_require => ['dofile'],
+ Perl_pp_untie => ['dbmclose'],
+ Perl_pp_sysread => [qw(read recv)],
+ Perl_pp_sysseek => ['seek'],
+ Perl_pp_ioctl => ['fcntl'],
+ Perl_pp_ssockopt => ['gsockopt'],
+ Perl_pp_getpeername => ['getsockname'],
+ Perl_pp_stat => ['lstat'],
+ Perl_pp_ftrowned => ['fteowned'],
+ Perl_pp_fttext => ['ftbinary'],
+ Perl_pp_gmtime => ['localtime'],
+ Perl_pp_semget => [qw(shmget msgget)],
+ Perl_pp_semctl => [qw(shmctl msgctl)],
+ Perl_pp_shmwrite => ['shmread'],
+ Perl_pp_ghostent => [qw(ghbyname ghbyaddr)],
+ Perl_pp_gnetent => [qw(gnbyname gnbyaddr)],
+ Perl_pp_gprotoent => [qw(gpbyname gpbynumber)],
+ Perl_pp_gservent => [qw(gsbyname gsbyport)],
+ Perl_pp_gpwent => [qw(gpwnam gpwuid)],
+ Perl_pp_ggrent => [qw(ggrnam ggrgid)],
+);
while (my ($func, $names) = splice @raw_alias, 0, 2) {
$alias{$_} = $func for @$names;