@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.