From d99371f9a045b6065c5b9ca34d7715e1f4ce11a3 Mon Sep 17 00:00:00 2001 From: Alina Sbirlea Date: Wed, 16 Oct 2019 21:52:09 +0000 Subject: [PATCH] Update ReleaseNotes: expand the section on enabling MemorySSA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375045 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.rst | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 5899cb867ec..796b0524e0f 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -41,7 +41,20 @@ Non-comprehensive list of changes in this release for adding a new subsection. * The ISD::FP_ROUND_INREG opcode and related code was removed from SelectionDAG. -* Enabled MemorySSA as a loop dependency. +* Enabled MemorySSA as a loop dependency. Since + `r370957 `_ + (`D58311 `_ ``[MemorySSA & LoopPassManager] + Enable MemorySSA as loop dependency. Update tests.``), the MemorySSA analysis + is being preserved and used by a series of loop passes. The most significant + use is in LICM, where the instruction hoisting and sinking relies on aliasing + information provided by MemorySSA vs previously creating an AliasSetTracker. + The LICM step of promoting variables to scalars still relies on the creation + of an AliasSetTracker, but its use is reduced to only be enabled for loops + with a small number of overall memory instructions. This choice was motivated + by experimental results showing compile and run time benefits or replacing the + AliasSetTracker usage with MemorySSA without any performance penalties. + The fact that MemorySSA is now preserved by and available in a series of loop + passes, also opens up opportunities for its use in those respective passes. .. NOTE If you would like to document a larger change, then you can add a -- 2.40.0