Data structures and network algorithms
Data structures and network algorithms
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
An interval-based approach to exhaustive and incremental interprocedural data-flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural symbolic analysis
Interprocedural symbolic analysis
Initial Results for Glacial Variable Analysis
International Journal of Parallel Programming
Efficient coverage testing using global dominator graphs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Identifying loops in almost linear time
ACM Transactions on Programming Languages and Systems (TOPLAS)
On loops, dominators, and dominance frontier
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Handling irreducible loops: optimized node splitting versus DJ-graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
On loops, dominators, and dominance frontiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
HPCVIEW: A Tool for Top-down Analysis of Node Performance
The Journal of Supercomputing
Handling Irreducible Loops: Optimized Node Splitting vs. DJ-Graphs
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
Using Hammock Graphs to Structure Programs
IEEE Transactions on Software Engineering
Dominance analysis of irreducible CFGs by reduction
ACM SIGPLAN Notices
Representation-independent program analysis
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A novel instruction scratchpad memory optimization method based on concomitance metric
ASP-DAC '06 Proceedings of the 2006 Asia and South Pacific Design Automation Conference
Practical Structure Layout Optimization and Advice
Proceedings of the International Symposium on Code Generation and Optimization
Fast liveness checking for ssa-form programs
Proceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization
Binary analysis for measurement and attribution of program performance
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Modelling and programming stream-based distributed computing based on the meta-pipeline approach
International Journal of Parallel, Emergent and Distributed Systems - Advances in Parallel and Distributed Computational Models
Design and implementation of a graphical user interface for stream-based distributed computing
PDCN '08 Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Networks
An efficient optimization algorithm of java bytecode to reduce network traffic
ICCSA'03 Proceedings of the 2003 international conference on Computational science and its applications: PartII
Fine-grain dynamic instruction placement for L0 scratch-pad memory
CASES '10 Proceedings of the 2010 international conference on Compilers, architectures and synthesis for embedded systems
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Identifying irreducible loops in the Instrumentation Point Graph
Journal of Systems Architecture: the EUROMICRO Journal
On-the-fly detection of precise loop nests across procedures on a dynamic binary translation system
Proceedings of the 8th ACM International Conference on Computing Frontiers
The beauty and the beast: separating design from algorithm
Proceedings of the 25th European conference on Object-oriented programming
Efficient liveness computation using merge sets and DJ-graphs
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
Gateway decompositions for constrained reachability problems
SEA'10 Proceedings of the 9th international conference on Experimental Algorithms
ACM Transactions on Embedded Computing Systems (TECS)
A non-iterative data-flow algorithm for computing liveness sets in strict SSA programs
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
MAO -- An extensible micro-architectural optimizer
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
A study of irreducibility in C programs
Software—Practice & Experience
Pointy: a hybrid pointer prefetcher for managed runtime systems
Proceedings of the 21st international conference on Parallel architectures and compilation techniques
A new algorithm for identifying loops in decompilation
SAS'07 Proceedings of the 14th international conference on Static Analysis
Simple analysis of partial worst-case execution paths on general control flow graphs
Proceedings of the Eleventh ACM International Conference on Embedded Software
Recovering memory access patterns of executable programs
Science of Computer Programming
Hi-index | 0.00 |
Recognizing and transforming loops are essential steps in any attempt to improve the running time of a program. Aggressive restructuring techniques have been developed for single-entry (reducible) loops, but restructurers and the dataflow and dependence analysis they rely on often give up in the presence of multientry (irreducible) loops. Thus one irreducible loop can prevent the improvement of all loops in a procedure. This article give an algorithm to build a loop nesting tree for a procedure with arbitrary control flow. The algorithm uses definitions of reducible and irreducible loops which allow either kind of loop to be nested in the other. The tree construction algorithm, an extension of Tarjan's algorithm for testing reducibility, runs in almost linear time. In the presence of irreducible loops, the loop nesting tree can depend on the depth-first spanning tree used to build it. In particular, the header node representing a reducible loop in one version of the loop nesting tree can be the representative of an irreducible loop in another. We give a normalization method that maximizes the set of reducible loops discovered, independent of the depth-first spanning tree used. The normalization require the insertion of at most one node and one edge per reducible loop.