[clang-tools-extra] [llvm] [clang] [LLVM] Add IRNormalizer Pass (PR #68176)

Michal Paszkowski via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 10 19:44:06 PST 2023


michalpaszkowski wrote:

[Here are the slides](https://llvm.org/devmtg/2019-10/slides/Paszkowski-LLVMCanon.pdf) that were presented at the LLVM Dev Meeting in 2019. It might be useful to include the link in the commit message for reference.

@nikic Thanks for catching more things in the review! Especially the commutative ordering of operands/arguments.

When it comes to including hashes in the naming algorithm (renaming is controlled using an option for already named values), the ideas is that by just looking at an instruction further down (a use) you can tell whether any inputs are different. And the other way around, by looking at initial instructions you can see how their "output footprint" has changed after transformations.

The example below is a bit outdated, but reflects the general idea we had when considering naming algorithms:
<img width="1327" alt="image" src="https://github.com/llvm/llvm-project/assets/13875746/fdb85b98-bce9-48df-91c0-35ffd115bae0">
<img width="1323" alt="image" src="https://github.com/llvm/llvm-project/assets/13875746/24d74cf1-ad21-47c0-9057-6065c7a4f472">


https://github.com/llvm/llvm-project/pull/68176


More information about the cfe-commits mailing list