From: Vincent Pit Date: Sat, 12 Jul 2014 16:53:52 +0000 (+0200) Subject: In the rpeep replacement, don't check every op for recursion X-Git-Tag: v0.13~8 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=6b60db564a2cc9f93f52ee22535da1b73a92eb83;hp=6b60db564a2cc9f93f52ee22535da1b73a92eb83;p=perl%2Fmodules%2Fautovivification.git In the rpeep replacement, don't check every op for recursion When the rpeep is available (i.e. starting from perl 5.13.4), recursion in the peephole optimizer replacement seemingly only happens for static infinite loops (think for (;;) { }), even though the 'seen' pointer table is checked for every op. This may cause slowdowns even outside of the scope of the pragma. To mitigate this problem, only check for recursion on nextstate, dbstate, and stub ops, since one of those three kind of ops must occur in any loop/block (respectively for non-empty, non-empty debugging and empty loops). ---