[all-commits] [llvm/llvm-project] c251bf: [LoopInterchange] Remove a limitation in LoopInter...
CongzheUalberta via All-commits
all-commits at lists.llvm.org
Thu Jan 6 12:58:18 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c251bfc3b9de2b18abbb9c34762e08d2ee3975f8
https://github.com/llvm/llvm-project/commit/c251bfc3b9de2b18abbb9c34762e08d2ee3975f8
Author: Congzhe Cao <congzhe.cao at huawei.com>
Date: 2022-01-06 (Thu, 06 Jan 2022)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/currentLimitation.ll
M llvm/test/Transforms/LoopInterchange/interchangeable.ll
M llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
Log Message:
-----------
[LoopInterchange] Remove a limitation in LoopInterchange legality
There was a limitation in legality that in the original inner loop latch,
no instruction was allowed between the induction variable increment
and the branch instruction. This is because we used to split the
inner latch at the induction variable increment instruction. Since
now we have split at the inner latch branch instruction and have
properly duplicated instructions over to the split block, we remove
this limitation.
Please refer to the test case updates to see how we now interchange
loops where instructions exist between the induction variable
increment and the branch instruction.
Reviewed By: bmahjour
Differential Revision: https://reviews.llvm.org/D115238
More information about the All-commits
mailing list