[all-commits] [llvm/llvm-project] 46d5d2: [PowerPC] Improve kill flag computation and add ve...
Nemanja Ivanovic via All-commits
all-commits at lists.llvm.org
Fri Sep 22 12:26:53 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 46d5d264fc66a017bbd0182b2b5fcc0f3f23d3be
https://github.com/llvm/llvm-project/commit/46d5d264fc66a017bbd0182b2b5fcc0f3f23d3be
Author: Nemanja Ivanovic <nemanja.i.ibm at gmail.com>
Date: 2023-09-22 (Fri, 22 Sep 2023)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.h
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
M llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
M llvm/test/CodeGen/PowerPC/O3-pipeline.ll
M llvm/test/CodeGen/PowerPC/combine-sext-and-shl-after-isel.ll
M llvm/test/CodeGen/PowerPC/convert-ri-addi-to-ri.mir
M llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-kill-flag.mir
M llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir
M llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir
M llvm/test/CodeGen/PowerPC/fixup-kill-dead-flag-crash.mir
M llvm/test/CodeGen/PowerPC/fold-rlwinm.mir
M llvm/test/CodeGen/PowerPC/mi-peephole.mir
M llvm/test/CodeGen/PowerPC/opt-cmp-rec-postra.mir
M llvm/test/CodeGen/PowerPC/peephole-miscompile-extswsli.mir
M llvm/test/CodeGen/PowerPC/peephole-phi-acc.mir
M llvm/test/CodeGen/PowerPC/remove-redundant-li-implicit-reg.mir
M llvm/test/CodeGen/PowerPC/rlwinm_rldicl_to_andi.mir
M llvm/test/CodeGen/PowerPC/sext_elimination.mir
Log Message:
-----------
[PowerPC] Improve kill flag computation and add verification after MI peephole
The MI Peephole pass has grown to include a large number of transformations over the years. Many of the transformations require re-computation of kill flags but don't do a good job of re-computing them. This causes us to have very common failures when the compiler is built with expensive checks. Over time, we added and augmented a function that is supposed to go and fix up kill flags after each transformation but we keep missing cases.
This patch does the following:
- Removes the function to re-compute kill flags
- Adds LiveVariables to compute and maintain kill flags while transforming code
- Adds re-computation of kill flags for the post-RA peepholes for each block that contains a transformed instruction
Reviewed By: stefanp
Differential Revision: https://reviews.llvm.org/D133103
More information about the All-commits
mailing list