<div dir="ltr"><div dir="ltr"><div dir="ltr">Hello,<div><br></div><div>I have written a pass that utilizes an alias analysis to check if an instruction reads a memory location. Here's that check in source code: <a href="https://github.com/eHammarstrom/llvm-dbds/blob/dbds/lib/Transforms/Scalar/BlockDuplicator.cpp#L640">https://github.com/eHammarstrom/llvm-dbds/blob/dbds/lib/Transforms/Scalar/BlockDuplicator.cpp#L640</a></div><div><br></div><div>This check seems to fail when not supplying `-fno-inline-functions` to `MAKEOPT` in LNT. This results in what seems like a massive memory leak. When passing the aforementioned flag all tests pass and we may measure performance.</div><div><br></div><div>When only running `clang -O3` on small test cases I see that illegal optimizations are applied without the use of `-fno-inline-functions` -- i.e. the previously mentioned check fails. The pass is statically linked to the function simplification pass here: <a href="https://github.com/eHammarstrom/llvm-dbds/blob/2ec7e32c8026f8ae2c8540e9040b3043e6d30429/lib/Transforms/IPO/PassManagerBuilder.cpp#L416">https://github.com/eHammarstrom/llvm-dbds/blob/2ec7e32c8026f8ae2c8540e9040b3043e6d30429/lib/Transforms/IPO/PassManagerBuilder.cpp#L416</a></div><div><br></div><div>Why is the alias analysis seemingly lost on function inlining?</div><div><br></div><div>BR,</div><div>Emil</div></div></div></div>