Book Chapters
- David Gregg and M. Anton Ertl, A language and tool for generating efficient virtual machine interpreters, Domain-Specific Program Generation, eds. C. Lengauer, C. Consel, D. Batory, M. Odersky, pp. 195-215, LNCS 3016, 2004.[.pdf]
- David Gregg, James Power and John Waldron, Benchmarking the Java virtual architecture, Java Microarchitectures, eds. Mario Wolczko and Vijaykrishnan Narayanan, pp. 1-18, Kluwer Academic Publishers, 2002.]
Journal Papers
- Nicholas Nash and David Gregg, An Output Sensitive Algorithm for Computing a Maximum Independent Set of a Circle Graph, Information Processing Letters, 2010. To appear.
- Milan Tichy, Jan Schier and David Gregg, GSFAP adaptive filtering using log arithmetic for resource-constrained embedded systems,
ACM Transactions on Embedded Computing Systems. vol. 9, issue 3, article 29, 31 pages, February 2010.
- Nicholas Nash and David Gregg, Comparing Integer Data Structures for 32 and 64-bit Keys, ACM Journal
of Experimental Algorithmics. vol. 15, article 4, 43 pages, March 2010.
- Nicholas Nash, Sylvain Lelait and David Gregg, Efficiently Implementing Maximum Independent Set
Algorithms On Circle Graphs, ACM Journal of Experimental Algorithmics. vol. 12, article 1.9, 34 pages,
February 2009.
- Paul Biggar, Nicholas Nash, Kevin Williams and David Gregg, An experimental study of study of sorting and branch prediction, ACM Journal of Experimental Algorithmics, vol. 12, article 1.8, 39 pages, June 2008.[preprint]
- Yunhe Shi, Kevin Casey, M. Anton Ertl and David Gregg, Virtual machine showdown: stack versus registers, in ACM Transactions on Architecture and Code Optimization, vol.4, no. 4, article 2, 36 pages, January 2008.[preprint]
- Kevin Casey, M. Anton Ertl and David Gregg, Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters, ACM Transactions on Programming Languages and Systems, vol. 29, issue 6, article 37, 36 pages, October 2007.[preprint]
- Emre Ozer, Resit Sendag and David Gregg, Multiple-valued logic buses for reducing bus energy in low-power systems, IEE Proceedings on Computers and Digital Techniques, vol. 153(4), pp. 270-282, IEE, July 2006.
- Yunhe Shi, Emre Ozer and David Gregg, Analyzing effects of trace cache configurations on the prediction of indirect branches, in Journal of Instruction-Level Parallelism, vol. 8, January 2006.[.pdf]
- David Gregg, Andrew Beatty, Kevin Casey, Brian Davis and Andy Nisbet, The case for virtual register machines, in Science of Computer Programming, pp. 319-338, vol. 57, 2005. [Expanded version of IVME 2003 paper][.pdf]
- Emre Ozer, Andy Nisbet, David Gregg and Owen Callanan, Estimating bus size for custom processors in embedded systems, Design Automation for Embedded Systems, vol. 10(1), pp. 5-26, Springer, March 2005.
- David Gregg, John Waldron and James Power, A method-level comparison of the Java Grande and SPEC JVM98 benchmark suites, Concurrency and Computation Practice and Experience, vol. 17(7-8), pp. 757-773, Wiley Interscience, 2005.
- M. Anton Ertl and David Gregg, The structure and performance of efficient interpreters, in Journal of Instruction-Level Parallelism, vol. 5, November 2003.[.pdf]
- David Gregg, James Power and John Waldron, Platform independent dynamic Java Virtual Machine analysis: the Java Grande forum benchmark suite, Concurrency and Computation Practice and Experience, vol. 15(3-5), pp. 459-484, Wiley Interscience, 2003.
- M. Anton Ertl, David Gregg, Andreas Krall and Bernd Paysan, Vmgen - a generator of efficient virtual machine interpreters, in Software Practice and Experience, vol. 32(3), pp. 265-294, Wiley Interscience, 2002.[.ps.gz]
Refereed Conference and Workshop Papers
- Kevin Williams, Jason McCandless and David Gregg. Dynamic Interpretation for Dynamic Scripting Languages, in Proceedings of the 2010 ACM International Symposium on Code Generation and Optimization. To appear.
- Kevin Williams, Jason McCandless and David Gregg. Portable Just-in-time Specialization of Dynamically
Typed Scripting Languages, in Proceedings of the 2009 International Workshops on Languages and Compilers for
Parallel Computing. To appear.
- Raymond Manley and David Gregg. Mapping Streaming Languages to General Purpose Processors through
Vectorization, in Proceedings of the 2009 International Workshops on Languages and Compilers for
Parallel Computing. To appear.
- Mounira Bachir, David Gregg and Sid-Ahmed-Ali Touati. Using The Meeting Graph Framework to Minimise
Kernel Loop Unrolling for Scheduled Loops, in Proceedings of the 2009 International Workshops on Languages and
Compilers for Parallel Computing. To appear.
- Nicholas Nash and David Gregg. Comparing Integer Data Structures for 32 and 64 Bit Keys, in
Proceedings of WEA 2008 (7th International Workshop on Experimental Algorithms, Provincetown, Cape Cod, MA,
USA, 30 May - 2 June 2008), LNCS 5038, pp28-42. Springer, 2008.
- Mark Purcell, Owen Callanan, David Gregg. Streamlining Offload Computing to High Performance
Architectures., in Workshop on Using Emerging Parallel Architectures for Computational Science, pp. 974-983,
May 2009.
- Paul Biggar, Edsko de Vries and David Gregg. A Practical Solution for Scripting Language Compilers, in
SAC '09: ACM Symposium on Applied Computing (2009), pp. 1916-1923, March 2009.
- Yuhne Shi, Emre Ozer and David Gregg. Low-cost microarchitectural techniques for enhancing the
prediction of return addresses on high-performance trace cache processors, in Proceedings of the 21st Annual
Symposium on Computer and Information Sciences (ISCIS 06), Istanbul, Turkey, November 2006.
- Milan Tichy, Jan Schier and David Gregg. FPGA implementation of adaptive filters based on GSFAP using log arithmetic, in Proceedings of the 2006 IEEE Workshop on Signal Processing Systems Design and Implementation (SiPS 06), IEEE, pp. 342-347, Banff, Canada, October 2006.
- Owen Callanan, David Gregg, Andy Nisbet and Mike Peardon, High performance scientific computing using FPGAs with IEEE floating point and logarithmic arithmetic for Lattice QCD, in Proceedings of the 16th International Conference on Field Programmable Logic and Applications (FPL 06), IEEE CS, pp. 29-34, Madrid, Spain, August 2006.
- M. Anton Ertl, Kevin Casey and David Gregg, Fast and flexible instruction selection with on-demand tree-parsing automata, in Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI 06), pp. 52-60, Ottawa, Canada, June 2006.[.ps.gz]
- Yunhe Shi, David Gregg, Andrew Beatty and M. Anton Ertl, Virtual machine showdown: stack versus registers, in Proceedings of the ACM/SIGPLAN Conference of Virtual Execution Environments (VEE 05), pp. 153-163, Chicago Illinois, June 2005.[.pdf]
- Emre Ozer, Resit Sendag and David Gregg, Multiple-Valued Caches for Power-Efficient Embedded Systems, in 35th IEEE International Symposium on Multiple-Valued Logic (ISMVL 2005), pp. 126-131, Calgary, Canada, May 2005.[.pdf]
- Owen Callanan, Andy Nisbet, Emre Ozer, James Sexton and David Gregg, FPGA Implementation of a Lattice Quantum Chromodynamics Algorithm Using Logarithmic Arithmetic, in 12th Reconfigurable Architectures Workshop (RAW 2005), in 19th International Parallel and Distributed Processing Symposium CD-ROM / Abstracts Proceedings, IEEE Computer Society, Denver, California, May 2005.[.pdf]
- M. Anton Ertl and David Gregg, Retargeting JIT compilers using C-compiler generated executable code, in Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT 04), pp. 7-14, Antibes Juan les Pins, Septmber 2004.[.ps.gz]
- Emre Ozer, Andy Nisbet and David Gregg, Automatic customization of embedded applications for enhanced performance and reduced power using optimizing compiler techniques, in Proceedings of the 10th European Conference on Parallel Computing (Europar 04), pp. 318-327, LNCS 3149, Pisa, August 2004.[.pdf]
- M. Anton Ertl and David Gregg, Combining stack-caching with dynamic superinstructions, in Proceedings of the ACM SIGPLAN 2004 Workshop on Interpreters, Virtual Machines and Emulators (IVME 04), Washington DC, pp. 7-14, June 2004. [.ps.gz]
- Emre Ozer, Andy Nisbet and David Gregg, Stochastic bit-width approximation using extreme value theory for cutomizable processors, in Proceedings of the 12th International Conference on Compiler Construction (CC 04), pp. 250-264, LNCS 2985, Barcelona, April 2004.
- Kevin Casey, David Gregg M. Anton Ertl and Andrew Nisbet, Towards superinstructions for Java interpeters, in Proceedings of the 7th International Workshoop on Software and Compilers for Embedded Systems (SCOPES 03), pp. 329-343, LNCS 2826, Vienna, September 2003.
- M. Anton Ertl and David Gregg, Optimizing Indirect Branch Prediction Accuracy in Virtual Machine Interpreters, in Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI 03), pp. 278-288, San Diego, California, June 2003.[.ps.gz]
- Brian Davis, Andrew Beatty, Kevin Casey, David Gregg and John Waldron, The case for virtual register machines, in Proceedings of the ACM SIGPLAN 2003 Workshop on Interpreters, Virtual Machines and Emulators (IVME 03), San Diego, pp. 41-49, California, June 2003.[.ps.gz]
- Andrew Beatty, Kevin Casey, David Gregg and Andrew Nisbet, An optimized Java interpreter for connected devices and embedded systems, in Proceedings of the 18th ACM Symposium on Applied Computing (SAC 03), pp. 692-697, Melbourne, Florida, March 2003.
- David Gregg and John Waldron, Primitive sequences in general purpose Forth programs, in Proceedings of the 18th EuroForth European Conference on Forth, pp. 24-32, Vienna, Austria, September 2002.[.ps.gz]
- M. Anton Ertl and David Gregg Building an interpreter with Vmgen, in Proceedings of the 10th International Conference on Compiler Construction (CC 2002), pp. 5-8, LNCS 2304, Grenoble, April 2002.[.ps.gz]
- David Gregg, M. Anton Ertl and John Waldron, The common case in Forth programs, in Proceedings of the 17th EuroForth European Conference on Forth, ISBN 0907550976, Schloss Dagstuhl, Germany, November 2001.[.ps.gz]
- M. Anton Ertl and David Gregg, The behaviour of efficient virtual machine interpreters on modern architectures, in Proceedings of the 7th European Conference on Parallel Computing (Europar 2001), pp. 403-412, LNCS 2150, Manchester, August 2001.[.pdf]
- David Gregg, M. Anton Ertl and Andreas Krall, Implementation of an Efficient Java Interpreter, in Proceedings of the 9th High Performance Computing and Networking Conference, pp. 613-620, LNCS 2110, Amsterdam, June 2001.[.ps.gz]
- John Waldron and David Gregg, Identification and Quantification of Hotspots in Grande Java Programs, in Proceedings of the 9th High Performance Computing and Networking Conference, pp. 701-710, LNCS 2110, Amsterdam, June 2001.
- David Gregg, Comparing Tail Duplication with Compensation Code in single path global instruction scheduling, in Proceedings of the 9th International Conference on Compiler Construction (CC 2001), pp. 200-212, LNCS 2027, Genoa, April 2001.[.ps.gz]
- David Gregg, M. Anton Ertl and Andreas Krall, A fast Java interpreter, in Java Optimization Strategies for Embedded Systems Workshop (JOSES), Genoa, April 2001.[.ps.gz]
- David Gregg, Global software pipelining with Iteration Preselection, in Proceedings of the 8th International Conference on Compiler Construction (CC 2000), 189-201, LNCS 1781, Berlin, March 2000.[.ps.gz]
Technical Reports
- Paul Biggar and David Gregg, Sorting in the Presence of Branch Prediction and Caches, Technical Report TCD-CS-2005-57, Department of Computer Science, University of Dublin, Trinity College, August 2005.[.pdf]
- Kevin Casey, M. Anton Ertl and David Gregg, Optimizations for a Java Interpreter Using Instruction Set Enhancement, Technical Report TCD-CS-2005-61, Department of Computer Science, University of Dublin, Trinity College, August 2005.[.pdf]
Theses
- David Gregg, Compilation Techniques for Instruction Level Parallelism in the Presence of Loops and Branches, PhD Thesis, Technische Universitaet Wien, June 2001.[.ps.gz]
- David Gregg, An Alias Analysis Algorithm for Object-Oriented Programs, MSc Thesis, Department of Computer Science, University College Dublin, November 1996.
Invited Talks
- David Gregg. Comparing Code Duplication and Compensation Code, in Code Optimisation: Trends, Challenges and Perspectives Dagstuhl-Seminar-Report 286, September 2000.
- David Gregg. Global Software Pipelining with Iteration Preselection, seminar presented at the INRIA-Rocquencourt research centre near Paris, October 1999.
- David Gregg. Software Pipelining with Iteration Preselection, in Instruction-Level Parallelism and Parallelizing Compilation Dagstuhl-Seminar-Report 237, April 1999.