[llvm-dev] MergeLoadStoreMotion and GVNHoist
Luke Drummond via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 2 06:10:23 PDT 2019
Hello
I'm investigating a regression while bumping our target from llvm-4 to
llvm7. We see that common loads are no longer being hoisted by the
MergedLoadStoreMotion pass. We've tracked this issue down to [1]. My
understanding of [1] is that load hoisting is performed by GVNHoist and is
therefore no longer required to be duplicated by MLSM, but as far as I
can tell, GVNHoist is not enabled by default at any standard
optimization level [2][3][4] (it's hidden behind a flag). However the MLSM
code is enabled at any (level > 1).
Is this an oversight?
If this _is_ an oversight, does it make sense to now enable GVNHoist in the same
cases as MLSM i.e. at all optlevels > 1 ?
If not, what is the reason for not enabling this?
All the Best
Luke
[1] [0fbee48d](https://github.com/llvm-mirror/llvm/commit/0fbee48dc4899e045537b9118a65664f1706596c#diff-a1aa52c6b72ac5fb6e39994c431e24c2L537)
[2] https://github.com/llvm-mirror/llvm/blob/3a58154/lib/Transforms/IPO/PassManagerBuilder.cpp#L388-L392
[3] https://github.com/llvm-mirror/llvm/blob/3a58154/lib/Transforms/IPO/PassManagerBuilder.cpp#L325-L326
[4] https://github.com/llvm-mirror/llvm/blob/3a58154/lib/Transforms/IPO/PassManagerBuilder.cpp#L117-L119
--
Codeplay Software Ltd.
Company registered in England and Wales, number: 04567874
Registered office: Regent House, 316 Beulah Hill, London, United Kingdom, SE19 3HF
More information about the llvm-dev
mailing list