In perl.git, the branch smoke-me/davem/dtrace has been created

<http://perl5.git.perl.org/perl.git/commitdiff/cd4c6adea23c6a54bd94ad3d969523662d140678?hp=0000000000000000000000000000000000000000>

        at  cd4c6adea23c6a54bd94ad3d969523662d140678 (commit)

- Log -----------------------------------------------------------------
commit cd4c6adea23c6a54bd94ad3d969523662d140678
Author: David Mitchell <[email protected]>
Date:   Mon Feb 15 13:48:24 2016 +0000

    rename and function-ise dtrace macros
    
    This commit:
    
    1. Renames the various dtrace probe macros into a consistent and
    self-documenting pattern, e.g.
    
    ENTRY_PROBE  => PERL_DTRACE_PROBE_ENTRY
    RETURN_PROBE => PERL_DTRACE_PROBE_RETURN
    
    Since they're supposed to be defined only under PERL_CORE, this shouldn't
    break anything that's not being naughty.
    
    2. Implement the main body of these macros using a real function.
    
    They were formerly defined along the lines of
    
        if (PERL_SUB_ENTRY_ENABLED())
            PERL_SUB_ENTRY(...);
    
    The PERL_SUB_ENTRY() part is a macro generated by the dtrace system, which
    for example on linux expands to a large bunch of assembly directives.
    Replace the direct macro with a function wrapper, e.g.
    
        if (PERL_SUB_ENTRY_ENABLED())
            Perl_dtrace_probe_call(aTHX_ cv, TRUE);
    
    This reduces to once the number of times the macro is expanded.
    
    The new functions also take simpler args and then process the values they
    need using intermediate temporary vars to avoid huge macro expansions.
    
    For example
    
        ENTRY_PROBE(CvNAMED(cv)
                        ? HEK_KEY(CvNAME_HEK(cv))
                        : GvENAME(CvGV(cv)),
                    CopFILE((const COP *)CvSTART(cv)),
                    CopLINE((const COP *)CvSTART(cv)),
                    CopSTASHPV((const COP *)CvSTART(cv)));
    
    is now
    
        PERL_DTRACE_PROBE_ENTRY(cv);
    
    This reduces the executable size by 1K on -O2 -Dusedtrace builds,
    and by 45K on -DDEBUGGING -Dusedtrace builds.
-----------------------------------------------------------------------

--
Perl5 Master Repository

Reply via email to