[all-commits] [llvm/llvm-project] f0af11: [DDG] Data Dependence Graph - Pi Block
Bardia Mahjour via All-commits
all-commits at lists.llvm.org
Fri Nov 8 12:47:48 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: f0af11d86f81620096a87ffeb50267598d88e5b6
https://github.com/llvm/llvm-project/commit/f0af11d86f81620096a87ffeb50267598d88e5b6
Author: bmahjour <bmahjour at ca.ibm.com>
Date: 2019-11-08 (Fri, 08 Nov 2019)
Changed paths:
A llvm/include/llvm/ADT/EnumeratedArray.h
M llvm/include/llvm/Analysis/DDG.h
M llvm/include/llvm/Analysis/DependenceGraphBuilder.h
M llvm/lib/Analysis/DDG.cpp
M llvm/lib/Analysis/DependenceGraphBuilder.cpp
M llvm/test/Analysis/DDG/basic-a.ll
M llvm/test/Analysis/DDG/basic-b.ll
M llvm/test/Analysis/DDG/basic-loopnest.ll
M llvm/test/Analysis/DDG/root-node.ll
M llvm/unittests/ADT/CMakeLists.txt
A llvm/unittests/ADT/EnumeratedArrayTest.cpp
Log Message:
-----------
[DDG] Data Dependence Graph - Pi Block
Summary:
This patch adds Pi Blocks to the DDG. A pi-block represents a group of DDG
nodes that are part of a strongly-connected component of the graph.
Replacing all the SCCs with pi-blocks results in an acyclic representation
of the DDG. For example if we have:
{a -> b}, {b -> c, d}, {c -> a}
the cycle a -> b -> c -> a is abstracted into a pi-block "p" as follows:
{p -> d} with "p" containing: {a -> b}, {b -> c}, {c -> a}
In this implementation the edges between nodes that are part of the pi-block
are preserved. The crossing edges (edges where one end of the edge is in the
set of nodes belonging to an SCC and the other end is outside that set) are
replaced with corresponding edges to/from the pi-block node instead.
Authored By: bmahjour
Reviewer: Meinersbur, fhahn, myhsu, xtian, dmgreen, kbarton, jdoerfert
Reviewed By: Meinersbur
Subscribers: ychen, arphaman, simoll, a.elovikov, mgorny, hiraditya, jfb, wuzish, llvm-commits, jsji, Whitney, etiotto, ppc-slack
Tag: #llvm
Differential Revision: https://reviews.llvm.org/D68827
More information about the All-commits
mailing list