[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