User since: |
Aug 25, 2010 at 21:18 UTC
(15 years ago) |
Last here: |
Apr 25, 2025 at 18:13 UTC
(18 hours ago) |
Experience: |
4936
|
Level: | Priest (14) |
Writeups: |
590
|
Location: | n/a |
User's localtime: |
Apr 26, 2025 at 08:26 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
|