[all-commits] [llvm/llvm-project] a67eb2: [RDA][ARM][LowOverheadLoops] Iteration count IT bl...
Sam Parker via All-commits
all-commits at lists.llvm.org
Mon Feb 24 05:52:05 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: a67eb221e2281350eeab5dd4b9119895c500674c
https://github.com/llvm/llvm-project/commit/a67eb221e2281350eeab5dd4b9119895c500674c
Author: Sam Parker <sam.parker at arm.com>
Date: 2020-02-24 (Mon, 24 Feb 2020)
Changed paths:
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir
Log Message:
-----------
[RDA][ARM][LowOverheadLoops] Iteration count IT blocks
Change the way that we remove the redundant iteration count code in
the presence of IT blocks. collectLocalKilledOperands has been
introduced to scan an instructions operands, collecting the killed
instructions and then visiting them too. This is used to delete the
code in the preheader which calculates the iteration count. We also
track any IT blocks within the preheader and, if we remove all the
instructions from the IT block, we also remove the IT instruction.
isSafeToRemove is used to remove any redundant uses of the iteration
count within the loop body.
Differential Revision: https://reviews.llvm.org/D74975
More information about the All-commits
mailing list