[all-commits] [llvm/llvm-project] 1d0244: Reapply CycleInfo: Introduce cycles as a generaliz...
Sameer Sahasrabuddhe via All-commits
all-commits at lists.llvm.org
Fri Dec 10 01:08:40 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1d0244aed78114d5bd03ec4930d7687d6e587f99
https://github.com/llvm/llvm-project/commit/1d0244aed78114d5bd03ec4930d7687d6e587f99
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2021-12-10 (Fri, 10 Dec 2021)
Changed paths:
A llvm/docs/CycleTerminology.rst
M llvm/docs/UserGuides.rst
A llvm/docs/cycle-1.png
A llvm/docs/cycle-2.png
A llvm/docs/cycle-3.png
A llvm/include/llvm/ADT/GenericCycleImpl.h
A llvm/include/llvm/ADT/GenericCycleInfo.h
A llvm/include/llvm/ADT/GenericSSAContext.h
A llvm/include/llvm/Analysis/CycleAnalysis.h
A llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
M llvm/include/llvm/CodeGen/MachinePassRegistry.def
A llvm/include/llvm/CodeGen/MachineSSAContext.h
A llvm/include/llvm/IR/SSAContext.h
M llvm/include/llvm/InitializePasses.h
M llvm/lib/Analysis/Analysis.cpp
M llvm/lib/Analysis/CMakeLists.txt
A llvm/lib/Analysis/CycleAnalysis.cpp
M llvm/lib/CodeGen/CMakeLists.txt
M llvm/lib/CodeGen/CodeGen.cpp
A llvm/lib/CodeGen/MachineCycleAnalysis.cpp
A llvm/lib/CodeGen/MachineSSAContext.cpp
M llvm/lib/IR/CMakeLists.txt
A llvm/lib/IR/SSAContext.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
A llvm/test/Analysis/CycleInfo/basic.ll
A llvm/test/CodeGen/X86/cycle-info.mir
Log Message:
-----------
Reapply CycleInfo: Introduce cycles as a generalization of loops
Reverts 02940d6d2202. Fixes breakage in the modules build.
LLVM loops cannot represent irreducible structures in the CFG. This
change introduce the concept of cycles as a generalization of loops,
along with a CycleInfo analysis that discovers a nested
hierarchy of such cycles. This is based on Havlak (1997), Nesting of
Reducible and Irreducible Loops.
The cycle analysis is implemented as a generic template and then
instatiated for LLVM IR and Machine IR. The template relies on a new
GenericSSAContext template which must be specialized when used for
each IR.
This review is a restart of an older review request:
https://reviews.llvm.org/D83094
Original implementation by Nicolai Hähnle <nicolai.haehnle at amd.com>,
with recent refactoring by Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Differential Revision: https://reviews.llvm.org/D112696
More information about the All-commits
mailing list