This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Switching entersub ops from "XS" to "Perl" and back likely won't help.
authorNicholas Clark <nick@ccl4.org>
Fri, 30 Mar 2012 19:23:25 +0000 (21:23 +0200)
committerNicholas Clark <nick@ccl4.org>
Tue, 24 Apr 2012 08:51:55 +0000 (10:51 +0200)
Switching OPs goes against the grain of immutable optrees under ithreads -
it could probably be made to work, but the amount of extra effort would be
non-trivial.

Secondly, cache misses are the overriding speed hit on modern CPUs.
The code switching proposed would add complexity but only be able to change
the number of branch instructions encountered, which come a distant second
to cache misses as a speed hit. The code switching would not change the data
lookups needed, and hence not the cache misses they cause.

Porting/todo.pod

index 8eb1a37..81031fb 100644 (file)
@@ -950,13 +950,6 @@ as a module on CPAN.
 
 Allow lexical aliases (maybe via the syntax C<my \$alias = \$foo>).
 
-=head2 entersub XS vs Perl
-
-At the moment pp_entersub is huge, and has code to deal with entering both
-perl and XS subroutines. Subroutine implementations rarely change between 
-perl and XS at run time, so investigate using 2 ops to enter subs (one for
-XS, one for perl) and swap between if a sub is redefined.
-
 =head2 Self-ties
 
 Self-ties are currently illegal because they caused too many segfaults. Maybe