[all-commits] [llvm/llvm-project] 63917e: [MachineLICM] Allow hoisting loads from invariant ...
Igor Kirillov via All-commits
all-commits at lists.llvm.org
Thu Nov 16 03:12:23 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 63917e1975bd69ef4084f02d378b0b920046be3a
https://github.com/llvm/llvm-project/commit/63917e1975bd69ef4084f02d378b0b920046be3a
Author: Igor Kirillov <igor.kirillov at arm.com>
Date: 2023-11-16 (Thu, 16 Nov 2023)
Changed paths:
M llvm/lib/CodeGen/MachineLICM.cpp
A llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
M llvm/test/CodeGen/AArch64/sinksplat.ll
M llvm/test/CodeGen/AArch64/zext-to-tbl.ll
M llvm/test/CodeGen/Hexagon/reg-scavengebug-2.ll
M llvm/test/CodeGen/Hexagon/swp-const-tc2.ll
M llvm/test/CodeGen/Mips/lcb5.ll
M llvm/test/CodeGen/RISCV/rvv/fold-scalar-load-crash.ll
M llvm/test/CodeGen/X86/2009-04-25-CoalescerBug.ll
M llvm/test/CodeGen/X86/block-placement.ll
M llvm/test/CodeGen/X86/fma-commute-loop.ll
M llvm/test/CodeGen/X86/pr49393.ll
M llvm/test/CodeGen/X86/pr53842.ll
Log Message:
-----------
[MachineLICM] Allow hoisting loads from invariant address (#70796)
Sometimes, loads can appear in a loop after the LICM pass is executed
the final time. For example, ExpandMemCmp pass creates loads in a loop,
and one of the operands may be an invariant address.
This patch extends the pre-regalloc stage MachineLICM by allowing to
hoist invariant loads from loops that don't have any stores or calls
and allows load reorderings.
More information about the All-commits
mailing list