36 citations found. Retrieving documents...
Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI), pages 171--185. ACM Press, 1994.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Static Single Information Form - Ananian, Rinard (1999)   (1 citation)  (Correct)

....) construction of SSI form, and present a new algorithm for variable renaming in SSI form after and functions are placed. Our construction algorithm begins with a program structure tree of single entry single exit (SESE) regions, constructed as described by Johnson, Pearson, and Pingali [9]. We split the construction of SSI form into two parts: placing and functions and renaming variables. The placement algorithm runs in O(NV 0 ) time, and is presented as Algorithm A.1 on page 12. The algorithm is parameterized on a function called MaybeLive. For minimal SSI form, MaybeLive ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation (PLDI), pages 171-185, Orlando, Florida, June 1994.


Code Compaction of Matching Single-Entry Multiple-Exit Regions - Chen, Li, Gupta (2003)   (1 citation)  (Correct)

....is needed because larger SEME regions are formed by combining smaller SEME regions. Using this graph we will be able to explore all possible SEME regions that can be formed for a given control ow graph. While an algorithm for decomposing a program into a hierarchy of SESE regions exists [9], no such algorithm has been developed for SEME regions. Next we present an algorithm that we have developed for building a RHG for SEME regions. For this purpose we rst construct the control dependence graph (CDG) 5] corresponding to the given CFG. Let us brie y review the structure of the CDG ....

R. Johnson, D. Pearson, and K. Pingali, \The Program Structure Tree: Computing Control Regions in Linear Time," SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 171-185, 1994.


The Static Single Information Form - Ananian (1999)   (1 citation)  (Correct)

....to undirected graph (from [18] 25 5.4 Datatypes and operations for the cycle equivalency algorithm. 26 5.5 Control flow graph and cycle equivalent edges. 28 5.6 Datatypes and operations used in construction of the PST. 30 5.7 SESE regions and PST for the CFG of Figure 5. 5 (from [19]) 32 5.8 An flowgraph where Algorithm 5.3 places OE functions conservatively. 37 5.9 Environment datatype for the SSI renaming algorithm. 47 5.10 Datatypes and operations used in unused code elimination. 47 5.11 A worst case CFG for ....

....of the birthpoints introduced in [34] Despite industry adoption of SSA form in production compilers [8, 9] academic research into alternative representations continues. Recent proposals have included Value Dependence Graphs [45] Program Dependence Webs [5] the Program Structure Tree [19], DJ graphs [39] and Depedence Flow Graphs [20] In comparison to these representations, the dominant characteristics of our Static Single Information form may be summarized as follows: ffl It names information units. ffl It is complete. ffl It is simple. ffl It is efficient. ffl It has no ....

[Article contains additional citation context not shown here]

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation (PLDI), pages 171--185, Orlando, Florida, June 1994.


Simple Generation of Static Single-Assignment Form - Aycock, Horspool (2000)   (5 citations)  (Correct)

.... second order e ects created during redundancy elimination. 5.2 Nonreducible CFGs The work of Cytron et al. 10] is the method for generating SSA form we described in Sect. 2. Cytron and Ferrante [9] later re ned their method so that it runs in almost linear time. Johnson, Pearson, and Pingali [16] demonstrate conversion to SSA form as an application of their program structure tree, a decomposition of the control ow graph into single entry, single exit regions. They claim that using this graph representation allows them to avoid areas in the control ow graph that do not contribute to a ....

R. Johnson, D. Pearson, and K. Pingali. The Program Structure Tree: Computing Control Regions in Linear Time. ACM PLDI '94, pp. 171-185.


Restructuring Programs By Tucking Statements Into Functions - Lakhotia, Deprez (1999)   (16 citations)  (Correct)

....its pair of entry and exit nodes, i.e. AS U7V C6W U7V G , or (c) by the set of nodes in the subgraph, i.e. In the following discussion we use the three representations interchangeably. Our foldable SESE subgraph is different from the SESE region of Johnson, Pearson, and Pingali (JPP) [JPP94]. The single entry, single exit condition of a JPP SESE region is defined in terms of a pair of edges, not a pair of nodes. In addition a JPP SESE region also has a stronger constraint that every cycle containing the start edge also contains the end edge, and vice versa. The JPP definition is ....

....foldable subgraphs containing a given set of seed statements, the problem may be split into two steps. First, identify all the foldable subgraphs containing the seed statements. Second, select one foldable subgraph and use it as a parameter for tuck. Johnson et al. s definition of SESE region [JPP94] is stronger than our definition of a foldable (SESE) subgraph, in that every JPP SESE region also defines a foldable subgraph, whereas there may be foldable subgraphs that do not define a JPP SESE region. The JPP SESE regions of a program can be ordered as a tree, called the program structure ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI), pages 171--185. ACM Press, 1994.


Timed Dependence Flow Graphs, an Intermediate Form for Verified.. - Chapman (1994)   (Correct)

.... [BJP91, Bec92] Dependence flow graphs integrate data and control dependence information into a single structure, making efficient algorithms for program analysis and optimization possible [JP93, Joh95] Dependence flow graphs for even unstructured code can be constructed in linear time [JPP94] Also, dependence flow graphs possess a compositional formal execution semantics. PBJ 91] The author adapted the original dependence flow graphs for use in the BEDROC high level synthesis system [LCA 93] a system that translated a specification written as single sequential process in ....

....to include a specification for computing the time value to be associated with any output token that is generated. 4 Construction and Synthesis A VHDL process has a control flow structure like that of an imperative program, and the construction algorithms for dependence flow graphs from FORTRAN [JPP94] can be used. This two phase algorithm first discovers control dependence equivalence regions in the process, then routes dfg dependences edges for all appropriate data items and resources into the control dependence regions in which they are used. The dfg for a single control dependence region ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming language design and implementation. ACM, 1994.


Partial Redundancy Elimination in SSA Form - Kennedy, Chan, LIU, LO, TU, CHOW (1999)   (12 citations)  (Correct)

....2. Figure 5 shows our running example program after the Phi Insertion step. Both Phi s in that figure are justified by real occurrences of a b and by the presence of OE s for the variable a. Other algorithms for SSA OE placement with linear time complexity can also be used to place Phi s [Johnson et al. 1994; Sreedhar and Gao 1995] We adapt the algorithm from [Cytron et al. 1991] because it is easier to understand and implement. To make the details of the following lemma precise, we establish the following definition. Intuitively it is intended to capture the set of points in the program where the ....

....else F F Gamma ffg end Finalize 2 Fig. 13. Algorithm for the second part of Finalize in its redundancy class to refer to a different class that defines the value of the Phi. FRG minimization can be implemented as a variant of the OE insertion step in SSA construction [Cytron et al. 1991; Johnson et al. 1994; Sreedhar and Gao 1995] We initially mark all the Phi s as being extraneous. Applying the OE insertion algorithm, we can find and mark the Phi s that are not extraneous based on the iterated dominance frontier of the set of real occurrences with the save flag set plus the inserted ....

Johnson, R., Pearson, D., and Pingali, K. 1994. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. 171--185.


A New Algorithm for Partial Redundancy Elimination.. - Chow, Chan, Kennedy, .. (1997)   (33 citations)  (Correct)

....the Var phis[i] j] s. The full algorithm for the Phi Insertion step is given in Fig. 4. By using this demand driven technique, we take advantage of the SSA representation in the input program. Other algorithms for SSA OE placement with linear time complexity can also be used to place Phi s [JPP94, SG95] We adapt the algorithm from [CFR 91] because it is easier to understand and implement. Lemma 1 (Sufficiency of Phi insertion) If B is a basic block where no expression Phi is inserted and the expression is partially anticipated at the entry to B, exactly one evaluation of the ....

....and may affect the efficiency of other SSAbased optimizations to be applied after PRE. Removing extraneous Phi s also requires changing their uses to refer to their replacing versions. SSA minimization can be implemented as a variant of the OE insertion step in SSA construction [CFR 91, JPP94, SG95] We initially mark all the Phi s as being extraneous. Applying the OE insertion algorithm, we can find and mark the Phi s that are not extraneous based on the iterated dominance frontier of the set of real assignments to h in the program (i.e. real occurrences with the save bit set plus ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, June 1994.


Optimizing Sparse Representations for Dataflow Analysis - Ruf (1995)   (4 citations)  (Correct)

.... proxy node assures that the pointer valued (and thus interesting) formals from and to cannot be deleted as dead code. Our approach of using the same intermediate representation for the original and specialized graphs differs from existing work on sparse graph based techniques [ASU86, CCF91, JPP94] which build their sparse representations directly from control flow graphs. Doing so might allow for a more space efficient representation by avoiding duplication of entire VDG nodes. However, using a real VDG for the sparse graph has advantages: ffl Existing analyses are applicable; there s ....

....for each points to relation in the store during analysis. This approach of first building a simplistic specialized graph and then optimizing it differs from existing approaches to specialized graph construction. Both the sparse evaluation graph (SEG) CCF91] and the quick propagation graph (QPG) JPP94] approaches construct an optimized sparse graph from the original control flow graph. SEGs use a dominance frontier method similar to that used in SSA construction to decide where to place meet operations (a newer construction, described in [CF93] uses a more efficient partitioning algorithm) ....

[Article contains additional citation context not shown here]

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 171-- 185. ACM Press, June 20-24, 1994.


Code Compression Techniques for Embedded Systems - Nyström, Runeson, Sjödin   (Correct)

....of 1 and 2. However, the region consisting of nodes 1, 2 and 3 has two entry points, the edge from start to 1, and the back edge from 4 to 2. To identify fragments of flow graphs which have a single entry and a single exit we use the techniques described by Johnson, Pearson and Pingali [9]. Their techniques require that a node n may not have both multiple predecessors and multiple successors. Any flow graph can easily be transformed to satisfy this requirement by inserting extra nodes. A single entry single exit (SESE) region in a flow graph is an edge pair (a; b) where 1. the ....

....Figure 2 shows the PST for the flow graph in Figure 1. We define the rank of a region to be zero if it is a leaf in the program structure tree, and one plus the rank of its child with highest rank, otherwise. A B C D E F G root Fig. 2. Program structure tree for Figure 1 Johnson et al. [9] describe a linear algorithm to locate the canonical SESE regions of a flow graph. 4 Regular Code Compression We first consider a straight forward matching where two canonical single entry single exit regions match if they only differ in their use of temporaries. A temporary either holds an ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proc. Conf. on Programming Languages Design and Implementation, pages 171--185, 1994. Sven-Olof Nystrom, Johan Runeson and Jan Sjodin: Code Compression Techniques for Embedded Systems


Continuous Profiling: Where Have All the Cycles Gone? - Anderson, BERC, DEAN.. (1997)   (12 citations)  (Correct)

....edges (e.g. from calls to longjmp) nor does it note their absence. 6.1.2 Determining Frequency Equivalence. If the CFG is noted as missing edges, each block and each edge is assigned its own equivalence class. Otherwise, we use an extended version of the cycle equivalence algorithm in Johnson et al. 1994] to identify sets of blocks and edges that are guaranteed to be executed the same number of times. Each such set constitutes one equivalence class. Our extension to the algorithm is for handling CFG s with infinite loops, e.g. the idle loop of an operating system. 6.1.3 Estimating Frequency from ....

JOHNSON, R., PEARSON, D., AND PINGALI, K. 1994. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. ACM, New York, 171--185.


Code Compression through Procedural Abstraction before Register.. - Runeson (2000)   (4 citations)  (Correct)

....the semantics of the program, the control flow of that region must also have a single entry point, and a single exit point. The concept of a single entry single exit region is deceptively hard to define rigorously. The definition given here is based on the work of Johnson, Pearson, and Pingali [7]. Definition 6 A single entry single exit region R in a graph G is an ordered edge pair (a, b) of distinct control flow edges a and b where 1. a dominates b in G, 2. b postdominates a in G, and 3. every cycle in G containing a also contains b and vice versa. We will call a the entry of the ....

....flow graph is the entry of at most one canonical region, and the exit of at most one canonical region. As an example, all the regions in Figure 1 are canonical. It can be shown that for two canonical single entry single exit regions R 1 and R 2 , one of the two following statements applies [7]. 1. R 1 and R 2 are node disjoint, that is, no node is contained in both R 1 and R 2 . 2. All nodes in R 1 are contained in R 2 , or vice versa. FIGURE 1. Control flow graph with canonical single entry single exit regions. block node split node merge node start end A B C D E F G ....

[Article contains additional citation context not shown here]

Richard Johnson, David Pearson, and Keshav Pingali. The Program Structure Tree: Computing Control Regions in Linear Time. In Proc. Conf. of Programming Languages and Systems, 18(3):300-324, May 1996.


Range Searching Over Tree Cross Products - Buchsbaum, Goodrich, Westbrook (2000)   (10 citations)  (Correct)

....and we also improve their bounds. Finally, we consider nding hammocks in directed graphs. These are regions of nodes that are separated from designated source and sink nodes by the equivalent of articulation points. Hammocks have been studied in the context of compiler control ow analysis [17], in which solutions to the problem of nding all hammocks o line are known. We present the rst results for nding hammocks on line, with an application to software system analysis [5] 1.2 Our Results. We contribute a formal de nition of tree cross product operations, and we relate them to ....

....if every path from s to v goes through u. A node v post dominates a node u if every path from u to t goes through v. The hammock between two nodes u and v is the set of nodes dominated by u and post dominated by v. This modi es the de nition due to Kas janov [18] Johnson, Pearson, and Pingali [17] de ne a canonical, nested hammock structure, which is useful in compiler control ow analysis, and devise an O(m) time algorithm to discover it. n = jV j, and m = jEj. No previous result, however, allows ecient, on line queries of the form: return the hammock between two given nodes. Such ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proc. ACM SIGPLAN PLDI '94, pages 171-85, 1994.


Timed Dependence Flow Graphs, an Intermediate Form for Verified.. - Chapman   (Correct)

.... for conventional architectures [1] Dependence flow graphs integrate data and control dependence information into a single structure, making efficient algorithms for program analysis and optimization possible [8] Dependence flow graphs for even unstructured code can be constructed in linear time [7]. Also, dependence flow graphs possess a compositional formal execution semantics. 11] The author adapted the original dependence flow graphs for use in the BEDROC high level synthesis system [9] a system that translated a specification written as single sequential process in the hardware ....

....other nodes, which are mostly straightforward extensions of the rules for hardware dependence flow graphs [2] IV. CONSTRUCTION AND SYNTHESIS A VHDL process has a control flow structure like that of an imperative program, and the construction algorithms for dependence flow graphs from FORTRAN [7] can be used. This two phase algorithm first discovers control dependence equivalence regions in the process, then routes dfg dependences edges for all appropriate data items and resources into the control dependence regions in which they are used. The dfg for a single control dependence region is ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming language design and implementation. ACM, 1994.


Continuous Profiling: Where Have All the Cycles Gone? - Anderson, Berc, Dean.. (1997)   (12 citations)  (Correct)

....edges (e.g. from calls to longjmp) nor does it note their absence. 6.1.2 Determining Frequency Equivalence If the CFG is noted as missing edges, each block and each edge is assigned its own equivalence class. Otherwise, we use an extended version of the cycle equivalence algorithm in [14] to identify sets of blocks and edges that are guaranteed to be executed the same number of times. Each such set constitutes one equivalence class. Our extension to the algorithm is for handling CFG s with infinite loops, e.g. the idle loop of an operating system. 6.1.3 Estimating Frequency From ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, 1994.


Compiling For Multithreaded Architectures - Tang (1999)   (1 citation)  (Correct)

....in which the control structure and data dependences of a program are represented in a hierarchical fashion. A PDFG graph can be easily built based on the program structure tree (PST) representation. A PST tree of a program is a hierarchical representation of the control structure of the program [71]. A PDFG s0: for (i=0; i BuferSize; i ) s1: symbol = Buffer[i] s2: w = Weight[i] s3: r = 0; s4: list = listheader; s5: while (list = NULL) s6: entry = list symbol; s7: if (entry = symbol) s8: r = r w; s9: list = list next; s10: r1 = 0; s11: list1 = listheader1; s12: while ....

....statement (such as S 0 , S 5 , and S 12 ) containing one or more nested regions, is represented by an internal node. Such an internal node is also called a region node. Similar to the concept of basic blocks, a basic region is a sequence of regions (also called sequentially composed regions in [71]) such that the nodes in the same basic region have the same parent in the PST with the identical control dependence. In the figure, dash edged rectangles outline these basic regions: B1, B2, and B3. For example, the compound whileloop statement S 5 contains one subcomponent (loop body) which is ....

[Article contains additional citation context not shown here]

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, June 20--24, 1994. SIGPLAN Notices, 29(6), June 1994.


Designing Intermediate Representations for Optimization - Mock (1997)   (Correct)

....statement S2 is to be executed. For example, in figure 6 basic block B4 is control dependent on basic block B1 since it is only executed, if the branch labeled N is taken from B1; all nodes on the path B1 B3 B4 are postdominated by B4, and B4 itself does not postdominate B1. Johnson et al. JPP94] define the program structure tree (PST) that represents the program s control structure hierarchically in a tree of single entry single exit (SESE) regions. Their definition of a SESE region guarantees that two SESE regions are either disjoint, nested or sequentially composed, i.e. the exit ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. ACM SIGPLAN Notices, 29(6):171-- 185, 1994.


Continuous Profiling: Where Have All the Cycles Gone? - Jennifer M. Anderson.. (1997)   (12 citations)  (Correct)

....edges (e.g. from calls to longjmp) nor does it note their absence. 6.1.2 Determining Frequency Equivalence If the CFG is noted as missing edges, each block and each edge is assigned its own equivalence class. Otherwise, we use an extended version of the cycle equivalence algorithm in [14] to identify sets of blocks and edges that are guaranteed to be executed the same number of times. Each such set constitutes one equivalence class. Our extension to the algorithm is for handling CFG s with infinite loops, e.g. the idle loop of an operating system. Addr Instruction S i M i ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In ACM PLDI, pages 171-- 185, 1994.


Incremental Computation: A Semantics-Based Systematic.. - Liu (1996)   (2 citations)  (Correct)

.... interfaces [Rei84b,Van88,Lar92,DRO92,GT92] or one for document processing [van86,ALBB92,Mee94] One of the richest and most challenging domain is incremental compilation, where many program analysis and transformation techniques are employed [RTD83,Rei84a,SDB84,Zad84,RP88,Bur90, AN91,PS92,JP94] The methods developed in this dissertation make a contribution to this line of research by providing a principled approach for exploring incrementality. ....

Richard Johnson and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on PLDI, pages 171--185, Orlando, Florida, June 1994.


Defining Flow Sensitivity in Data Flow Problems - Marlowe, Ryder, Burke (1995)   (5 citations)  (Correct)

....dependence and sequence between entry, calls, and exit statements, while discarding all other intraprocedural structure. For a number of interesting problems it is still possible to extract intraprocedural information in a single pass into annotations on the edges of these structures [Cal88, JPP94, LRZ93, HS94, HRB90] Here, dependence on intraprocedural information is not necessarily completely encapsulated in the annotations, but shared between the 9 The annotations are not, however, required to be constant. annotations and the control flow abstraction in the representation. However, ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, June 1994. published as SIGPLAN Notices, Vol 29, Number 6.


Analysis and Optimization of Explicitly Parallel Programs - Novillo, Unrau, Schaeffer (1998)   (Correct)

.... algorithm computes the SSA form in O(r 3 ) time, where r is the maximum of the number of nodes (jN j) number of control edges (jE ct j) number of assignments and number of variable references in the program [3, 6] Note that it is possible to place OE terms using the linear time algorithms in [11] and [21] We use the algorithms from [24] solely because they are easier to implement. The third phase of the computation of the CSSA form places functions at the concurrent join nodes of the graph [15] By examining the placing algorithm (Algorithm 5.5) we conclude that this phase can be ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, June 1994.


σ-SSA and its Construction through Symbolic.. - Saito, Polychronopoulos (1996)   (Correct)

....subgraph on VFG in different settings. Demand driven representation of SSA form (with an extension to explicit cobegin coend parallelism) in Nascent [10] makes it closer to pruned SSA form than to SSA form. Johnson and Pingali s algorithm, based on Dependence Flow Graph (DFG) is O(E ) [17, 16, 27], where E is the number of edges in CFG. Cytron and Ferrante s algorithm in [6] based on path compression, is O(E ff(E ) 6] Cytron and Ferrante s algorithm visits CFG nodes in the reverse order of a depth first visit, which is used in the proof of correctness. Such an order of visit is ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 1994.


A Formally Verified High-Level Synthesis Front-end.. - Richard Chapman   (Correct)

....it was generated can be restated as showing that the failures sets for the two CSP systems are the same. 5 Translation and Proof of Correctness To translate a VHDL program to a dependence flow graph, we produce a sub dependence flow graph from each VHDL process. We use the algorithm described in [JPP94] to construct the dependence flow graph in linear time, even for unstructured code. First we identify control dependence equivalence regions. Then we do dataflow analysis to route dfg edges from points of data definition or input to points of use or output, including switch and merge nodes when a ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming language design and implementation. ACM, 1994.


A Superstrand Architecture - Marquez, Theobald, Tang, Gao (1997)   (1 citation)  (Correct)

....in which the control structure and data dependence of a program are represented in a hierarchical fashion. A PDFG graph can be built easily based on the program structure tree (PST) representation. A PST tree of a program is a hierarchical representation of the control structure of the program [15]. For a structural program, the PST tree representation is the same as the AST representation. For example, the SIMPLE AST is a PST representation used in our compiler for partitioning structural programs into threads [10, 26] A PDFG graph is a PST tree, modified and augmented with additional ....

....statement (such as S 0 , S 5 , and S 12 ) contains one or more nested regions, is represented by an internal node. Such an internal node is also called a region node. Similar to the concept of basic blocks, a basic region is a sequence of regions (also called sequentially composed regions in [15]) such that the nodes in the same basic region have the same parent in the PST with the identical control dependence. In the figure, dash edged rectangles outline these basic regions. For example, the compound while loop statement S 5 contains one subcomponent (loop body) which consists of three ....

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, June 20--24, 1994. SIGPLAN Notices, 29(6), June 1994.


Efficient Building and Placing of Gating Functions - Tu, Padua (1995)   (5 citations)  (Correct)

....SSA with a minimal number of OE Gammafunctions was originally designed by Cytron, Ferrante, Rosen, Wegman and Zadeck[CFR 91] The algorithm for placing the OE Gammafunctions is O(N 2 ) in the worst case, but often appears to be linear when applied to real programs. Johnson and Pingali[JP93, JPP94] proposed another algorithm to place OE Gammafunctions in O(E) time. Later, Cytron and Ferrante proposed an almost linear time O(Eff(E) using path compression. Recently, Sreedhar and Gao[SG94] have developed another O(E) time algorithm. We should point out that although our algorithm also uses ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proc. the SIGPLAN '94 Conference on Program Language Design and Implementation, June 1994.


Automatic Array Privatization And Demand-Driven Symbolic Analysis - Tu (1995)   (41 citations)  (Correct)

....is O(N 2 ) in the worst case, because the size of the iterated dominance frontiers can be O(N 2 ) It often appears to be linear, however, when applied to real programs. The authors give evidence that the size of the iterated dominance frontiers is usually O(N ) Johnson and Pingali [JP93, JPP94] proposed another algorithm to place OE functions in O(E) time. Later, Cytron and Ferrante proposed an almost linear time O(Eff(E) using path compression. Recently, Sreedhar and Gao [SG94] have developed another O(E) time algorithm. We should point out that although our new algorithm in this ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proc. the SIGPLAN '94 Conference on Program Language Design and Implementation, June 1994.


Efficient Computation of Interprocedural Control Dependence - Ezick, Bilardi, Pingali   Self-citation (Pingali)   (Correct)

.... basic block, as is done in region scheduling [11] This information can also be used to decompose the control flow graph of a program into single entry single exit (SESE) regions, and this decomposition can be exploited to speed up dataflow analysis by combining structural and fixpoint induction [17, 18] and to perform dataflow analysis in parallel [10, 18] Formulating a precise definition of control dependence in programs with nested control structures, multiway branches, unstructured flow of control, and procedure calls can be quite subtle. The most commonly used definition, due to Ferrante ....

.... information can also be used to decompose the control flow graph of a program into single entry single exit (SESE) regions, and this decomposition can be exploited to speed up dataflow analysis by combining structural and fixpoint induction [17, 18] and to perform dataflow analysis in parallel [10, 18]. Formulating a precise definition of control dependence in programs with nested control structures, multiway branches, unstructured flow of control, and procedure calls can be quite subtle. The most commonly used definition, due to Ferrante et al., is based on the graph theoretic concept of ....

[Article contains additional citation context not shown here]

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, June 20-- 24, 1994.


Collaborative Mathematics Environments - Chew, Constable, Pingali..   Self-citation (Pingali)   (Correct)

.... the dependence flow graph (DFG) which is an executable representation of program dependences, and which can be used to perform a variety of forward and backward dataflow analysis, such as constant propagation, elimination of partial redundancies, and strength reduction, using sparse techniques [58,59]. The DFG is being used as an internal representation of digital circuits by Miriam Leeser s logic synthesis and verification group in the EE department at Cornell University; this group uses the DFG tool kit implemented by Pingali s research group [19, 64] In the area of automatic restructuring ....

....be published by Springer Verlag in their series on Lecture Notes in Computer Science. The following publications acknowledge support from one or both of the NSF grants listed above, and are listed in reverse chronological order. This list omits a few papers Pingali wishes he had not published [9] [58], 68] 96] 84] 66] 59] 52] 65] 67] 56] 10] 55] 7.2.2 Development of Human Resources During the current funding period, the following graduate students received doctoral degrees: Anne Rogers (assistant professor, Princeton University) Micah Beck (assistant professor, ....

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN 94 Conference on Programming Language Design and Implementation, pages 171--185, Orlando, Florida, June 1994.


Optimal Control Dependence Computation and the Roman Chariots .. - Pingali, Bilardi (1997)   (19 citations)  Self-citation (Pingali)   (Correct)

.... in region scheduling [Gupta and Soffa 1987] The relation cdequiv can also be used to decompose the control flow graph of a program into single entry single exit (SESE) regions, and this decomposition can be exploited to speed up dataflow analysis by combining structural and fixpoint induction [Johnson 1994; Johnson et al. 1994] and to perform dataflow analysis in parallel [Gupta et al. 1990; Johnson et al. 1994] Figure 1 shows a small program and its control dependence relation. For any edge e, cd(e) is the set of marked nodes in the row corresponding to e. For any node w, conds(w) is the set of ....

.... [Gupta and Soffa 1987] The relation cdequiv can also be used to decompose the control flow graph of a program into single entry single exit (SESE) regions, and this decomposition can be exploited to speed up dataflow analysis by combining structural and fixpoint induction [Johnson 1994; Johnson et al. 1994] and to perform dataflow analysis in parallel [Gupta et al. 1990; Johnson et al. 1994] Figure 1 shows a small program and its control dependence relation. For any edge e, cd(e) is the set of marked nodes in the row corresponding to e. For any node w, conds(w) is the set of marked edges in the ....

[Article contains additional citation context not shown here]

Johnson, R., Pearson, D., and Pingali, K. 1994. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation. ACM, New York, 171--185.


Restructuring Programs By Tucking Statements Into Functions - Arun Lakhotia And (1998)   (16 citations)  (Correct)

No context found.

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI), pages 171--185. ACM Press, 1994.


Hardware Compilation of Application-Specific.. - Venkataramani.. (2006)   (Correct)

No context found.

R. Johnson, D. Pearson, and K. Pingali, "The program structure tree: Computing control regions in linear time," oc. SIGPLAN Conf. PLDI, Orlando, FL, Jun. 1994, pp. 171--185.


HLS Support for Unconstrained Memory Accesses - Girish Venkataramani Tiberiu   (Correct)

No context found.

R. Johnson, D. Pearson, et al. The program structure tree: Computing control regions in linear time. In SIGPLAN Conference on PLDI, pages 171--185, June 1994.


A space-aware bytecode verifier for Java Cards - Bernardeschi, Lettieri.. (2005)   (Correct)

No context found.

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In SIGPLAN Conference on Programming Language Design and Implementation, pages 171--185, 1994.


Java Bytecode Verification With Dynamic Structures - Cinzia Bernardeschi Luca (2004)   (Correct)

No context found.

Richard Johnson, David Pearson, and Keshav Pingali. The program structure tree: Computing control regions in linear time. In SIGPLAN Conference on Programming Language Design and Implementation, pages 171--185, 1994.


Efficient Building and Placing of Gating Functions - Peng Tu And (1995)   (5 citations)  (Correct)

No context found.

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proc. the SIGPLAN '94 ConferenceonProgram Language Design and Implementation,June1994.


The Static Single Information Form - Ananian (1999)   (1 citation)  (Correct)

No context found.

R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation (PLDI), pages 171-185, Orlando, Florida, June 1994.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC