Use MemorySSA for memory dependency checking in EarlyCSE pass at the
start of addFunctionSimplificationPasses at O2 and higher.
Details
- Reviewers
• dberlin
Diff Detail
- Build Status
Buildable 778 Build 778: arc lint + arc unit
Event Timeline
Compile-time increases from llvm-test-suite O3 -mcpu=kryo:
llvm-test-suite/MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4:normal +1.078%
llvm-test-suite/SingleSource/Benchmarks/Misc-C++-EH/spirit:normal +1.333%
llvm-test-suite/MultiSource/Applications/kimwitu++/kc:normal +1.493%
llvm-test-suite/MultiSource/Applications/sqlite3/sqlite3:normal +1.650%
No compile-time increases at O2
Notable performance improvements:
llvm-test-suite/fftbench +16%
spec2000/bzip2 +10%
This seems like a reasonable tradeoff, but I'd really like to hear from someone more familiar with the general status of MemorySSA. Is it ready to be on by default?
I haven't gotten a change to do this yet, but one thing I'd like to try out is moving GVNHoist to just after this pass of EarlyCSE, which should eliminate one of the MemorySSA construction passes. I discussed this with @sebpop and he seemed amenable.
Abandoning this. EarlyCSE w/ MemorySSA will be enabled once the ongoing round of fuzz testing and related bug fixing is completed.