1 # General books and articles that cover the topic over all and are necessary for understanding the whole problem.
\r
2 ###############################################################################
\r
4 @Manual{JavaVMSpecification1.0:1995,
\r
5 title = "The {Java} Virtual Machine Specification",
\r
8 URL = "http://java.sun.com/doc/vmspec/VMSpec.ps",
\r
9 keywords = "java, virtual machine, bytecode",
\r
10 edition = "1.0 Beta",
\r
11 annote = "a virtual machine similar to UCSD p-code or smalltalk.
\r
12 stack-machine. dynamic loading. direct support for
\r
13 object orientation (e.g. virtual method calls)",
\r
14 organization = "Sun Microsystems",
\r
18 @Book{JavaLanguageSpecificationv3.0:2005,
\r
19 author = "James Gosling and Bill Joy and Guy Steele and Gilad
\r
21 address = "Boston, Mass.",
\r
22 title = "The {Java} Language Specification, Third Edition",
\r
23 publisher = "Addison-Wesley",
\r
24 series = "The Java Series",
\r
28 @Article{CompilingJavaJustInTime:1997,
\r
29 author = "Timothy Cramer and Richard Friedman and Terrence
\r
30 Miller and David Seherger and Robert Wilson and Mario
\r
32 title = "Compiling {Java} Just in Time: Using runtime
\r
33 compilation to improve {Java} program performance",
\r
34 journal = "IEEE Micro",
\r
38 month = may # "\slash " # jun,
\r
42 bibdate = "Tue Aug 12 12:35:06 MDT 1997",
\r
43 URL = "http://pascal.computer.org/mi/books/mi1997/pdf/m3036.pdf",
\r
44 acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
\r
45 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
46 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
47 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
48 \path|beebe@acm.org|, \path|beebe@computer.org|
\r
50 \path|http://www.math.utah.edu/~beebe/|",
\r
53 @InProceedings{FastEffectiveCodeGenerationInAJustInTimeJavaCompiler:1998,
\r
54 title = "Fast, Effective Code Generation in a Just-In-Time Java
\r
56 author = "Ali-Reza Adl-Tabatabai and Michal Cierniak and
\r
57 Guei-Yuan Lueh and Vishesh M. Parikh and James M.
\r
60 bibdate = "2010-01-10",
\r
62 http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#Adl-TabatabaiCLPS98",
\r
65 URL = "http://doi.acm.org/10.1145/277650.277740",
\r
68 @InProceedings{TheDesignAndImplementationOfACertifyingCompiler:1998,
\r
69 author = "G. Necula and P. Lee",
\r
70 title = "The {D}esign and {I}mplementation of a {C}ertifying
\r
72 booktitle = "Proc. of PLDI'98",
\r
74 publisher = "ACM Press",
\r
77 @InProceedings{DesignImplementationAndEvaluationOfOptimizationsInAJavaJustInTimeCompiler:1999,
\r
78 title = "Design, Implementation, and Evaluation of
\r
79 Optimizations in a Just-in-Time Compiler",
\r
80 author = "Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki
\r
81 Yasue and Mikio Takeuchi and Takeshi Ogasawara and
\r
82 Toshio Suganuma and Tamiya Onodera and Hideaki Komatsu
\r
83 and Toshio Nakatani",
\r
85 bibdate = "2002-12-17",
\r
87 http://dblp.uni-trier.de/db/conf/java/java1999.html#IshizakiKYTOSOKN99",
\r
88 booktitle = "Java Grande",
\r
90 URL = "http://doi.acm.org/10.1145/304065.304111",
\r
93 @Article{CacaoA64BitJavaVMJustInTimeCompiler:1997,
\r
94 author = "Andreas Krall and Reinhard Grafl",
\r
95 title = "{CACAO} -- {A} 64-bit Java{VM} Just-in-Time Compiler",
\r
96 journal = "Concurrency: Practice and Experience",
\r
99 pages = "1017--1030",
\r
102 keywords = "computational science \& engineering Java: simulation
\r
106 @book{HandbookForJavaCacaoVirtualMachine:1996,
\r
107 title= {Handbook for Java Cacao Virtual Machine},
\r
108 author= {Andreas Krall and Reinhard Grafl et al.},
\r
109 publisher= {http://www.cacaovm.org},
\r
114 @Article{MarmotAnOptimizingCompilerForJava:2000,
\r
115 title = "Marmot: an optimizing compiler for Java",
\r
116 author = "Robert P. Fitzgerald and Todd B. Knoblock and Erik Ruf
\r
117 and Bjarne Steensgaard and David Tarditi",
\r
118 journal = "Softw, Pract. Exper",
\r
122 bibdate = "2003-11-25",
\r
124 http://dblp.uni-trier.de/db/journals/spe/spe30.html#FitzgeraldKRST00",
\r
125 pages = "199--232",
\r
128 @InProceedings{VerifiableAnnotationsForEmbeddedJavaEnvironments:2005,
\r
129 title = "Verifiable annotations for embedded java
\r
131 author = "Guangyu Chen and Mahmut T. Kandemir",
\r
132 bibdate = "2006-02-15",
\r
134 http://dblp.uni-trier.de/db/conf/cases/cases2005.html#ChenK05",
\r
135 booktitle = "CASES",
\r
136 booktitle = "Proceedings of the 2005 International Conference on
\r
137 Compilers, Architecture, and Synthesis for Embedded
\r
138 Systems, {CASES} 2005, San Francisco, California,
\r
139 {USA}, September 24-27, 2005",
\r
142 editor = "Thomas M. Conte and Paolo Faraboschi and William H.
\r
143 Mangione-Smith and Walid A. Najjar",
\r
144 ISBN = "1-59593-149-X",
\r
145 pages = "105--114",
\r
146 URL = "http://doi.acm.org/10.1145/1086297.1086312",
\r
149 @Book{ModernCompilerImplementationInC:1998,
\r
150 author = "Andrew W. Appel",
\r
151 title = "Modern Compiler Implementation in {C}",
\r
152 publisher = "Cambridge University Press",
\r
153 ISBN = "0-521-58390-X",
\r
157 ###############################################################################
\r
158 # Now some references are presented that deal with intermediate representations especially with several SSA forms.
\r
159 ###############################################################################
\r
161 @Article{EfficientlyComputingSSAFormAndTheControlDependenceGraph:1991,
\r
162 author = "Ron Cytron and Jeanne Ferrante and Barry K. Rosen and
\r
163 Mark N. Wegman and F. Kenneth Zadeck",
\r
164 title = "Efficiently computing static single assignment form
\r
165 and the control dependence graph",
\r
169 added-by = "msteiner",
\r
170 URL = "http://doi.acm.org/10.1145/115372.115320",
\r
171 added-at = "Sat Jul 29 09:22:31 2006",
\r
172 annote = "Classical paper on the SSA (Static Single Assignment)
\r
173 form for intermediary code representation in
\r
174 (optimizing) compilers. See
\r
175 \url{http://www.cs.man.ac.uk/~jsinger/ssa.html} for
\r
176 bibliography of SSA related work.",
\r
177 pages = "451--490",
\r
178 journal = "TOPLAS",
\r
182 @Article{AVerifiableSSAProgramRepresentationForAgressiveCompilerOptimization:2006,
\r
183 author = "Menon and Glew and Murphy and McCreight and Shpeisman
\r
184 and Adl-Tabatabai and Petersen",
\r
185 title = "A Verifiable {SSA} Program Representation for
\r
186 Aggressive Compiler Optimization",
\r
187 journal = "SPNOTICES: ACM SIGPLAN Notices",
\r
192 @Article{SafeTSAATypeSafeAndReferentiallySecureMobileCodeRepresentationBasedOnStaticSingleAssignmentForm:2001,
\r
193 author = "Wolfram Amme and Niall Dalton and Jeffery von Ronne
\r
194 and Michael Franz",
\r
195 title = "{SafeTSA}: {A} Type Safe and Referentially Secure
\r
196 Mobile-Code Representation Based on Static Single
\r
198 journal = "ACM SIG{\-}PLAN Notices",
\r
201 pages = "137--147",
\r
205 ISSN = "0362-1340",
\r
206 bibdate = "Sun Dec 14 09:18:26 MST 2003",
\r
207 bibsource = "http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
\r
208 http://portal.acm.org/",
\r
209 acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
\r
210 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
211 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
212 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
213 \path|beebe@acm.org|, \path|beebe@computer.org|
\r
215 \path|http://www.math.utah.edu/~beebe/|",
\r
218 @Misc{UsingTheSafeTSARepresentationToBoostThePerformanceOfAnExistingJavaVirtualMachine:2002,
\r
219 title = "Using the Safe{TSA} Representation to Boost the
\r
220 Performance of an Existing Java Virtual Machine",
\r
221 author = "Wolfram Amme and Jeffery Von Ronne and Michael Franz",
\r
223 month = dec # "~07",
\r
224 abstract = "High-performance just-in-time compilers for Java need
\r
225 to invest considerable effort before actual code
\r
226 generation can commence. SafeTSA, a typed intermediate
\r
227 representation based on SSA form, was designed to ease
\r
228 this burden, decreasing the time required for dynamic
\r
229 compilation, without sacrificing safety or code
\r
231 citeseer-references = "oai:CiteSeerPSU:2678; oai:CiteSeerPSU:717751;
\r
232 oai:CiteSeerPSU:284691; oai:CiteSeerPSU:554814;
\r
233 oai:CiteSeerPSU:114398; oai:CiteSeerPSU:328282;
\r
234 oai:CiteSeerPSU:89224",
\r
235 annote = "Wolfram Amme (Friedrich-Schiller-Universit at Jena;
\r
236 Institut f ur Informatik; Ernst-Abbe-Platz 1-4; D-07743
\r
237 Jena , Germany); Jeffery Von Ronne (Information and
\r
238 Computer Science; 127B Computer Science Trailer);
\r
239 Michael Franz (Information and Computer Science; 444
\r
240 Computer Science Bldg);",
\r
241 bibsource = "OAI-PMH server at cs1.ist.psu.edu",
\r
243 oai = "oai:CiteSeerPSU:599324",
\r
244 rights = "unrestricted",
\r
245 URL = "http://citeseer.ist.psu.edu/599324.html;
\r
246 http://www.ics.uci.edu/~jronne/pubs/cpc2003-safetsa5.pdf",
\r
249 ###############################################################################
\r
250 # The following documents now deal with the special topic of array bound check optimization.
\r
251 # The order is chronologic from the real beginning to the most recent publications.
\r
252 ###############################################################################
\r
254 @Article{CompilerAnalysisOfTheValueRangesForVariables:1977,
\r
255 author = "W. Harrison",
\r
256 title = "Compiler analysis of the value ranges for variables",
\r
257 journal = "IEEE Transactions on Software Engineering",
\r
262 keywords = "data flow analysis,",
\r
265 @InProceedings{ImplementationOfAnArrayBoundChecker:1977,
\r
266 title = "Implementation of an Array Bound Checker",
\r
267 author = "Norihisa Suzuki and Kiyoshi Ishihata",
\r
269 bibdate = "2010-01-28",
\r
271 http://dblp.uni-trier.de/db/conf/popl/popl77.html#SuzukiI77",
\r
272 booktitle = "POPL",
\r
273 cdrom = "POPL/00001437.PDF",
\r
274 pages = "132--143",
\r
275 URL = "http://doi.acm.org/10.1145/512950.512963",
\r
278 @Article{EconomicRangeChecksInPascal:1978,
\r
279 author = "J. Welsh",
\r
280 title = "Economic range checks in {Pascal}",
\r
281 journal = "Software -- Practice \& Experience",
\r
287 @Article{GlobalOptimizationBySuppressionOfPartialRedundancies:1979,
\r
288 author = "E. Morel and C. Renvoise",
\r
289 title = "Global optimization by suppression of partial
\r
291 journal = "Communications of the ACM",
\r
299 @InProceedings{OptimizationOfRangeChecking:1982,
\r
300 author = "Victoria Markstein and John Cocke and Peter
\r
302 title = "Optimization of Range Checking",
\r
303 booktitle = "Proceedings of the {SIGPLAN} '82 Symposium on Compiler
\r
305 address = "Boston, Massachusetts",
\r
306 month = jun # " 23--25,",
\r
308 pages = "114--119",
\r
311 @Article{OptimizationOfRangeChecking:1987,
\r
312 author = "Victoria Markstein and Peter Markstein and John
\r
314 title = "Optimization of range checking",
\r
315 journal = "ACM SIG{\-}PLAN Notices",
\r
322 ISSN = "0362-1340",
\r
323 bibdate = "Tue Apr 12 09:38:13 MDT 2005",
\r
324 bibsource = "http://portal.acm.org/",
\r
325 acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
\r
326 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
327 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
328 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
329 \path|beebe@acm.org|, \path|beebe@computer.org|
\r
331 \path|http://www.math.utah.edu/~beebe/|",
\r
334 @Article{AFreshLookAtOptimizingArrayBoundChecking:1990,
\r
335 author = "Rajiv Gupta",
\r
336 title = "A fresh look at optimizing array bound checking",
\r
337 journal = "ACM SIG{\-}PLAN Notices",
\r
340 pages = "272--282",
\r
344 ISSN = "0362-1340",
\r
345 bibdate = "Sun Dec 14 09:15:53 MST 2003",
\r
346 bibsource = "http://portal.acm.org/",
\r
347 acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
\r
348 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
349 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
350 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
351 \path|beebe@acm.org|, \path|beebe@computer.org|
\r
353 \path|http://www.math.utah.edu/~beebe/|",
\r
356 @Article{OptimizationOfArraySubscriptRangeChecks:1992,
\r
357 title = "Optimization of Array Subscript Range Checks",
\r
358 author = "Johnathan M. Asuru",
\r
359 journal = "ACM Letters on Programming Languages and Systems",
\r
360 pages = "109--118",
\r
367 @Article{OptimizingArrayBoundChecksUsingFlowAnalysis:1993,
\r
368 title = "Optimizing Array Bound Checks Using Flow Analysis",
\r
369 author = "Rajiv Gupta",
\r
370 journal = "LOPLAS",
\r
374 bibdate = "2002-12-02",
\r
376 http://dblp.uni-trier.de/db/journals/loplas/loplas2.html#Gupta93",
\r
377 pages = "135--150",
\r
378 URL = "http://doi.acm.org/10.1145/176454.176507",
\r
381 @InProceedings{EliminationOfRedundantArraySubscriptRangeChecks:1995,
\r
382 title = "Elimination of Redundant Array Subscript Range
\r
384 author = "Priyadarshan Kolte and Michael Wolfe",
\r
386 bibdate = "2010-01-10",
\r
388 http://dblp.uni-trier.de/db/conf/pldi/pldi95.html#KolteW95",
\r
389 booktitle = "PLDI",
\r
390 pages = "270--278",
\r
391 URL = "http://doi.acm.org/10.1145/207110.207160",
\r
394 @InProceedings{EliminatingArrayBoundCheckingThroughDependentTypes:1998,
\r
395 title = "Eliminating Array Bound Checking Through Dependent
\r
397 author = "Hongwei Xi and Frank Pfenning",
\r
399 bibdate = "2010-01-10",
\r
401 http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#XiP98",
\r
402 booktitle = "PLDI",
\r
403 pages = "249--257",
\r
404 URL = "http://doi.acm.org/10.1145/277650.277732",
\r
407 @Article{OptimizingArrayReferenceCheckingInJavaPrograms:1998,
\r
408 title = "Optimizing Array Reference Checking in Java Programs",
\r
409 author = "Samuel P. Midkiff and Jos{\'e} E. Moreira and Marc
\r
411 journal = "IBM Systems Journal",
\r
415 bibdate = "2002-01-03",
\r
417 http://dblp.uni-trier.de/db/journals/ibmsj/ibmsj37.html#MidkiffMS98",
\r
418 pages = "409--453",
\r
421 @InProceedings{TowardsArrayBoundCheckEliminationInJavaTMVirtualMachineLanguage:1999,
\r
422 title = "Towards array bound check elimination in Java $^{TM}$
\r
423 virtual machine language",
\r
424 author = "Hongwei Xi and Songtao Xia",
\r
425 bibdate = "2006-02-15",
\r
427 http://dblp.uni-trier.de/db/conf/cascon/cascon1999.html#XiX99",
\r
428 booktitle = "CASCON",
\r
429 booktitle = "Proceedings of the 1999 conference of the Centre for
\r
430 Advanced Studies on Collaborative Research, November
\r
431 8-11, 1999, Mississauga, Ontario, Canada",
\r
434 editor = "Stephen A. MacKay and J. Howard Johnson",
\r
436 URL = "http://doi.acm.org/10.1145/781995.782009",
\r
439 @InProceedings{ABCDEliminatingArrayBoundsChecksOnDemand:2000,
\r
440 author = "Rastislav Bodik and Rajiv Gupta and Vivek Sarkar",
\r
441 title = "{ABCD}: eliminating array bounds checks on demand",
\r
442 booktitle = "Proceedings of the ACM SIGPLAN 2000 Conference on
\r
443 Programming Language Design and Implementation",
\r
445 pages = "321--333",
\r
446 abstract = "similar to SSI, has phi functions, and also pi
\r
447 functions to rename at conditional branches and after
\r
448 array bounds checks",
\r
449 URL = "http://doi.acm.org/10.1145/349299.349342",
\r
452 @book{ProcessorWithAcceleratedArrayAcessBoundsChecking:2000,
\r
453 title= {USPatent: Processor with Accelerated Array Acess Bounds Checking},
\r
454 author= {Marc Tremblay and James M. O'Connor and William N. Joy},
\r
455 publisher= {Sun Microsystems, Inc.},
\r
460 @InProceedings{AFrameworkForOptimizingJavaUsingAttributes:2000,
\r
461 title = "A framework for optimizing Java using attributes",
\r
462 author = "Patrice Pominville and Feng Qian and Raja
\r
463 Vall{\'e}e-Rai and Laurie J. Hendren and Clark
\r
465 bibdate = "2006-02-15",
\r
467 http://dblp.uni-trier.de/db/conf/cascon/cascon2000.html#PominvilleQVHV00",
\r
468 booktitle = "CASCON",
\r
469 booktitle = "Proceedings of the 2000 conference of the Centre for
\r
470 Advanced Studies on Collaborative Research, November
\r
471 13-16, 2000, Mississauga, Ontario, Canada",
\r
474 editor = "Stephen A. MacKay and J. Howard Johnson",
\r
476 URL = "http://doi.acm.org/10.1145/782034.782042",
\r
479 @book{ApparatusAndMethodForArrayBoundsCheckingWithAShadowFile:2001,
\r
480 title= {USPatent: Apparatus and Method for Array Bounds Checking with a Shadow File},
\r
481 author= {Gautam Dewan},
\r
482 publisher= {Sun Microsystems, Inc.},
\r
489 @InProceedings{DerivingPreconditionsForArrayBoundCheckElimination:2001,
\r
490 title = "Deriving Pre-Conditions for Array Bound Check
\r
492 author = "Wei-Ngan Chin and Siau-Cheng Khoo and Dana N. Xu",
\r
494 bibdate = "2004-06-01",
\r
496 http://dblp.uni-trier.de/db/conf/aplas/aplas2000.html#ChinKX00",
\r
497 booktitle = "APLAS",
\r
501 @InProceedings{AComparisonOfArrayBoundsCheckingOnSuperscalarAndVLIWArchitectures:2002,
\r
502 author = {Chris Bentley and Scott A. Watterson and David K. Lowenthal},
\r
503 title = {A Comparison of Array Bounds Checking on Superscalar and VLIW Architectures},
\r
504 booktitle = {IEEE Workshop on Workload Characterization},
\r
508 @Article{AComprehensiveApproachToArrayBoundsCheckEliminationForJava:2002,
\r
509 author = "Feng Qian and Laurie Hendren and Clark Verbrugge",
\r
510 title = "A Comprehensive Approach to Array Bounds Check
\r
511 Elimination for {Java}",
\r
512 journal = "Lecture Notes in Computer Science",
\r
517 ISSN = "0302-9743",
\r
518 bibdate = "Tue Sep 10 19:09:22 MDT 2002",
\r
519 bibsource = "http://link.springer-ny.com/link/service/series/0558/tocs/t2304.htm",
\r
520 URL = "http://link.springer-ny.com/link/service/series/0558/bibs/2304/23040325.htm;
\r
521 http://link.springer-ny.com/link/service/series/0558/papers/2304/23040325.pdf",
\r
522 acknowledgement = "Nelson H. F. Beebe, Center for Scientific
\r
523 Computing, University of Utah, Department of
\r
524 Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
525 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
526 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
527 \path|beebe@acm.org|, \path|beebe@computer.org|,
\r
528 \path|beebe@ieee.org| (Internet), URL:
\r
529 \path|http://www.math.utah.edu/~beebe/|",
\r
532 @InProceedings{EliminationOfJavaArrayBoundsChecksInThePresenceOfIndirection:2002,
\r
533 author = "Mikel Luj{\'a}n and John R. Gurd and T. L. Freeman and
\r
535 title = "Elimination of Java array bounds checks in the
\r
536 presence of indirection",
\r
538 booktitle = "Proceedings of the 2002 joint {ACM}-{ISCOPE}
\r
539 conference on Java Grande ({JGI}-02)",
\r
540 month = nov # " ~3--5",
\r
541 publisher = "ACM Press",
\r
542 address = "New York",
\r
546 @book{MethodForOptimizingArrayBoundsChecksInPrograms:2002,
\r
547 title= {USPatent: Method for Optimizing Array Bounds Checks in Programs},
\r
548 author= {Manish Gupta and Samuel Pratt Midkiff and Jose Eduardo Moreira},
\r
549 publisher= {IBM Corporation},
\r
554 @Article{ArrayBoundsCheckEliminationUtilizingAPageProtectionMechanism:2003,
\r
555 title= {Array Bounds Check Elimination Utilizing a Page Protection Mechanism},
\r
556 author= {Motohiro Kawahito},
\r
557 publisher= {IBM Research, Tokyo Research Laboratory},
\r
558 journal= {RT0550 Computer Science},
\r
559 address= {1623-14, Shimotsuruma, Yamato, Kanagawa, 242-8502, Japan},
\r
564 @Article{EfficientAndEffectiveArrayBoundChecking:2005,
\r
565 author = "Thi Viet Nga Nguyen and Fran{\c{c}}ois Irigoin",
\r
566 title = "Efficient and effective array bound checking",
\r
567 journal = "ACM Transactions on Programming Languages and
\r
571 pages = "527--570",
\r
575 ISSN = "0164-0925",
\r
576 bibdate = "Thu Jul 7 12:37:29 MDT 2005",
\r
577 bibsource = "http://www.acm.org/pubs/contents/journals/toplas/",
\r
578 acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
\r
579 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
\r
580 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
\r
581 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
\r
582 \path|beebe@acm.org|, \path|beebe@computer.org|
\r
584 \path|http://www.math.utah.edu/~beebe/|",
\r
585 fjournal = "ACM Transactions on Programming Languages and
\r
589 @Article{SymbolicBoundsAnalysisOfPointersArrayIndicesAndAccessedMemoryRegions:2005,
\r
590 author = "Rugina and Rinard",
\r
591 title = "Symbolic Bounds Analysis of Pointers, Array Indices,
\r
592 and Accessed Memory Regions",
\r
593 journal = "ACMTOPLAS: ACM Transactions on Programming Languages
\r
599 @InProceedings{ArrayBoundsCheckEliminationForTheJavaHotSpotTMClientCompiler:2007,
\r
600 title = "Array bounds check elimination for the Java
\r
601 HotSpot{\texttrademark} client compiler",
\r
602 author = "Thomas W{\"u}rthinger and Christian Wimmer and
\r
603 Hanspeter M{\"o}ssenb{\"o}ck",
\r
604 bibdate = "2007-10-22",
\r
606 http://dblp.uni-trier.de/db/conf/pppj/pppj2007.html#WurthingerWM07",
\r
607 booktitle = "PPPJ",
\r
608 booktitle = "Proceedings of the 5th International Symposium on
\r
609 Principles and Practice of Programming in Java, {PPPJ}
\r
610 2007, Lisboa, Portugal, September 5-7, 2007",
\r
614 editor = "Vasco Amaral and Luis Marcelino and Lu{\'i}s Veiga and
\r
615 H. Conrad Cunningham",
\r
616 ISBN = "978-1-59593-672-1",
\r
617 pages = "125--133",
\r
618 series = "ACM International Conference Proceeding Series",
\r
619 URL = "http://doi.acm.org/10.1145/1294325.1294343",
\r
622 @Misc{VerifiableRangeAnalysisAnnotationsForArrayBoundsCheckElimination:2007,
\r
623 author = {Jeffery Von Ronne and Kleanthis Psarris and David Niedzielski},
\r
624 title = {Verifiable Range Analysis Annotations for Array Bounds Check Elimination},
\r
628 @InProceedings{APracticalAndPreciseInferenceAndSpecializerForArrayBoundChecksElimination:2008,
\r
629 title = "A practical and precise inference and specializer for
\r
630 array bound checks elimination",
\r
631 author = "Corneliu Popeea and Dana N. Xu and Wei-Ngan Chin",
\r
632 bibdate = "2008-04-04",
\r
634 http://dblp.uni-trier.de/db/conf/pepm/pepm2008.html#PopeeaXC08",
\r
635 booktitle = "PEPM",
\r
636 booktitle = "Proceedings of the 2008 {ACM} {SIGPLAN} Symposium on
\r
637 Partial Evaluation and Semantics-based Program
\r
638 Manipulation, {PEPM} 2008, San Francisco, California,
\r
639 {USA}, January 7-8, 2008",
\r
642 editor = "Robert Gl{\"u}ck and Oege de Moor",
\r
643 ISBN = "978-1-59593-977-7",
\r
644 pages = "177--187",
\r
645 URL = "http://doi.acm.org/10.1145/1328408.1328434",
\r
648 @Misc{EfficientIntraproceduralArrayBoundChecking:2008,
\r
649 title = "Efficient Intraprocedural Array Bound Checking",
\r
650 author = "Thi Viet and Nga Nguyenfranc and Ois Irigoin and Ronan
\r
651 Keryelllit and Enst Bretagne",
\r
653 month = feb # "~07",
\r
654 abstract = "Array bound checking is critical for code safety and
\r
655 debugging but users are not ready to trade much
\r
656 execution time for it. A considerable research work has
\r
657 been carried out during the past 25 years but
\r
658 experimental results are scarce. Commercial
\r
659 implementations are limited to intraprocedural array
\r
660 bound checking and are not really fulfilling user
\r
661 expectations fot compilation and execution times.
\r
662 Instead of designing a new specific algorithm, we
\r
663 implemented two algorithms representative of the main
\r
664 published approaches by re-using automatic
\r
665 parallelization techniques available in PIPS, an
\r
666 interprocedural parallelizer. The first algorithm is
\r
667 based on redundant bound checking elimination. The
\r
668 second one is based on insertion of unavoidable tests.
\r
669 Results with the SPEC CFP95 benchmarks show that
\r
670 commercial products could easily be improved using
\r
671 automatic parallelization techniques and that user
\r
672 expectations can be fulfilled for most benchmarks.
\r
673 However, additional techniques would have be used to
\r
674 obtain excellent results for all benchmarks. Our
\r
675 approach to optimize bound checking can also be applied
\r
676 to other imperative languages such as Fortran, Pascal,
\r
677 Java when used for scientific applications.",
\r
678 bibsource = "OAI-PMH server at citeseerx.ist.psu.edu",
\r
679 contributor = "CiteSeerX",
\r
681 oai = "oai:CiteSeerXPSU:10.1.1.80.9869",
\r
682 relation = "10.1.1.19.5510; 10.1.1.36.3970; 10.1.1.33.6934;
\r
683 10.1.1.127.8252; 10.1.1.121.8818; 10.1.1.44.8796;
\r
684 10.1.1.53.9852; 10.1.1.141.4211; 10.1.1.85.5471;
\r
685 10.1.1.34.2234; 10.1.1.41.326; 10.1.1.18.3004;
\r
686 10.1.1.30.1142; 10.1.1.34.7836",
\r
687 rights = "Metadata may be used without restrictions as long as
\r
688 the oai identifier remains attached to it.",
\r
689 subject = "array bound checking; range checking; subscript out of
\r
690 range; bound violation; program verification",
\r
691 URL = "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.9869;
\r
692 http://www.cri.ensmp.fr/classement/doc/A-316.ps",
\r
695 @Article{SafeBoundsCheckAnnotations:2008,
\r
696 title = "Safe bounds check annotations",
\r
697 author = "Jeffery von Ronne and Andreas Gampe and David
\r
698 Niedzielski and Kleanthis Psarris",
\r
699 journal = "Concurrency and Computation: Practice and Experience",
\r
703 bibdate = "2009-05-07",
\r
705 http://dblp.uni-trier.de/db/journals/concurrency/concurrency21.html#RonneGNP09",
\r
707 URL = "http://dx.doi.org/10.1002/cpe.1341",
\r
710 @InProceedings{SpeculativeImprovementsToVerfifiableBoundsCheckElimination:2008,
\r
711 title = "Speculative improvements to verifiable bounds check
\r
713 author = "Andreas Gampe and Jeffery von Ronne and David
\r
714 Niedzielski and Kleanthis Psarris",
\r
715 bibdate = "2008-09-23",
\r
717 http://dblp.uni-trier.de/db/conf/pppj/pppj2008.html#GampeRNP08",
\r
718 booktitle = "PPPJ",
\r
719 booktitle = "Proceedings of the 6th International Symposium on
\r
720 Principles and Practice of Programming in Java, {PPPJ}
\r
721 2008, Modena, Italy, September 9-11, 2008",
\r
725 editor = "Lu{\'i}s Veiga and Vasco Amaral and R. Nigel Horspool
\r
726 and Giacomo Cabri",
\r
727 ISBN = "978-1-60558-223-8",
\r
729 series = "ACM International Conference Proceeding Series",
\r
730 URL = "http://doi.acm.org/10.1145/1411732.1411745",
\r
733 @InProceedings{ArrayBoundsCheckEliminationForJavaBasedOnSparseRepresentation:2009,
\r
734 title = "Array Bounds Check Elimination for Java Based on
\r
735 Sparse Representation",
\r
736 author = "Keqiao Yang and Zeng Huang and Min Yang",
\r
737 bibdate = "2010-04-23",
\r
739 http://dblp.uni-trier.de/db/conf/sera/sera2009.html#YangHY09",
\r
740 booktitle = "SERA",
\r
741 booktitle = "Proceedings of the Seventh {ACIS} International
\r
742 Conference on Software Engineering Research, Management
\r
743 and Applications, {SERA} 2009, Haikou, China, 2-4
\r
745 publisher = "IEEE Computer Society",
\r
747 editor = "Roger Y. Lee and Wencai Du and Haeng-Kon Kim and
\r
749 ISBN = "978-0-7695-3903-4",
\r
750 pages = "189--196",
\r
751 URL = "http://doi.ieeecomputersociety.org/10.1109/SERA.2009.11",
\r
754 @Article{ArrayBoundsCheckEliminationInTheContextOfDeoptimization:2009,
\r
755 title = "Array bounds check elimination in the context of
\r
757 author = "Thomas W{\"u}rthinger and Christian Wimmer and
\r
758 Hanspeter M{\"o}ssenb{\"o}ck",
\r
759 journal = "Sci. Comput. Program",
\r
763 bibdate = "2009-06-15",
\r
765 http://dblp.uni-trier.de/db/journals/scp/scp74.html#WurthingerWM09",
\r
766 pages = "279--295",
\r
767 URL = "http://dx.doi.org/10.1016/j.scico.2009.01.002",
\r
770 @InProceedings{AVerifiableControlFlowAwareConstraintAnalyzerForBoundsCheckElimination:2009,
\r
771 title = "A Verifiable, Control Flow Aware Constraint Analyzer
\r
772 for Bounds Check Elimination",
\r
773 author = "David Niedzielski and Jeffery von Ronne and Andreas
\r
774 Gampe and Kleanthis Psarris",
\r
775 bibdate = "2009-08-20",
\r
777 http://dblp.uni-trier.de/db/conf/sas/sas2009.html#NiedzielskiRGP09",
\r
779 booktitle = "Static Analysis, 16th International Symposium, {SAS}
\r
780 2009, Los Angeles, {CA}, {USA}, August 9-11, 2009.
\r
782 publisher = "Springer",
\r
785 editor = "Jens Palsberg and Zhendong Su",
\r
786 ISBN = "978-3-642-03236-3",
\r
787 pages = "137--153",
\r
788 series = "Lecture Notes in Computer Science",
\r
789 URL = "http://dx.doi.org/10.1007/978-3-642-03237-0",
\r
792 @Misc{SafeMultiphaseBondsCheckEliminationInJava:2010,
\r
793 author = {Andreas Gampe and David Niedzielski and Jeffery Von Ronne and Kleanthis Psarris},
\r
794 title = {Safe, Multiphase Bounds Check Elimination in Java},
\r
798 ###############################################################################
\r
799 # Documents that cover important auxiliary information!
\r
800 ###############################################################################
\r
802 @Article{AFastAlgorithmForFindingDominatorsInAFlowGraph:1979,
\r
803 author = "Thomas Lengauer and Robert E. Tarjan",
\r
804 title = "A Fast Algorithm for Finding Dominators in a Flow
\r
806 journal = "ACM Transactions on Programming Languages and
\r
810 pages = "121--141",
\r
813 reffrom = "Touzeau:acm:cc:1984",
\r
816 @Misc{ASImpleFastDominanceAlgorithm:2001,
\r
817 title = "A Simple, Fast Dominance Algorithm",
\r
818 author = "Keith D. Cooper and Timothy J. Harvey and Ken
\r
821 month = aug # "~12",
\r
822 abstract = "This paper returns to a simple formulation of
\r
823 dominance as a global data-flow problem. Some insights
\r
824 into the nature of dominance lead to an implementation
\r
825 of an O(N ) algorithm that runs faster, in practice,
\r
826 than the classic Lengauer-Tarjan algorithm, which has a
\r
827 timebound of O(E log(N)).Wecompare the algorithm to
\r
828 Lengauer-Tarjan because it is the best known and most
\r
829 widely used of the fast algorithms for dominance.
\r
830 Working from the same implementation insights, we also
\r
831 rederive (from earlier work on control dependence by
\r
832 Ferrante, et al.)amethod Contract/grant sponsor: This
\r
833 research was supported, in part, by Darpa through
\r
834 Usafrl contract F30602-97-2-298, and the State of Texas
\r
835 through its Advanced Technology Program, grant number
\r
837 citeseer-references = "oai:CiteSeerPSU:472597; oai:CiteSeerPSU:87236;
\r
838 oai:CiteSeerPSU:87236; oai:CiteSeerPSU:106151;
\r
839 oai:CiteSeerPSU:54768",
\r
840 annote = "Keith D. Cooper (Rice University; Houston , TX); Ken
\r
841 Kennedy (SUMMARY);",
\r
842 bibsource = "OAI-PMH server at cs1.ist.psu.edu",
\r
844 oai = "oai:CiteSeerPSU:573270",
\r
845 rights = "unrestricted",
\r
846 URL = "http://citeseer.ist.psu.edu/573270.html;
\r
847 http://www.cs.rice.edu/~keith/EMBED/dom.pdf",
\r
852 ###############################################################################
\r
854 ###############################################################################
\r