Thread overview | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 03, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |code@dawg.eu --- Comment #4 from Martin Nowak <code@dawg.eu> --- I'm getting excessive compile times for a few phobos modules in release unittests. Most notably std.regex.internal.tests, and std.datetime. Can we try to do the static foreach delegate trick again? time ../dmd/src/dmd -conf= -I../druntime/import -w -dip25 -m64 -O -release -unittest -c -ofgenerated/osx/release/64/unittest/std/datetime.o -deps=generated/osx/release/64/unittest/std/datetime.deps.tmp std/datetime.d 180.96 real 132.19 user 48.76 sys time ../dmd/src/dmd -conf= -I../druntime/import -w -dip25 -m64 -O -release -unittest -c -ofgenerated/osx/release/64/unittest/std/random.o -deps=generated/osx/release/64/unittest/std/random.deps.tmp std/random.d 21.23 real 15.68 user 5.53 sys time ../dmd/src/dmd -conf= -I../druntime/import -w -dip25 -m64 -O -release -unittest -c -ofgenerated/osx/release/64/unittest/std/regex/internal/tests.o -deps=generated/osx/release/64/unittest/std/regex/internal/tests.deps.tmp std/regex/internal/tests.d 250.31 real 184.75 user 65.55 sys -- |
March 03, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 --- Comment #5 from Martin Nowak <code@dawg.eu> --- Most CPU time is spent in `updaterd` and `accumaecpx` if that helps. https://github.com/D-Programming-Language/dmd/blob/82b031c22f18334a7edeff437260b6802070a9e3/src/backend/gloop.c#L1263 https://github.com/D-Programming-Language/dmd/blob/e43136308f7eb035d046a99a46ffbdaf880413b7/src/backend/gflow.c#L907 -- |
March 03, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Jonathan M Davis <issues.dlang@jmdavisProg.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |issues.dlang@jmdavisProg.co | |m --- Comment #6 from Jonathan M Davis <issues.dlang@jmdavisProg.com> --- (In reply to Martin Nowak from comment #4) > Can we try to do the static foreach delegate trick again? Which trick are you referring to? -- |
March 06, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 --- Comment #7 from Martin Nowak <code@dawg.eu> --- (In reply to Jonathan M Davis from comment #6) > Which trick are you referring to? https://github.com/D-Programming-Language/phobos/pull/2767 -- |
November 07, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 --- Comment #8 from Martin Nowak <code@dawg.eu> --- Another case of this. https://github.com/etcimon/botan/issues/8 It took dmd almost 13 minutes to compile botan w/ release optimizations on heroku (and about 4 minutes on my local machine). -- |
November 08, 2015 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 --- Comment #9 from Martin Nowak <code@dawg.eu> --- Could we fix this for now by letting dmd backoff from very big functions? Or if someone understands accumaecpx well enough, maybe the optimization can be windowed to 1000 expressions/statements or so. -- |
December 22, 2016 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Daniel Kozak <kozzi11@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |chalucha@gmail.com --- Comment #10 from Daniel Kozak <kozzi11@gmail.com> --- *** Issue 14939 has been marked as a duplicate of this issue. *** -- |
December 22, 2016 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Andrei Alexandrescu <andrei@erdani.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrei@erdani.com --- Comment #11 from Andrei Alexandrescu <andrei@erdani.com> --- I just realized that a precise GC using introspection would use exactly this facility. -- |
December 22, 2016 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Jack Stouffer <jack@jackstouffer.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |performance CC| |jack@jackstouffer.com Hardware|x86 |All OS|Mac OS X |All -- |
December 22, 2016 [Issue 7157] Optimiser is O(n^2) w.r.t. function length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7157 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #12 from Walter Bright <bugzilla@digitalmars.com> --- There is some quadratic behavior in the function bodies of `updaterd` and `accumaecpx` (look for the loops). They can both be fixed. -- |
Copyright © 1999-2021 by the D Language Foundation