[PowerPC] move ctrloop pass before tail duplication
authorChen Zheng <czhengsz@cn.ibm.com>
Fri, 2 Dec 2022 03:58:03 +0000 (22:58 -0500)
committerChen Zheng <czhengsz@cn.ibm.com>
Fri, 2 Dec 2022 05:31:00 +0000 (00:31 -0500)
commitb61ff0ca76a50e6eb2b110084b690823b94ff77f
treeae26cc92dd1a52c34a5e1eb34eb065b199f8ab25
parentdff8227189b4b6008143a4dd28f50eaa269a55c8
[PowerPC] move ctrloop pass before tail duplication

Tail duplication may modify the loop to a "non-canonical" form
that CTR Loop pass can not recognize. We fixed one issue in D135846.
And we found in some other case, the loop is changed to irreducible form.
It is hard to fix this case in CTR loop pass, instead we reorder the
CTR loop pass before tail duplication pass and just after finalize-isel
pass to avoid any unexpected change to the loop form.

Reviewed By: lkail

Differential Revision: https://reviews.llvm.org/D138265
llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
llvm/test/CodeGen/PowerPC/O3-pipeline.ll