[Issue 18114] [Reg 2.078] regex performance regression

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jan 2 20:29:50 UTC 2018


https://issues.dlang.org/show_bug.cgi?id=18114

Martin Nowak <code at dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla at digitalmars.com,
                   |                            |code at dawg.eu,
                   |                            |dmitry.olsh at gmail.com
           Hardware|x86                         |x86_64
            Summary|dmd 2.078-beta1: regex      |[Reg 2.078] regex
                   |performance regression      |performance regression
                 OS|Mac OS X                    |All

--- Comment #5 from Martin Nowak <code at dawg.eu> ---
Introduced by https://github.com/dlang/phobos/pull/5722.
There were some major internal changes in the std.regex module.

I see a 60% increase in issued instructions for the 'abc' regex, but also much
better ILP with this WIP PR.

https://github.com/dlang/phobos/pull/5981

There are quite a lot of very slow LOOP instructions used to copy fat struct
parameters around. Those seem to clog the pipeline.

https://github.com/dlang/dmd/blob/7f43f0f88df876aec60a22a6a74940020fb1ef50/src/dmd/backend/cod1.c#L4046
https://stackoverflow.com/questions/35742570/why-is-the-loop-instruction-slow-couldnt-intel-have-implemented-it-efficiently#35743699

Whether or not the increase in instructions with better ILP is intentional or
another bug, I don't know. Guess Dmitry can help to figure this out.

--


More information about the Digitalmars-d-bugs mailing list