aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorchenglin.bi <chenglin.bi@linaro.org>2023-02-10 16:49:56 +0800
committerchenglin.bi <chenglin.bi@linaro.org>2023-02-10 16:52:00 +0800
commit14dedd9cf596d1e6cfd8d24009393e8b8f1a3dc0 (patch)
treec3f5111c593fe6a850e0c4d9cc721f64ee9febce /llvm/lib/Object/MachOObjectFile.cpp
parentd9283e79d826d83ec4d124baede855475e99611b (diff)
downloadllvm-14dedd9cf596d1e6cfd8d24009393e8b8f1a3dc0.zip
llvm-14dedd9cf596d1e6cfd8d24009393e8b8f1a3dc0.tar.gz
llvm-14dedd9cf596d1e6cfd8d24009393e8b8f1a3dc0.tar.bz2
[Reland][LSR] Hoist IVInc to loop header if its all uses are in the loop header
Original code will cause crash when the load/store memory type is structure because isIndexedLoadLegal/isIndexedStore doesn't support struct type. So we limit the load/store memory type to integer. Origin commit message: When the latch block is different from header block, IVInc will be expanded in the latch loop. We can't generate the post index load/store this case. But if the IVInc only used in the loop, actually we still can use the post index load/store because when exit loop we don't care the last IVInc value. So, trying to hoist IVInc to help backend to generate more post index load/store. Fix #53625 Reviewed By: eopXD Differential Revision: https://reviews.llvm.org/D138636
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions