1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

[LICM][docs] Document that LICM is also a canonicalization transform. NFC.

This documents that LICM is a canonicalization transform, which we discussed
recently in:

http://lists.llvm.org/pipermail/llvm-dev/2020-December/147184.html

but which was also discused earlier, e.g. in:

http://lists.llvm.org/pipermail/llvm-dev/2019-September/135058.html
This commit is contained in:
Sjoerd Meijer 2020-12-08 11:39:46 +00:00
parent c5ff87098f
commit 34ffe52cbc
2 changed files with 13 additions and 0 deletions

View File

@ -720,6 +720,12 @@ into the preheader block, or by sinking code to the exit blocks if it is safe.
This pass also promotes must-aliased memory locations in the loop to live in
registers, thus hoisting and sinking "invariant" loads and stores.
Hoisting operations out of loops is a canonicalization transform. It enables
and simplifies subsequent optimizations in the middle-end. Rematerialization
of hoisted instructions to reduce register pressure is the responsibility of
the back-end, which has more accurate information about register pressure and
also handles other optimizations than LICM that increase live-ranges.
This pass uses alias analysis for two purposes:
#. Moving loop invariant loads and calls out of loops. If we can determine

View File

@ -12,6 +12,13 @@
// safe. This pass also promotes must-aliased memory locations in the loop to
// live in registers, thus hoisting and sinking "invariant" loads and stores.
//
// Hoisting operations out of loops is a canonicalization transform. It
// enables and simplifies subsequent optimizations in the middle-end.
// Rematerialization of hoisted instructions to reduce register pressure is the
// responsibility of the back-end, which has more accurate information about
// register pressure and also handles other optimizations than LICM that
// increase live-ranges.
//
// This pass uses alias analysis for two purposes:
//
// 1. Moving loop invariant loads and calls out of loops. If we can determine