This is an archive of the discontinued LLVM Phabricator instance.

[NFC][Coroutines] Build DominatorTree only once before collecting frame allocas (PR58650)
ClosedPublic

Authored by yurai007 on Jan 1 2023, 4:27 AM.

Details

Summary

Assuming that collecting frame allocas doesn't modify CFG we can safely
move DominatorTree construction outside loop and avoid expensive computations.

Diff Detail

Event Timeline

yurai007 created this revision.Jan 1 2023, 4:27 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 1 2023, 4:27 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
yurai007 requested review of this revision.Jan 1 2023, 4:27 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 1 2023, 4:27 AM

Using test.sh from PR got following outputs.

Before change:

n: 2000

real 0m3.102s
user 0m3.050s
sys 0m0.047s

n: 4000

real 0m13.323s
user 0m13.275s
sys 0m0.023s

n: 6000

real 0m33.718s
user 0m31.860s
sys 0m1.787s

n: 8000

real 0m57.561s
user 0m57.164s
sys 0m0.266s

n: 10000

real 1m32.799s
user 1m32.526s
sys 0m0.067s

n: 12000

real 2m21.761s
user 2m19.051s
sys 0m2.378s

n: 14000

real 3m31.519s
user 3m28.960s
sys 0m2.005s

n: 16000

real 4m29.952s
user 4m29.121s
sys 0m0.117s

n: 18000

real 6m6.871s
user 6m1.322s
sys 0m4.225s

n: 20000

real 7m10.617s
user 7m9.238s
sys 0m0.186s


After change:

n: 2000

real 0m0.318s
user 0m0.301s
sys 0m0.017s

n: 4000

real 0m0.636s
user 0m0.604s
sys 0m0.030s

n: 6000

real 0m0.968s
user 0m0.915s
sys 0m0.050s

n: 8000

real 0m1.315s
user 0m1.269s
sys 0m0.043s

n: 10000

real 0m1.679s
user 0m1.622s
sys 0m0.053s

n: 12000

real 0m2.023s
user 0m1.956s
sys 0m0.063s

n: 14000

real 0m2.529s
user 0m2.458s
sys 0m0.067s

n: 16000

real 0m2.960s
user 0m2.868s
sys 0m0.087s

n: 18000

real 0m3.383s
user 0m3.251s
sys 0m0.127s

n: 20000

real 0m3.800s
user 0m3.612s
sys 0m0.180s

yurai007 edited reviewers, added: chill; removed: momchil.velikov.Jan 1 2023, 4:34 AM
nikic accepted this revision.Jan 2 2023, 2:31 AM

LGTM

This revision is now accepted and ready to land.Jan 2 2023, 2:31 AM
ChuanqiXu accepted this revision.Jan 2 2023, 6:02 PM

LGTM. Thanks.