diff options
author | Nikita Popov <npopov@redhat.com> | 2023-07-28 15:16:10 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-08-07 10:06:00 +0200 |
commit | 1f37088679a5c2416707d477093950e48148d430 (patch) | |
tree | 778c9413ad5a03cafc16d0cd451b49c5982df68b /clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | |
parent | af07ec316fee636292668cd5a8c1fabcb9091a96 (diff) | |
download | llvm-1f37088679a5c2416707d477093950e48148d430.zip llvm-1f37088679a5c2416707d477093950e48148d430.tar.gz llvm-1f37088679a5c2416707d477093950e48148d430.tar.bz2 |
[Pipelines] Perform hoisting prior to GVN
We currently only enable hoisting in the last SimplifyCFG run of
the function simplification pipeline. In particular this happens
after GVN, which means that instructions that were identical (and
thus hoistable) prior to GVN might no longer be so after it ran,
due to equality replacements (see the phase ordering test).
The history here is that D84108 restricted hoisting to the very
late (module optimization) pipeline only. Then D101468 went back
on that, and also performed it at the end of function simplification.
This patch goes one step further and allows it prior to GVN.
Importantly, we still don't perform hoisting before LoopRotate,
which was the original motivation for delaying it.
Differential Revision: https://reviews.llvm.org/D156532
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
0 files changed, 0 insertions, 0 deletions