http://qs1969.pair.com?node_id=857302
User since: Aug 25, 2010 at 21:18 UTC (14 years ago)
Last here: Aug 03, 2020 at 22:25 UTC (4 years ago)
Experience: 4896
Level:Priest (14)
Writeups: 589
Location:n/a
User's localtime: Apr 18, 2024 at 21:45 EDT
Scratchpad: View
For this user:Search nodes

I have a CPAN User ID, BULKDD, and a github.

Bookmarks:
Re^5: Perl 5 Optimizing Compiler interp machine code func sizes

Interp todo list:

http://perl5.git.perl.org/perl.git/shortlog/refs/heads/smueller/sort investigate added to blead, needs bug fixes, has macro code bloat, nearly 4 KB

http://perl5.git.perl.org/perl.git/commit/8d919b0a35f2b57a6bed2f8355b25b19ac5ad0c5?f=sv.h investigate removing isREGEXP code

for newXS, store the file char * param in an interp global, don't pass it each time, save strlen too, consider encoding file, proto, and xsub names in 3 UCHARs in a bitfield for flags param. Maybe vararg it. appropriate changes to parseXS too.

SvPV, return a struct, len goes into EDX only on EAX EDX return platforms like win32 32 bit x86, saved 0x200 instruction bytes in interp in crude test

look through old tickets which weren't applied yet

fastcall on msvc gcc 32 bit, 10% faster in perlbench

regcall on intel c, sounds much better than fastcall, and structs returned in regs on x64 supposedly, see SvPV EAX EDX item

strlen audit

too many upg_version calls on PL_patchlevel, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/11/msg196004.html

win32 Perl_init_os_extras, remove the GetProcAddress overhead, now that PERL_IS_MINIPERL define exists from makefiles

av_fetch_flags, never returns null, will return PL_sv_undef instead. Removes a common idiom. Turning lval param into a flags will cost zero instructions, since there is always an lval param right now anyways.

remove context from Perl_mg_find* and S_mg_findext_flags, use .fnc for back compatb

how to load every XS module on Win32 Perl -Marybase -Mattributes -MB -MCompress::Raw::Bzip2 -MCompress::Raw::Zlib -MCwd -MData::Dumper -MDevel::Peek -MDevel::PPPort -MDigest::MD5 -MDigest::SHA -MEncode -MEncode::Byte -MEncode::CN -MEncode::EBCDIC -MEncode::JP -MEncode::KR -MEncode::Symbol -MEncode::TW -MEncode::Unicode -MFcntl -MFile::DosGlob -MFile::Glob -MFilter::Util::Call -MHash::Util -MHash::Util::FieldHash -MIO -MList::Util -MMath::BigInt::FastCalc -MMIME::Base64 -Mmro -MOpcode -MPerlIO::encoding -MPerlIO::mmap -MPerlIO::scalar -MPerlIO::via -MPOSIX -Mre -MSDBM_File -MSocket -MStorable -MSys::Hostname -Mthreads -Mthreads::shared -MTie::Hash::NamedCapture -MTime::HiRes -MTime::Piece -MUnicode::Collate -MWin32 -MWin32API::File -MXS::APItest -MXS::Typemap