This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[MERGE] add OP_MULTICONCAT and optimize_optree()
authorDavid Mitchell <davem@iabyn.com>
Tue, 31 Oct 2017 16:08:06 +0000 (16:08 +0000)
committerDavid Mitchell <davem@iabyn.com>
Tue, 31 Oct 2017 16:08:06 +0000 (16:08 +0000)
commit125cf574559a697ab2dd31760c79d7c98f3479c4
treebdce0feae147b158e0cce2c99f1f10e100397423
parentab340fffd3aab332a1b31d7cf502274d67d1d4a5
parent8ed1839ebc0906f7490ec0f40be9adc129665039
[MERGE] add OP_MULTICONCAT and optimize_optree()

This branch contains one main commit which adds the new OP_MULTICONCAT op,
plus a few prior commits to provide support; in particular, adding an extra
top-down optree scan phase to allow extra optimisation opportunities, just
before the peephole optimiser is run.

See the OP_MULTICONCAT for more details, but in summary it:
allows multiple OP_CONCAT, OP_CONST ops, plus optionally an OP_SASSIGN
or OP_STRINGIFY, to be combined into a single OP_MULTICONCAT op, which can
make things a *lot* faster: 4x or more.