# General books and articles that cover the topic over all and are necessary for understanding the whole problem. ############################################################################### @Manual{JavaVMSpecification1.0:1995, title = "The {Java} Virtual Machine Specification", month = aug, added-by = "sti", URL = "http://java.sun.com/doc/vmspec/VMSpec.ps", keywords = "java, virtual machine, bytecode", edition = "1.0 Beta", annote = "a virtual machine similar to UCSD p-code or smalltalk. stack-machine. dynamic loading. direct support for object orientation (e.g. virtual method calls)", organization = "Sun Microsystems", year = "1995", } @Book{JavaLanguageSpecificationv3.0:2005, author = "James Gosling and Bill Joy and Guy Steele and Gilad Bracha", address = "Boston, Mass.", title = "The {Java} Language Specification, Third Edition", publisher = "Addison-Wesley", series = "The Java Series", year = "2005", } @Article{CompilingJavaJustInTime:1997, author = "Timothy Cramer and Richard Friedman and Terrence Miller and David Seherger and Robert Wilson and Mario Wolczko", title = "Compiling {Java} Just in Time: Using runtime compilation to improve {Java} program performance", journal = "IEEE Micro", volume = "17", number = "3", pages = "36--??", month = may # "\slash " # jun, year = "1997", CODEN = "IEMIDZ", ISSN = "0272-1732", bibdate = "Tue Aug 12 12:35:06 MDT 1997", URL = "http://pascal.computer.org/mi/books/mi1997/pdf/m3036.pdf", acknowledgement = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", } @InProceedings{FastEffectiveCodeGenerationInAJustInTimeJavaCompiler:1998, title = "Fast, Effective Code Generation in a Just-In-Time Java Compiler", author = "Ali-Reza Adl-Tabatabai and Michal Cierniak and Guei-Yuan Lueh and Vishesh M. Parikh and James M. Stichnoth", year = "1998", bibdate = "2010-01-10", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#Adl-TabatabaiCLPS98", booktitle = "PLDI", pages = "280--290", URL = "http://doi.acm.org/10.1145/277650.277740", } @InProceedings{TheDesignAndImplementationOfACertifyingCompiler:1998, author = "G. Necula and P. Lee", title = "The {D}esign and {I}mplementation of a {C}ertifying {C}ompiler", booktitle = "Proc. of PLDI'98", year = "1998", publisher = "ACM Press", } @InProceedings{DesignImplementationAndEvaluationOfOptimizationsInAJavaJustInTimeCompiler:1999, title = "Design, Implementation, and Evaluation of Optimizations in a Just-in-Time Compiler", author = "Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki Yasue and Mikio Takeuchi and Takeshi Ogasawara and Toshio Suganuma and Tamiya Onodera and Hideaki Komatsu and Toshio Nakatani", year = "1999", bibdate = "2002-12-17", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/java/java1999.html#IshizakiKYTOSOKN99", booktitle = "Java Grande", pages = "119--128", URL = "http://doi.acm.org/10.1145/304065.304111", } @Article{CacaoA64BitJavaVMJustInTimeCompiler:1997, author = "Andreas Krall and Reinhard Grafl", title = "{CACAO} -- {A} 64-bit Java{VM} Just-in-Time Compiler", journal = "Concurrency: Practice and Experience", volume = "9", number = "11", pages = "1017--1030", month = nov, year = "1997", keywords = "computational science \& engineering Java: simulation \& modeling,", } @book{HandbookForJavaCacaoVirtualMachine:1996, title= {Handbook for Java Cacao Virtual Machine}, author= {Andreas Krall and Reinhard Grafl et al.}, publisher= {http://www.cacaovm.org}, year= {1996}, pages= {116} } @Article{MarmotAnOptimizingCompilerForJava:2000, title = "Marmot: an optimizing compiler for Java", author = "Robert P. Fitzgerald and Todd B. Knoblock and Erik Ruf and Bjarne Steensgaard and David Tarditi", journal = "Softw, Pract. Exper", year = "2000", number = "3", volume = "30", bibdate = "2003-11-25", bibsource = "DBLP, http://dblp.uni-trier.de/db/journals/spe/spe30.html#FitzgeraldKRST00", pages = "199--232", } @InProceedings{VerifiableAnnotationsForEmbeddedJavaEnvironments:2005, title = "Verifiable annotations for embedded java environments", author = "Guangyu Chen and Mahmut T. Kandemir", bibdate = "2006-02-15", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/cases/cases2005.html#ChenK05", booktitle = "CASES", booktitle = "Proceedings of the 2005 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, {CASES} 2005, San Francisco, California, {USA}, September 24-27, 2005", publisher = "ACM", year = "2005", editor = "Thomas M. Conte and Paolo Faraboschi and William H. Mangione-Smith and Walid A. Najjar", ISBN = "1-59593-149-X", pages = "105--114", URL = "http://doi.acm.org/10.1145/1086297.1086312", } @Book{ModernCompilerImplementationInC:1998, author = "Andrew W. Appel", title = "Modern Compiler Implementation in {C}", publisher = "Cambridge University Press", ISBN = "0-521-58390-X", year = "1998", } ############################################################################### # Now some references are presented that deal with intermediate representations especially with several SSA forms. ############################################################################### @Article{EfficientlyComputingSSAFormAndTheControlDependenceGraph:1991, author = "Ron Cytron and Jeanne Ferrante and Barry K. Rosen and Mark N. Wegman and F. Kenneth Zadeck", title = "Efficiently computing static single assignment form and the control dependence graph", number = "4", volume = "13", month = oct, added-by = "msteiner", URL = "http://doi.acm.org/10.1145/115372.115320", added-at = "Sat Jul 29 09:22:31 2006", annote = "Classical paper on the SSA (Static Single Assignment) form for intermediary code representation in (optimizing) compilers. See \url{http://www.cs.man.ac.uk/~jsinger/ssa.html} for bibliography of SSA related work.", pages = "451--490", journal = "TOPLAS", year = "1991", } @Article{AVerifiableSSAProgramRepresentationForAgressiveCompilerOptimization:2006, author = "Menon and Glew and Murphy and McCreight and Shpeisman and Adl-Tabatabai and Petersen", title = "A Verifiable {SSA} Program Representation for Aggressive Compiler Optimization", journal = "SPNOTICES: ACM SIGPLAN Notices", volume = "41", year = "2006", } @Article{SafeTSAATypeSafeAndReferentiallySecureMobileCodeRepresentationBasedOnStaticSingleAssignmentForm:2001, author = "Wolfram Amme and Niall Dalton and Jeffery von Ronne and Michael Franz", title = "{SafeTSA}: {A} Type Safe and Referentially Secure Mobile-Code Representation Based on Static Single Assignment Form", journal = "ACM SIG{\-}PLAN Notices", volume = "36", number = "5", pages = "137--147", month = may, year = "2001", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Sun Dec 14 09:18:26 MST 2003", bibsource = "http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html; http://portal.acm.org/", acknowledgement = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", } @Misc{UsingTheSafeTSARepresentationToBoostThePerformanceOfAnExistingJavaVirtualMachine:2002, title = "Using the Safe{TSA} Representation to Boost the Performance of an Existing Java Virtual Machine", author = "Wolfram Amme and Jeffery Von Ronne and Michael Franz", year = "2003", month = dec # "~07", abstract = "High-performance just-in-time compilers for Java need to invest considerable effort before actual code generation can commence. SafeTSA, a typed intermediate representation based on SSA form, was designed to ease this burden, decreasing the time required for dynamic compilation, without sacrificing safety or code quality.", citeseer-references = "oai:CiteSeerPSU:2678; oai:CiteSeerPSU:717751; oai:CiteSeerPSU:284691; oai:CiteSeerPSU:554814; oai:CiteSeerPSU:114398; oai:CiteSeerPSU:328282; oai:CiteSeerPSU:89224", annote = "Wolfram Amme (Friedrich-Schiller-Universit at Jena; Institut f ur Informatik; Ernst-Abbe-Platz 1-4; D-07743 Jena , Germany); Jeffery Von Ronne (Information and Computer Science; 127B Computer Science Trailer); Michael Franz (Information and Computer Science; 444 Computer Science Bldg);", bibsource = "OAI-PMH server at cs1.ist.psu.edu", language = "en", oai = "oai:CiteSeerPSU:599324", rights = "unrestricted", URL = "http://citeseer.ist.psu.edu/599324.html; http://www.ics.uci.edu/~jronne/pubs/cpc2003-safetsa5.pdf", } ############################################################################### # The following documents now deal with the special topic of array bound check optimization. # The order is chronologic from the real beginning to the most recent publications. ############################################################################### @Article{CompilerAnalysisOfTheValueRangesForVariables:1977, author = "W. Harrison", title = "Compiler analysis of the value ranges for variables", journal = "IEEE Transactions on Software Engineering", volume = "SE-3", number = "3", month = may, year = "1977", keywords = "data flow analysis,", } @InProceedings{ImplementationOfAnArrayBoundChecker:1977, title = "Implementation of an Array Bound Checker", author = "Norihisa Suzuki and Kiyoshi Ishihata", year = "1977", bibdate = "2010-01-28", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/popl/popl77.html#SuzukiI77", booktitle = "POPL", cdrom = "POPL/00001437.PDF", pages = "132--143", URL = "http://doi.acm.org/10.1145/512950.512963", } @Article{EconomicRangeChecksInPascal:1978, author = "J. Welsh", title = "Economic range checks in {Pascal}", journal = "Software -- Practice \& Experience", volume = "8", pages = "85--97", year = "1978", } @Article{GlobalOptimizationBySuppressionOfPartialRedundancies:1979, author = "E. Morel and C. Renvoise", title = "Global optimization by suppression of partial redundancies", journal = "Communications of the ACM", volume = "22", number = "2", pages = "96--103", month = feb, year = "1979", } @InProceedings{OptimizationOfRangeChecking:1982, author = "Victoria Markstein and John Cocke and Peter Markstein", title = "Optimization of Range Checking", booktitle = "Proceedings of the {SIGPLAN} '82 Symposium on Compiler Construction", address = "Boston, Massachusetts", month = jun # " 23--25,", year = "1982", pages = "114--119", } @Article{OptimizationOfRangeChecking:1987, author = "Victoria Markstein and Peter Markstein and John Cocke", title = "Optimization of range checking", journal = "ACM SIG{\-}PLAN Notices", volume = "39", number = "4", pages = "58--65", month = apr, year = "2004", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Tue Apr 12 09:38:13 MDT 2005", bibsource = "http://portal.acm.org/", acknowledgement = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", } @Article{AFreshLookAtOptimizingArrayBoundChecking:1990, author = "Rajiv Gupta", title = "A fresh look at optimizing array bound checking", journal = "ACM SIG{\-}PLAN Notices", volume = "25", number = "6", pages = "272--282", month = jun, year = "1990", CODEN = "SINODQ", ISSN = "0362-1340", bibdate = "Sun Dec 14 09:15:53 MST 2003", bibsource = "http://portal.acm.org/", acknowledgement = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", } @Article{OptimizationOfArraySubscriptRangeChecks:1992, title = "Optimization of Array Subscript Range Checks", author = "Johnathan M. Asuru", journal = "ACM Letters on Programming Languages and Systems", pages = "109--118", month = jun, year = "1992", volume = "1", number = "2", } @Article{OptimizingArrayBoundChecksUsingFlowAnalysis:1993, title = "Optimizing Array Bound Checks Using Flow Analysis", author = "Rajiv Gupta", journal = "LOPLAS", year = "1993", number = "1-4", volume = "2", bibdate = "2002-12-02", bibsource = "DBLP, http://dblp.uni-trier.de/db/journals/loplas/loplas2.html#Gupta93", pages = "135--150", URL = "http://doi.acm.org/10.1145/176454.176507", } @InProceedings{EliminationOfRedundantArraySubscriptRangeChecks:1995, title = "Elimination of Redundant Array Subscript Range Checks", author = "Priyadarshan Kolte and Michael Wolfe", year = "1995", bibdate = "2010-01-10", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pldi/pldi95.html#KolteW95", booktitle = "PLDI", pages = "270--278", URL = "http://doi.acm.org/10.1145/207110.207160", } @InProceedings{EliminatingArrayBoundCheckingThroughDependentTypes:1998, title = "Eliminating Array Bound Checking Through Dependent Types", author = "Hongwei Xi and Frank Pfenning", year = "1998", bibdate = "2010-01-10", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#XiP98", booktitle = "PLDI", pages = "249--257", URL = "http://doi.acm.org/10.1145/277650.277732", } @Article{OptimizingArrayReferenceCheckingInJavaPrograms:1998, title = "Optimizing Array Reference Checking in Java Programs", author = "Samuel P. Midkiff and Jos{\'e} E. Moreira and Marc Snir", journal = "IBM Systems Journal", year = "1998", number = "3", volume = "37", bibdate = "2002-01-03", bibsource = "DBLP, http://dblp.uni-trier.de/db/journals/ibmsj/ibmsj37.html#MidkiffMS98", pages = "409--453", } @InProceedings{TowardsArrayBoundCheckEliminationInJavaTMVirtualMachineLanguage:1999, title = "Towards array bound check elimination in Java $^{TM}$ virtual machine language", author = "Hongwei Xi and Songtao Xia", bibdate = "2006-02-15", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/cascon/cascon1999.html#XiX99", booktitle = "CASCON", booktitle = "Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative Research, November 8-11, 1999, Mississauga, Ontario, Canada", publisher = "IBM", year = "1999", editor = "Stephen A. MacKay and J. Howard Johnson", pages = "14", URL = "http://doi.acm.org/10.1145/781995.782009", } @InProceedings{ABCDEliminatingArrayBoundsChecksOnDemand:2000, 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", } @book{ProcessorWithAcceleratedArrayAcessBoundsChecking:2000, title= {USPatent: Processor with Accelerated Array Acess Bounds Checking}, author= {Marc Tremblay and James M. O'Connor and William N. Joy}, publisher= {Sun Microsystems, Inc.}, year= {2000}, pages= {31} } @InProceedings{AFrameworkForOptimizingJavaUsingAttributes:2000, title = "A framework for optimizing Java using attributes", author = "Patrice Pominville and Feng Qian and Raja Vall{\'e}e-Rai and Laurie J. Hendren and Clark Verbrugge", bibdate = "2006-02-15", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/cascon/cascon2000.html#PominvilleQVHV00", booktitle = "CASCON", booktitle = "Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative Research, November 13-16, 2000, Mississauga, Ontario, Canada", publisher = "IBM", year = "2000", editor = "Stephen A. MacKay and J. Howard Johnson", pages = "8", URL = "http://doi.acm.org/10.1145/782034.782042", } @book{ApparatusAndMethodForArrayBoundsCheckingWithAShadowFile:2001, title= {USPatent: Apparatus and Method for Array Bounds Checking with a Shadow File}, author= {Gautam Dewan}, publisher= {Sun Microsystems, Inc.}, address= {}, year= {2001}, volume= {6}, pages= {} } @InProceedings{DerivingPreconditionsForArrayBoundCheckElimination:2001, title = "Deriving Pre-Conditions for Array Bound Check Elimination", author = "Wei-Ngan Chin and Siau-Cheng Khoo and Dana N. Xu", year = "2000", bibdate = "2004-06-01", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/aplas/aplas2000.html#ChinKX00", booktitle = "APLAS", pages = "9--21", } @InProceedings{AComparisonOfArrayBoundsCheckingOnSuperscalarAndVLIWArchitectures:2002, author = {Chris Bentley and Scott A. Watterson and David K. Lowenthal}, title = {A Comparison of Array Bounds Checking on Superscalar and VLIW Architectures}, booktitle = {IEEE Workshop on Workload Characterization}, year = {2002} } @Article{AComprehensiveApproachToArrayBoundsCheckEliminationForJava:2002, author = "Feng Qian and Laurie Hendren and Clark Verbrugge", title = "A Comprehensive Approach to Array Bounds Check Elimination for {Java}", journal = "Lecture Notes in Computer Science", volume = "2304", pages = "325--??", year = "2002", CODEN = "LNCSD9", ISSN = "0302-9743", bibdate = "Tue Sep 10 19:09:22 MDT 2002", bibsource = "http://link.springer-ny.com/link/service/series/0558/tocs/t2304.htm", URL = "http://link.springer-ny.com/link/service/series/0558/bibs/2304/23040325.htm; http://link.springer-ny.com/link/service/series/0558/papers/2304/23040325.pdf", acknowledgement = "Nelson H. F. Beebe, Center for Scientific Computing, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org|, \path|beebe@ieee.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", } @InProceedings{EliminationOfJavaArrayBoundsChecksInThePresenceOfIndirection:2002, author = "Mikel Luj{\'a}n and John R. Gurd and T. L. Freeman and Jos{\'e} Migue", title = "Elimination of Java array bounds checks in the presence of indirection", pages = "76--85", booktitle = "Proceedings of the 2002 joint {ACM}-{ISCOPE} conference on Java Grande ({JGI}-02)", month = nov # " ~3--5", publisher = "ACM Press", address = "New York", year = "2002", } @book{MethodForOptimizingArrayBoundsChecksInPrograms:2002, title= {USPatent: Method for Optimizing Array Bounds Checks in Programs}, author= {Manish Gupta and Samuel Pratt Midkiff and Jose Eduardo Moreira}, publisher= {IBM Corporation}, year= {2002}, pages= {58} } @Article{ArrayBoundsCheckEliminationUtilizingAPageProtectionMechanism:2003, title= {Array Bounds Check Elimination Utilizing a Page Protection Mechanism}, author= {Motohiro Kawahito}, publisher= {IBM Research, Tokyo Research Laboratory}, journal= {RT0550 Computer Science}, address= {1623-14, Shimotsuruma, Yamato, Kanagawa, 242-8502, Japan}, year= {2003}, pages= {6} } @Article{EfficientAndEffectiveArrayBoundChecking:2005, author = "Thi Viet Nga Nguyen and Fran{\c{c}}ois Irigoin", title = "Efficient and effective array bound checking", journal = "ACM Transactions on Programming Languages and Systems", volume = "27", number = "3", pages = "527--570", month = may, year = "2005", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Thu Jul 7 12:37:29 MDT 2005", bibsource = "http://www.acm.org/pubs/contents/journals/toplas/", acknowledgement = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|", fjournal = "ACM Transactions on Programming Languages and Systems", } @Article{SymbolicBoundsAnalysisOfPointersArrayIndicesAndAccessedMemoryRegions:2005, author = "Rugina and Rinard", title = "Symbolic Bounds Analysis of Pointers, Array Indices, and Accessed Memory Regions", journal = "ACMTOPLAS: ACM Transactions on Programming Languages and Systems", volume = "27", year = "2005", } @InProceedings{ArrayBoundsCheckEliminationForTheJavaHotSpotTMClientCompiler:2007, title = "Array bounds check elimination for the Java HotSpot{\texttrademark} client compiler", author = "Thomas W{\"u}rthinger and Christian Wimmer and Hanspeter M{\"o}ssenb{\"o}ck", bibdate = "2007-10-22", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pppj/pppj2007.html#WurthingerWM07", booktitle = "PPPJ", booktitle = "Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, {PPPJ} 2007, Lisboa, Portugal, September 5-7, 2007", publisher = "ACM", year = "2007", volume = "272", editor = "Vasco Amaral and Luis Marcelino and Lu{\'i}s Veiga and H. Conrad Cunningham", ISBN = "978-1-59593-672-1", pages = "125--133", series = "ACM International Conference Proceeding Series", URL = "http://doi.acm.org/10.1145/1294325.1294343", } @Misc{VerifiableRangeAnalysisAnnotationsForArrayBoundsCheckElimination:2007, author = {Jeffery Von Ronne and Kleanthis Psarris and David Niedzielski}, title = {Verifiable Range Analysis Annotations for Array Bounds Check Elimination}, year = {} } @InProceedings{APracticalAndPreciseInferenceAndSpecializerForArrayBoundChecksElimination:2008, title = "A practical and precise inference and specializer for array bound checks elimination", author = "Corneliu Popeea and Dana N. Xu and Wei-Ngan Chin", bibdate = "2008-04-04", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pepm/pepm2008.html#PopeeaXC08", booktitle = "PEPM", booktitle = "Proceedings of the 2008 {ACM} {SIGPLAN} Symposium on Partial Evaluation and Semantics-based Program Manipulation, {PEPM} 2008, San Francisco, California, {USA}, January 7-8, 2008", publisher = "ACM", year = "2008", editor = "Robert Gl{\"u}ck and Oege de Moor", ISBN = "978-1-59593-977-7", pages = "177--187", URL = "http://doi.acm.org/10.1145/1328408.1328434", } @Misc{EfficientIntraproceduralArrayBoundChecking:2008, title = "Efficient Intraprocedural Array Bound Checking", author = "Thi Viet and Nga Nguyenfranc and Ois Irigoin and Ronan Keryelllit and Enst Bretagne", year = "2008", month = feb # "~07", abstract = "Array bound checking is critical for code safety and debugging but users are not ready to trade much execution time for it. A considerable research work has been carried out during the past 25 years but experimental results are scarce. Commercial implementations are limited to intraprocedural array bound checking and are not really fulfilling user expectations fot compilation and execution times. Instead of designing a new specific algorithm, we implemented two algorithms representative of the main published approaches by re-using automatic parallelization techniques available in PIPS, an interprocedural parallelizer. The first algorithm is based on redundant bound checking elimination. The second one is based on insertion of unavoidable tests. Results with the SPEC CFP95 benchmarks show that commercial products could easily be improved using automatic parallelization techniques and that user expectations can be fulfilled for most benchmarks. However, additional techniques would have be used to obtain excellent results for all benchmarks. Our approach to optimize bound checking can also be applied to other imperative languages such as Fortran, Pascal, Java when used for scientific applications.", bibsource = "OAI-PMH server at citeseerx.ist.psu.edu", contributor = "CiteSeerX", language = "en", oai = "oai:CiteSeerXPSU:10.1.1.80.9869", relation = "10.1.1.19.5510; 10.1.1.36.3970; 10.1.1.33.6934; 10.1.1.127.8252; 10.1.1.121.8818; 10.1.1.44.8796; 10.1.1.53.9852; 10.1.1.141.4211; 10.1.1.85.5471; 10.1.1.34.2234; 10.1.1.41.326; 10.1.1.18.3004; 10.1.1.30.1142; 10.1.1.34.7836", rights = "Metadata may be used without restrictions as long as the oai identifier remains attached to it.", subject = "array bound checking; range checking; subscript out of range; bound violation; program verification", URL = "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.9869; http://www.cri.ensmp.fr/classement/doc/A-316.ps", } @Article{SafeBoundsCheckAnnotations:2008, title = "Safe bounds check annotations", author = "Jeffery von Ronne and Andreas Gampe and David Niedzielski and Kleanthis Psarris", journal = "Concurrency and Computation: Practice and Experience", year = "2009", number = "1", volume = "21", bibdate = "2009-05-07", bibsource = "DBLP, http://dblp.uni-trier.de/db/journals/concurrency/concurrency21.html#RonneGNP09", pages = "41--57", URL = "http://dx.doi.org/10.1002/cpe.1341", } @InProceedings{SpeculativeImprovementsToVerfifiableBoundsCheckElimination:2008, title = "Speculative improvements to verifiable bounds check elimination", author = "Andreas Gampe and Jeffery von Ronne and David Niedzielski and Kleanthis Psarris", bibdate = "2008-09-23", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/pppj/pppj2008.html#GampeRNP08", booktitle = "PPPJ", booktitle = "Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, {PPPJ} 2008, Modena, Italy, September 9-11, 2008", publisher = "ACM", year = "2008", volume = "347", editor = "Lu{\'i}s Veiga and Vasco Amaral and R. Nigel Horspool and Giacomo Cabri", ISBN = "978-1-60558-223-8", pages = "85--94", series = "ACM International Conference Proceeding Series", URL = "http://doi.acm.org/10.1145/1411732.1411745", } @InProceedings{ArrayBoundsCheckEliminationForJavaBasedOnSparseRepresentation:2009, title = "Array Bounds Check Elimination for Java Based on Sparse Representation", author = "Keqiao Yang and Zeng Huang and Min Yang", bibdate = "2010-04-23", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/sera/sera2009.html#YangHY09", booktitle = "SERA", booktitle = "Proceedings of the Seventh {ACIS} International Conference on Software Engineering Research, Management and Applications, {SERA} 2009, Haikou, China, 2-4 December 2009", publisher = "IEEE Computer Society", year = "2009", editor = "Roger Y. Lee and Wencai Du and Haeng-Kon Kim and Shaochun Xu", ISBN = "978-0-7695-3903-4", pages = "189--196", URL = "http://doi.ieeecomputersociety.org/10.1109/SERA.2009.11", } @Article{ArrayBoundsCheckEliminationInTheContextOfDeoptimization:2009, title = "Array bounds check elimination in the context of deoptimization", author = "Thomas W{\"u}rthinger and Christian Wimmer and Hanspeter M{\"o}ssenb{\"o}ck", journal = "Sci. Comput. Program", year = "2009", number = "5-6", volume = "74", bibdate = "2009-06-15", bibsource = "DBLP, http://dblp.uni-trier.de/db/journals/scp/scp74.html#WurthingerWM09", pages = "279--295", URL = "http://dx.doi.org/10.1016/j.scico.2009.01.002", } @InProceedings{AVerifiableControlFlowAwareConstraintAnalyzerForBoundsCheckElimination:2009, title = "A Verifiable, Control Flow Aware Constraint Analyzer for Bounds Check Elimination", author = "David Niedzielski and Jeffery von Ronne and Andreas Gampe and Kleanthis Psarris", bibdate = "2009-08-20", bibsource = "DBLP, http://dblp.uni-trier.de/db/conf/sas/sas2009.html#NiedzielskiRGP09", booktitle = "SAS", booktitle = "Static Analysis, 16th International Symposium, {SAS} 2009, Los Angeles, {CA}, {USA}, August 9-11, 2009. Proceedings", publisher = "Springer", year = "2009", volume = "5673", editor = "Jens Palsberg and Zhendong Su", ISBN = "978-3-642-03236-3", pages = "137--153", series = "Lecture Notes in Computer Science", URL = "http://dx.doi.org/10.1007/978-3-642-03237-0", } @Misc{SafeMultiphaseBondsCheckEliminationInJava:2010, author = {Andreas Gampe and David Niedzielski and Jeffery Von Ronne and Kleanthis Psarris}, title = {Safe, Multiphase Bounds Check Elimination in Java}, year = {2010} } ############################################################################### # Documents that cover important auxiliary information! ############################################################################### @Article{AFastAlgorithmForFindingDominatorsInAFlowGraph:1979, author = "Thomas Lengauer and Robert E. Tarjan", title = "A Fast Algorithm for Finding Dominators in a Flow Graph", journal = "ACM Transactions on Programming Languages and Systems", volume = "1", number = "1", pages = "121--141", month = jul, year = "1979", reffrom = "Touzeau:acm:cc:1984", } @Misc{ASImpleFastDominanceAlgorithm:2001, title = "A Simple, Fast Dominance Algorithm", author = "Keith D. Cooper and Timothy J. Harvey and Ken Kennedy", year = "2001", month = aug # "~12", abstract = "This paper returns to a simple formulation of dominance as a global data-flow problem. Some insights into the nature of dominance lead to an implementation of an O(N ) algorithm that runs faster, in practice, than the classic Lengauer-Tarjan algorithm, which has a timebound of O(E log(N)).Wecompare the algorithm to Lengauer-Tarjan because it is the best known and most widely used of the fast algorithms for dominance. Working from the same implementation insights, we also rederive (from earlier work on control dependence by Ferrante, et al.)amethod Contract/grant sponsor: This research was supported, in part, by Darpa through Usafrl contract F30602-97-2-298, and the State of Texas through its Advanced Technology Program, grant number 3604-0122-1999", citeseer-references = "oai:CiteSeerPSU:472597; oai:CiteSeerPSU:87236; oai:CiteSeerPSU:87236; oai:CiteSeerPSU:106151; oai:CiteSeerPSU:54768", annote = "Keith D. Cooper (Rice University; Houston , TX); Ken Kennedy (SUMMARY);", bibsource = "OAI-PMH server at cs1.ist.psu.edu", language = "en", oai = "oai:CiteSeerPSU:573270", rights = "unrestricted", URL = "http://citeseer.ist.psu.edu/573270.html; http://www.cs.rice.edu/~keith/EMBED/dom.pdf", } ############################################################################### # End ###############################################################################