ssa5.bib

@inproceedings{knobe98array,
  author = {Kathleen Knobe and Vivek Sarkar},
  title = {Array {SSA} form and its use in parallelization},
  booktitle = {Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on
                  Principles of Programming Languages},
  year = {1998},
  pages = {107--120},
  abstract = {extends SSA form to handle arrays more elegantly},
  url = {http://doi.acm.org/10.1145/268946.268956}
}
@inproceedings{fink00unified,
  author = {Stephen Fink and Kathleen Knobe and Vivek Sarkar},
  title = {Unified Analysis of Array and Object References in Strongly
                  Typed Languages},
  booktitle = {Proceedings of the 7th International Static Analysis
                  Symposium},
  year = {2000},
  pages = {155-174},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  volume = {1824},
  abstract = {extends SSA to handle arrays and objects, in Java-like
                  langs. Builds upon the original Array SSA - by splitting
                  classes up into heap-arrays of appropriate fields, and
                  indexing into these heap arrays by object references (quite
                  clever!) Then just uses standard Array SSA
                  transformation. three kinds of phi nodes - standard, then
                  array defn phi, then array use phi. Rename arrays each time
                  we do a lookup (cf SSU). Uses global value numbering instead
                  of points-to analysis to determine when object references
                  are same/different. Analysis enables scalar replacement -
                  remove redundant loads, then redundant stores. Comments that
                  transformation to SSA leads to flow-sensitivity
                  property. Actually implemented in IBM Jalapeno JIT
                  compiler.},
  url = {http://citeseer.ist.psu.edu/fink00unified.html}
}
@article{feautrier91dataflow,
  author = {Paul Feautrier},
  title = {Dataflow analysis of array and scalar references},
  journal = {International Journal of Parallel Programming},
  volume = {20},
  number = {1},
  pages = {23--51},
  month = {Feb},
  year = {1991},
  abstract = {Introduces the concept of dynamic single assignment form
                  (DSA).},
  url = {http://citeseer.ist.psu.edu/feautrier91dataflow.html}
}
@techreport{offner03weak,
  author = {Carl Offner and Kathleen Knobe},
  title = {Weak Dynamic Single Assignment Form},
  month = {Nov},
  year = {2003},
  number = {TR-HPL-2003-169},
  institution = {HP Labs},
  abstract = {reviews array SSA, goes onto develop dynamic single
                  assignment, which is similar to linear naming, only seems to
                  be for arrays. Make it work by adding extra dimensions to
                  arrays to cope with repeated assignments to same elements
                  (probably due to loops)},
  url = {http://www.hpl.hp.com/techreports/2003/HPL-2003-169R1.html}
}
@article{rau96iterative,
  author = {B. Ramakrishna Rau},
  title = {Iterative modulo scheduling},
  journal = {International Journal of Parallel Processing},
  volume = {24},
  number = {1},
  pages = {3--64},
  month = {Feb},
  year = {1996},
  abstract = {also available as a HP Labs technical report. Describes DSA
                  and expanded virtual registers, the cloning support nec for
                  DSA. Basically converts each scalar into an array},
  url = {http://www.hpl.hp.com/techreports/94/HPL-94-115.html}
}
@techreport{vanbroekhoven03step,
  author = {Peter Vanbroekhoven and Gerda Janssens and Maurice
                  Bruynooghe and Henk Corporaal and Francky Catthoor},
  title = {A Step towards a Scalable Dynamic Single Assignment
                  Conversion},
  institution = {Department of Computer Science, Katholieke Universiteit
                  Leuven},
  number = {CW 360},
  month = {Apr},
  year = {2003},
  abstract = {gives some motivation for DSA in terms of memory hierarchy
                  design for embedded systems. Then gives two diff methods for
                  constructing DSA, one from SSA, one from CFG. Plenty of
                  discussion, no results and not much analysis.},
  url = {http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW360.abs.html}
}
@inproceedings{cytron93efficient,
  author = {Ron Cytron and Reid Gershbein},
  title = {Efficient accommodation of may-alias information in {SSA}
                  form},
  booktitle = {Proceedings of the ACM SIGPLAN 1993 Conference on
                  Programming Language Design and Implementation},
  year = {1993},
  pages = {36--45},
  abstract = {really simple},
  url = {http://doi.acm.org/10.1145/155090.155094}
}
@inproceedings{chow96effective,
  author = {Fred C. Chow and Sun Chan and Shin-Ming Liu and Raymond Lo
                  and Mark Streich},
  title = {Effective Representation of Aliases and Indirect Memory
                  Operations in {SSA} Form},
  booktitle = {Proceedings of the International Conference on Compiler
                  Construction},
  pages = {253-267},
  year = {1996},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  volume = {1060},
  abstract = {rather complicated!},
  url = {http://citeseer.ist.psu.edu/chow96effective.html}
}
@inproceedings{lapkowski98extended,
  author = {Christopher Lapkowski and Laurie J. Hendren},
  title = {Extended {SSA} Numbering: Introducing {SSA} Properties to
                  Language with Multi-level Pointers},
  booktitle = {Proceedings of the 7th International Conference on Compiler
                  Construction},
  pages = {128-143},
  year = {1998},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  volume = {1383},
  abstract = {SSA for pointers. No phi nodes, instead it just does global
                  value numbering for scalar variables, and for
                  single-indirect pointers. A ptr has two global value
                  numbers, one for the var itself, and one for the location it
                  points to. This allows us to detect symbolic equality, and
                  to make assumptions about definition sets. No explicit phi
                  nodes, they aren't deemed necessary.},
  url = {http://citeseer.ist.psu.edu/lapkowski96extended.html}
}
@inproceedings{hasti98using,
  author = {Rebecca Hasti and Susan Horwitz},
  title = {Using static single assignment form to improve
                  flow-insensitive pointer analysis},
  booktitle = {Proceedings of the ACM SIGPLAN 1998 Conference on
                  Programming Language Design and Implementation},
  year = {1998},
  pages = {97--105},
  abstract = {Claims that SSA turns flow-insensitive analysis into
                  flow-sensitive analysis. Slightly suspect paper. But
                  interesting claim, even if not backed up formally.},
  url = {http://doi.acm.org/10.1145/277650.277668}
}
@inproceedings{carter99predicated,
  author = {Lori Carter and Beth Simon and Brad Calder and Larry Carter
                  and Jeanne Ferrante},
  title = {Predicated Static Single Assignment},
  booktitle = {Proceedings of the International Conference on Parallel
                  Architectures and Compilation Techniques},
  year = {1999},
  pages = {245--255},
  abstract = {a little like SSI, if you factor full-path-predicates into
                  the variable names. Does SSA-like scheme for predicated
                  ISAs, such as IA64.},
  url = {http://doi.ieeecomputersociety.org/10.1109/PACT.1999.807561}
}
@article{knoop03constant,
  author = {J. Knoop and O. RĂ¼thing},
  title = {Constant Propagation on Predicated Code},
  journal = {Journal of Universal Computer Science},
  year = {2003},
  volume = {9},
  number = {8},
  pages = {829--850},
  url = {http://www.jucs.org/jucs_9_8/constant_propagation_on_predicated},
  abstract = {constant propagation analysis on a value graph, relies on a predicated form of SSA}
}
@inproceedings{lin03compiler,
  author = {Jin Lin and Tong Chen and Wei-Chung Hsu and Pen-Chung Yew
                  and Roy Dz-Ching Ju and Tin-Fook Ngai and Sun Chan},
  title = {A compiler framework for speculative analysis and
                  optimizations},
  booktitle = {Proceedings of the ACM SIGPLAN 2003 Conference on
                  Programming Language Design and Implementation},
  year = {2003},
  pages = {289--299},
  abstract = {quite involved, but enables data speculation in SSA form,
                  with notion of likeliness of operations},
  url = {http://doi.acm.org/10.1145/781131.781164}
}
@inproceedings{roy10hot,
  title = {The Hot Path SSA Form: Extending the Static Single Assignment Form for Speculative Optimizations},
  author = {Subhajit Roy and Y. N. Srikant},
  booktitle = {Proceedings of the International Conference on Compiler Construction},
  series = {Lecture Notes in Computer Science},
  year = {2010},
  volume = {6011/2010},
  pages = {304--323},
  url = {http://dx.doi.org/10.1007/978-3-642-11970-5_17},
  abstract = {Does profiling to identify hot paths through a CFG, then introduces the tau-function, which allows us to discard variable definitions from non-hot paths, enabling speculative optimizations like constant propagation. Shows how speculative constant propagation works on real programs, with a hit-rate metric that shows how often speculation is correct.}
}
@inproceedings{srinivasan93static,
  author = {Harini Srinivasan and James Hook and Michael Wolfe},
  title = {Static single assignment for explicitly parallel programs},
  booktitle = {Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on
                  Principles of Programming Languages},
  year = {1993},
  pages = {260--272},
  abstract = {early attempt at dealing with simple kind of parallelism,
                  introduces extra pseudo-assignment for parallel merge
                  points},
  url = {http://doi.acm.org/10.1145/158511.158644}
}
@inproceedings{lee97concurrent,
  author = {Jaejin Lee and Samuel P. Midkiff and David A. Padua},
  title = {Concurrent Static Single Assignment Form and Constant
                  Propagation for Explicitly Parallel Programs},
  booktitle = {Proceedings of the 10th International Workshop on Languages
                  and Compilers for Parallel Computing},
  year = {1997},
  pages = {114--130},
  publisher = {Springer},
  series = {Lecture Notes in Computer Science},
  volume = {1366},
  abstract = {caters for more complicated parallel programs, introduces an
                  extra pseudo-assignment},
  url = {http://citeseer.ist.psu.edu/lee97concurrent.html}
}
@inproceedings{novillo98concurrent,
  author = {Diego Novillo and Ronald C. Unrau and Jonathan Schaeffer},
  title = {Concurrent {SSA} Form in the Presence of Mutual Exclusion},
  booktitle = {Proceedings of the International Conference on Parallel
                  Processing},
  year = {1998},
  pages = {356--364},
  abstract = {more complicated still. Extends CSSA with support for
                  mutexes},
  url = {http://citeseer.ist.psu.edu/novillo98concurrent.html}
}
@inproceedings{lee99basic,
  author = {Jaejin Lee and David A. Padua and Samuel P. Midkiff},
  title = {Basic compiler algorithms for parallel programs},
  booktitle = {Proceedings of the 7th ACM SIGPLAN Symposium on Principles
                  and Practice of Parallel Programming},
  year = {1999},
  pages = {1--12},
  abstract = {clearest description of concurrent CFGs and CSSA. With three
                  diff kinds of pseudo-assignment now.},
  url = {http://doi.acm.org/10.1145/301104.301105}
}
@inproceedings{bodik00abcd,
  author = {Rastislav Bodik and Rajiv Gupta and Vivek Sarkar},
  title = {{ABCD}: eliminating array bounds checks on demand},
  booktitle = {Proceedings of the ACM SIGPLAN 2000 Conference on
                  Programming Language Design and Implementation},
  year = {2000},
  pages = {321--333},
  abstract = {similar to SSI, has phi functions, and also pi functions to
                  rename at conditional branches and after array bounds
                  checks},
  url = {http://doi.acm.org/10.1145/349299.349342}
}
@phdthesis{stoltz95intermediate,
  author = {Eric James Stoltz},
  title = {Intermediate Compiler Analysis via Reference Chaining},
  month = {Jan},
  year = {1995},
  school = {Oregon Graduate Institute of Science and Technology},
  abstract = {reference chaining - a generalization of SSA. For forwards
                  or backwards data flow problems, but not both. Talks a lot
                  about factored use and def chains. A student of Michael
                  Wolfe's},
  url = {http://www.cse.ogi.edu/tech-reports/1995/95-TH-001.ps.gz}
}
@inproceedings{stoltz94extended,
  author = {Stoltz, Eric and Gerlek, Michael P. and Wolfe, Michael},
  title = {{E}xtended {SSA} with Factored Use-Def Chains to Support
                  Optimization and Parallelism},
  booktitle = {Proceedings of the Hawaii International Conference on
                  Systems Sciences},
  pages = {43--52},
  year = {1994},
  abstract = {introduces concept of factored use-def chains, as a form of
                  SSA},
  url = {http://citeseer.ist.psu.edu/stoltz94extended.html}
}
@article{gerlek95beyond,
  author = {Michael P. Gerlek and Eric Stoltz and Michael Wolfe},
  title = {Beyond induction variables: detecting and classifying
                  sequences using a demand-driven SSA form},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {17},
  number = {1},
  year = {1995},
  pages = {85--122},
  abstract = {haven't actually read this. It uses a variant of SSA to
                  discover properties of variables. Mentions FUD chains.},
  url = {http://doi.acm.org/10.1145/200994.201003}
}
@inproceedings{leung99static,
  author = {Allen Leung and Lal George},
  title = {Static single assignment form for machine code},
  booktitle = {Proceedings of the ACM SIGPLAN 1999 Conference on
                  Programming Language Design and Implementation},
  year = {1999},
  pages = {204--214},
  abstract = {simple techniques so machine code can be properly
                  represented as SSA, and optimised using SSA algms},
  url = {http://doi.acm.org/10.1145/301618.301667}
}
@inproceedings{ronne04interpreting,
  author = {Jeffery {von Ronne} and Ning Wang and Michael Franz},
  title = {Interpreting Programs in Static Single Assignment Form},
  booktitle = {Proceedings of the ACM SIGPLAN 2004 Workshop on
                  Interpreters, Virtual Machines and Emulators},
  year = {2004},
  pages = {23--30},
  abstract = {interpretable SSA. Simple techniques to interpret phi fns,
                  single-assignment arrays, etc. V similar to SafeTSA},
  url = {http://doi.acm.org/10.1145/1059579.1059585}
}

This file was generated by bibtex2html 1.96.