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:

First 50 documents

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.


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.


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.

First 50 documents

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