This is an archive of the discontinued LLVM Phabricator instance.

[DSE] Model reads after returning explicitly in MemSSA.
Needs ReviewPublic

Authored by fhahn on Feb 15 2022, 12:04 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

This allows removing the post-dominance/CFG checks, after the full read
check.

This catches a tiny amount of additional cases, because we are not
restricted to the CFG traversal limit.

For MultiSource/SPEC2006/SPEC2017 on X86 with -O3:

Program base patch diff
test-suite...Source/Benchmarks/sim/sim.test 4.00 6.00 50.0%
test-suite...epsjeng_r/531.deepsjeng_r.test 44.00 48.00 9.1%
test-suite...T2006/445.gobmk/445.gobmk.test 46.00 47.00 2.2%
test-suite...ate/525.x264_r/525.x264_r.test 400.00 402.00 0.5%
test-suite...7rate/502.gcc_r/502.gcc_r.test 1241.00 1246.00 0.4%
test-suite...-typeset/consumer-typeset.test 766.00 767.00 0.1%
test-suite...6.blender_r/526.blender_r.test 3743.00 3745.00 0.1%

Compile-time wise this is mostly neutral
https://llvm-compile-time-tracker.com/compare.php?from=dd145f953db3dafbc019f1d3783bb4f09a28af92&to=55c8c0b5ec1257c46b004e6247c327b8677dc6cc&stat=instructions

See D119760.

Diff Detail