// The array should be sorted reverse-chronologically, and will be displayed on
// the page in the order listed.
var PUBS =
[
  { url: "http://systems.cs.columbia.edu/files/wpid-peregrine-sosp11.pdf",
    author: "Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, Junfeng Yang",
    title: "Efficient Deterministic Multithreading through Schedule Relaxation",
    published: "ACM Symposium on Operating Systems Principles (SOSP)",
    month: 10,
    year: 2011,
  },

  { url: "",
    author: "Haohui Mai, Ahmed Khurshid, Rachit Agarwal, Matthew Caesar, P. Brighten Godfrey, and Samuel T. King",
    title: "Debugging the Data Plane with Anteater",
    published: "Annual Conference of the ACM Special Interest Group on Data Communication (SIGCOMM)",
    month: 8,
    year: 2011,
  },

  { url: "http://www.hipeac.net/system/files?file=standaloneopencl.pdf",
    author: "Pekka J&auml;&auml;skel&auml;inen, Carlos S. de La Lama, Pablo Huerta, and Jarmo Takala",
    title: "OpenCL-based Design Methodology for Application-Specific Processors",
    published: "Transactions on HiPEAC",
    month: 7,
    year: 2011,
  },

  { url: "http://liberty.princeton.edu/Publications/index.php?abs=1&setselect=pldi11_cuda",
    author: "Thomas B. Jablin, Prakash Prabhu, James A. Jablin, Nick P. Johnson, Stephen R. Beard, and David I. August",
    title: "Automatic CPU-GPU Communication Management and Optimization",
    published: "ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)",
    month: 6,
    year: 2011,
  },

  { url: "http://liberty.princeton.edu/Publications/index.php?abs=1&setselect=pldi11_commset",
    author: "Prakash Prabhu, Soumyadeep Ghosh, Yun Zhang, Nick P. Johnson, and David I. August",
    title: "Commutative Set: A Language Extension for Implicit Parallel Programming",
    published: "ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)",
    month: 6,
    year: 2011,
  },

  { url: "",
    author: "Xiaoming Gu and Chen Ding",
    title: "On the Theory and Potential of LRU-MRU Collaborative Cache Management",
    published: "International Symposium on Memory Management (ISMM)",
    month: 6,
    year: 2011,
  },

  { url: "http://homepages.uni-paderborn.de/mgrad/Mariusz_Grad_Homepage/Publications_files/grad11_raw_paper.pdf",
    author: "Mariusz Grad and Christian Plessl",
    title: "Just-in-time Instruction Set Extension - Feasibility and Limitations for an FPGA-based Reconfigurable ASIP Architecture",
    published: "Reconfigurable Architectures Workshop (RAW 2011), Proceedings of the International Parallel and Distributed Processing Symposium",
    location: "Anchorage, Alaska, USA.",
    month:  5,
    year: 2011
  },

  { url: "",
    author: "Ben Hardekopf and Calvin Lin",
    title: "Flow-Sensitive Pointer Analysis for Millions of Lines of Code",
    published: "International Symposium on Code Generation and Optimization (CGO)",
    month: 4,
    year: 2011,
  },

  { url: "",
    author: "Ralf Karrenberg",
    title: "Whole-Function Vectorization",
    published: "International Symposium on Code Generation and Optimization (CGO)",
    month: 4,
    year: 2011,
  },

  { url: "http://dx.doi.org/10.1002/spe.1059",
    author: "James Stanier and Des Watson",
    title: "A study of irreducibility in C programs",
    published: "Software: Practice and Experience",
    month: 3,
    year: 2011,
  },

 { url: "2011-02-FOSDEM-LLVMAndClang.html",
   title: "LLVM and Clang: Advancing Compiler Technology",
   published: "Keynote Talk, <a href='http://fosdem.org/2011/'>FOSDEM 2011</a>: Free and Open Source Developers European Meeting",
   location: "Brussels, Belgium",
   author: "Chris Lattner",
   month: 2,
   year: 2011
 },

  { url: "http://homepages.uni-paderborn.de/mgrad/Mariusz_Grad_Homepage/Publications_files/grad10_reconfig_paper.pdf",
    author: "Mariusz Grad and Christian Plessl",
    title: "Pruning the Design Space for Just-in-time Processor Customization",
    published: "Proceedings of the International Conference on Reconfigurable Computing (ReConFig 2010)",
    location: "Cancun, Mexico",
    month: 12,
    year: 2010.
  },

 { url: "2010-12-Preuss-PathProfiling.html",
 title: "Implementation of Path Profiling in the Low-Level Virtual-Machine (LLVM) Compiler Infrastructure",
published: "Technical Report #10-05, University of Alberta",
location: "Alberta, Canada",
author: "Adam Preuss",
 month: 12,
  year: 2010
 },

 { url: "2010-10-HotDep-CrashRecovery.html",
  title: "We Crashed, Now What?",
published: "Proc. of the 6th Workshop on Hot Topics in System Dependability (HotDep '10)",
location: "Vancouver, BC, Canada",
author: "Cristiano Giuffrida, Lorenzo Cavallaro, and Andrew S. Tanenbaum",
 month: 10,
  year: 2010
 },

 { url: "2010-10-OSDI-DeterministicMT.html",
  title: "Stable Deterministic Multithreading through Schedule Memoization",
published: "Proc. of the Ninth Symposium on Operating Systems Design and Implementation (OSDI '10)",
location: "Vancouver, BC, Canada",
 author: "Heming Cui and Jingyue Wu and Chia-che Tsai and Junfeng Yang",
  month: 10,
   year: 2010
  },

 { url: "2010-10-OSDI-BypassingRaces.html",
  title: "Bypassing Races in Live Applications with Execution Filters",
published: "Proc. of the Ninth Symposium on Operating Systems Design and Implementation (OSDI '10)",
location: "Vancouver, BC, Canada",
 author: "Jingyue Wu, Heming Cui, Junfeng Yang",
  month: 10,
   year: 2010
  },
  {url: "2010-09-HASKELLSYM-LLVM-GHC.html",
   title: "An LLVM Backend for GHC",
   published: "ACM SIGPLAN Haskell Symposium 2010",
   location: "Baltimore, Maryland",
   author: "David A. Terei and Manuel M. T. Chakravarty",
   month: 9,
   year: 2010},
  {
            url: "2010-09-ESORICS-FixOverflows.html",
            title: "IntPatch: Automatically Fix Integer-Overflow-to-Buffer-Overflow Vulnerability at Compile-Time",
            published: "Proc. of the 15th European Symposium on Research in Computer Security (ESORICS 2010)",
            location: "Athen, Greece",
            author: "Chao Zhang, Tielei Wang, Tao Wei, Yu Chen, and Wei Zou",
            month: 9,
            year: 2010
  },
  {url: "2010-08-SBLP-SSI.html",
   title: "Efficient SSI Conversion",
   published: "Brazilian Symposium on Programming Languages 2010",
   location: "Salvador, Brazil",
   author: "Andr&eacute; Tavares, Fernando Magno Pereira, Mariza Bigonha and Roberto Bigonha",
   month: 9,
   year: 2010},
  {
            url: "2010-07-CAV-LazyAnnot.html",
            title: "Lazy Annotation for Program Testing and Verification",
            published: "Proceedings of Computer Aided Verification (CAV 2010)",
            author: "Kenneth McMillan",
            location: "Edinburgh, UK",
            month: 7,
            year: 2010
  },
  {url: "2010-06-ISCA-Relax.html",
   title: "Relax: An Architectural Framework for Software Recovery of Hardware Faults",
   published: "ISCA '10: International Symposium on Computer Architecture",
   author: "M. de Kruijf, S. Nomura, and K.Sankaralingam",
   month: 6,
   year: 2010},
   {url: "2010-06-ISMM-SpeculativeParallelization.html",
   title: "Speculative Parallelization Using State Separation and Multiple Value Prediction",
   published: "Proc. of the 2010 International Symposium on Memory Management",
   author: "Chen Tian, Min Feng, Rajiv Gupta",
   month: 6,
   year: 2010},
  {url: "2010-06-ISMM-CETS.html",
   title: "CETS: Compiler Enforced Temporal Safety for C",
   published: "Proc. of the 2010 International Symposium on Memory Management",
   author: "Santosh Nagarakatte, Jianzhou Zhao, Milo M K Martin and Steve Zdancewic",
   month: 6,
   year: 2010},
   {url: "2010-06-06-Clang-LLVM.html",
    title: "Clang/LLVM Maturity Report",
    published: "Proceedings of the Summer 2010 Research Seminar",
    author: "Dominic Fandrey",
    month: 6,
    year: 2010},
  {url: "2010-05-Oakland-HyperSafe.html",
   title: "HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity",
   published: "IEEE Symposium on Security & Privacy 2010",
   author: "Zhi Wang and Xuxian Jiang",
   month: 5,
   year: 2010},
  {url: "2010-05-01-ClangBSD.html",
   title: "ClangBSD",
   published: "BSDcan 2010",
   author: "Roman Divacky",
   month: 5,
   year: 2010},
  {url: "2010-05-ICSE-QualityOfService.html",
   title: "Quality of Service Profiling",
   published: "Proc. of the 2010 IEEE 32st International Conference on Software Engineering (ICSE'10)",
   author: "Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin Rinard",
   location: "Cape Town, South Africa",
   month: 5,
   year: 2010},
  {url: "2010-04-EUROSYS-DresdenTM.html",
   title: "Evaluation of AMD's Advanced Synchronization Facility within a Complete Transactional Memory Stack",
   published: "Proc. of the 5th ACM European Conference on Computer Systems (EuroSys'10)",
   author: "Dave Christie, Jae-Woong Chung, et al",
   location: "Paris, France",
   month: 4,
   year: 2010},
  {url: "2010-04-EUROSYS-Returnless.html",
   title: "Defeating Return-Oriented Rootkits with \"Return-Less\" Kernels",
   published: "Proc. of the 5th ACM European Conference on Computer Systems (EuroSys'10)",
   author: "Jinku Li, Zhi Wang, Xuxian Jiang, Michael Grace, and Sina Bahram",
   location: "Paris, France",
   month: 4,
   year: 2010},
  {url: "2010-04-EUROSYS-RevNIC.html",
   title: "Reverse Engineering of Binary Device Drivers with RevNIC",
   published: "Proc. of the 5th ACM European Conference on Computer Systems (EuroSys'10)",
   author: "Vitaly Chipounov and George Candea",
   location: "Paris, France",
   month: 4,
   year: 2010},
  {url: "2010-04-EUROSYS-ExecutionSynthesis.html",
   title: "Execution Synthesis: A Technique for Automated Software Debugging",
   published: "Proc. of the 5th ACM European Conference on Computer Systems (EuroSys'10)",
   author: "Cristian Zamfir and George Candea",
   location: "Paris, France",
   month: 4,
   year: 2010},


 {url: '2010-04-NeustifterProfiling.html',
  title: 'Efficient Profiling in the LLVM Compiler Infrastructure',
  author: 'Andreas Neustifter',
  published: "Masters Thesis",
  location: 'Vienna University of Technology',
  month: 4,
  year: 2010},

  {url: "2010-03-VEE-VMKit.html",
   title: "VMKit: a Substrate for Managed Runtime Environments",
   published: "Proc. of the Virtual Execution Environments Conference (VEE '10)",
   author: "Nicolas Geoffray, Gael Thomas, Julia Lawall, Gilles Muller, and Bertil Folliot",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-03-GPGPU-ModelingGPGPU.html",
   title: "Modeling GPU-CPU Workloads and Systems",
   published: "Proc. of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units (GPGPU-3)",
   author: "Andrew Kerr, Gregory Diamos, and Sudhakar Yalamanchili",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-03-ASPLOS-Shoestring.html",
   title: "Shoestring: Probabilistic Soft Error Reliability on the Cheap",
   published: "Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10)",
   author: "Shuguang Feng, Shantanu Gupta, Amin Ansari, and Scott Mahlke",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-03-ASPLOS-Orthrus.html",
   title: "Orthrus: Efficient Software Integrity Protection on Multi-core",
   published: "Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10)",
   author: "Ruirui Huang, Daniel Y. Deng, G. Edward Suh",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-03-ASPLOS-ConservationCores.html",
   title: "Conservation Cores: Reducing the Energy of Mature Computations",
   published: "Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10)",
   author: "Ganesh Venkatesh, Jack Sampson, Nathan Goulding, Saturnino Garcia, Vladyslav Bryksin, Jose Lugo-Martinez, Steven Swanson, Michael Bedford Taylor",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-03-ASPLOS-SpeculativeParallelization.html",
   title: "Speculative Parallelization using Software Multi-Threaded Transactions",
   published: "Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10)",
   author: "Arun Raman, Hanjun Kim, Thomas R. Mason, Thomas B. Jablin, David I. August",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},
  {url: "2010-04-ASPLOS-DeterministicCompiler.html",
   title: "CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution",
   published: "Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10)",
   author: "Tom Bergan, Owen Anderson, Joseph Devietti, Luis Ceze, and Dan Grossman",
   location: "Pittsburgh, PA",
   month: 3,
   year: 2010},

  {url: "2010-02-FPGA-BitLevel.html",
   title: "Bit-Level Optimization for High-Level Synthesis and FPGA-Based Acceleration",
   published: "Proc. of the 18th Annual ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA'10)",
   author: "Jiyu Zhang, Zhiru Zhang, Sheng Zhou, Mingxing Tan, Xianhua Liu, Xu Cheng, Jason Cong",
   location: "Monterey, CA",
   month: 2,
   year: 2010},
  {url: "2010-02-IPSJ-CustomInstruction.html",
   title: "Custom Instruction Generation for Configurable Processors with Limited Numbers of Operands",
   published: "IPSJ Transactions on System LSI Design Methodology",
   author: "Kenshu Seto and Masahiro Fujita",
   month: 2,
   year: 2010},
  {url: "2010-01-Wennborg-Thesis.html",
    title: "Emulator Speed-up Using JIT and LLVM",
    published: "Master's Thesis, Lund University",
    location: "Lund, Sweden",
    author: "Hans Wennborg",
    month: 1,
    year: 2010},
  {url: "2009-12-MICRO-DDT.html",
    title: "DDT: Design and Evaluation of a Dynamic Program Analysis for Optimizing Data Structure Usage",
    published: "Proc. of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42)",
    author: "Changhee Jung, Nathan Clark",
    location: "New York, NY",
    month: 12,
    year: 2009},

  {url: "2009-10-LCPC-DataRestructuring.html",
   title: "Automatic Restructuring of Linked Data Structures",
   published: "Proc. of the 22nd International Workshop on Languages and Compilers for Parallel Computing (LCPC'09)",
   author: "H.L.A. van der Spek, C.W.M. Holm and H.A.G. Wijshof",
   location: "Newark, DE",
   month: 10,
   year: 2009},

  {url: "2009-10-TereiThesis.html",
   title: "Low Level Virtual Machine for Glasgow Haskell Compiler",
   published: "Bachelor's Thesis, Computer Science and Engineering Dept., The University of New South Wales",
   author: "David Terei",
   location: "Sydney, Australia",
   month: 10,
   year: 2009},

  { url: "2009-10-CASES-ProgressiveSpill.html",
    title: "Progressive spill code placement",
    author: "Dietmar Ebner, Bernhard Scholz, and Andreas Krall",
    published: "Proc. of the 2009 international conference on Compilers, architecture, and synthesis for embedded systems (CASES'09)",
    location: "Grenoble, France",
    month: 10,
    year: 2009},

   {url: "2009-10-CODES-TotalProf.html",
    title: "TotalProf: a fast and accurate retargetable source code profiler",
   author: "Lei Gao, Jia Huang, Jianjiang Ceng, Rainer Leupers, Gerd Ascheid, and Heinrich Meyr",
    published: "Proc. of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis (CODES+ISSS'09)",
   location: "Grenoble, France",
    month: 10,
    year: 2009},

  {url: "2009-10-CODES-MPSoC.html",
   title: "A High-Level Virtual Platform for Early MPSoC Software Development",
   author: "Jianjiang Ceng, Weihua Sheng, Jeronimo Castrillon, Anastasia Stulova, Rainer Leupers, Gerd Ascheid and Heinrich Meyr",
   published: "Proc. of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis (CODES+ISSS'09)",
   location: "Grenoble, France",
    month: 10,
    year: 2009},


  {url: "",
   title: "AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware",
   published: "28th International Conference, SAFECOMP 2009",
   author: "Christof Fetzer, Ute Schiffel, and Martin SuBkraut",
   location: "Hamburg, Germany",
   month: 9,
   year: 2009},

  {url: "",
   title: "Performance Modelling for Avionics Systems",
   published: "Computer Aided Systems Theory (EUROCAST 2009)",
   author: "Visar Januzaj, Ralf Mauersberger and Florian Biechele",
   location: "",
   month: 9,
   year: 2009},

  {url: "",
   title: "Automatic Generation of Cycle-Approximate TLMs with Timed RTOS Model Support",
   published: "Analysis, Architectures and Modelling of Embedded Systems 2009 (IESS 2009)",
   author: "Yonghyun Hwang, Gunar Schirner, and Samar Abdi",
   location: "Langenargen, Germany",
   month: 9,
   year: 2009},

  {url: "2009-09-SBCCI.html",
   title: "An Early Real-Time Checker for Retargetable Compile-Time Analysis",
   author: "Emilio Wuerges, Luiz C. V. dos Santos, Olinto Furtado, and Sandro Rigo",
   published: "Proc. of the 22nd Annual Symposium on Integrated Circuits and System Design (SBCCI'09)",
   location: "Natal, Brazil",
   month: 9,
   year: 2009},

  {url: "2009-08-EUROPAR-Blame.html",
   title: "Assigning Blame: Mapping Performance to High Level Parallel Programming Abstractions",
   published: "EuroPar'09",
   author: "Nick Rutar and Jeffrey K. Hollingsworth",
   location: "Delft",
   month: 8,
   year: 2009},

  {url: "2009-08-FSE-Altair.html",
   title: "API hyperlinking via structural overlap",
   published: "Proc. of the ACM symposium on The foundations of software engineering symposium (FSE'09)",
   author: "Fan Long, Xi Wang, and Yang Cai",
   location: "Amsterdam, The Netherlands",
   month: 8,
   year: 2009},

  {url: '2009-08-SAS-IPSSA.html',
   title: "Increasing the scope and resolution of Interprocedural Static Single Assignment",
   author: "Silvian Calman and Jianwen Zhu",
   published: "Proc. of the 16th International Static Analysis Symposium (SAS 2009)",
   location: "Los Angeles, CA",
   month: 8,
   year: 2009},

  {url: '2009-08-12-UsenixSecurity-SafeSVAOS.html',
   title: 'Memory Safety for Low-Level Software/Hardware Interactions',
   author: 'John Criswell, Nicolas Geoffray, and Vikram Adve',
   published: "Proc. of the Eighteenth Usenix Security Symposium",
   location: "Montreal, Canada",
   month: 8,
   year: 2009},

  {url: '2009-08-Zoltar.html',
   title: "Zoltar: a spectrum-based fault localization tool",
   author: "Tom Janssen, Rui Abreu, and Arjan J.C. van Gemund",
   published: "Proc. of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime",
   location: "Amsterdam, The Netherlands",
   month: 8,
   year: 2009},

  {url: "2009-08-ISLPED.html",
   title: "Behavior-Level Observability Don't-Cares and Application to Low-Power Behavioral Synthesis",
   author: "Jason Cong, Bin Liu, Zhiru Zhang",
   published: "Proc. of the 14th ACM/IEEE international symposium on Low power electronics and design (ISLPED'09)",
   location: "San Francisco, CA",
   month: 8,
   year: 2009},

  {url: '2009-08-RehmeThesis.html',
   title: "An Internal Representation for Adaptive Online Parallelization",
   author: 'Koy D. Rehme',
   published: "M.S. Thesis, Brigham Young University",
   location: "USA",
   month: 8,
   year: 2009},

  { url: "http://homepages.uni-paderborn.de/mgrad/Mariusz_Grad_Homepage/Publications_files/grad09_ersa_paper.pdf",
    author: "Mariusz Grad and Christian Plessl",
    title: "Woolcano: An Architecture and Tool Flow for Dynamic Instruction Set Extension on Xilinx Virtex-4 FX",
    published: "Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms (ERSA 2009)",
    location: "Las Vegas, Nevada, USA",
    month: 7,
    year: 2009
  },

  {url: '2009-07-ISSTA-BegBunch.html',
   title: 'BegBunch: benchmarking for C bug detection tools',
   author: 'Cristina Cifuentes, Christian Hoermann, Nathan Keynes, Lian Li, Simon Long, Erica Mealy, Michael Mounteney, and Bernhard Scholz',
   published: 'Proc. of the 2nd International Workshop on Defects in Large Software Systems: Held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2009)',
   location: 'Chicago, Illinois',
   month: 7,
   year: 2009},

  {url: "",
   title: "Verifying the Implementation of an Operating System Scheduler",
   author: "Moritz Kleine, Bjorn Bartels, Thomas Gothel, and Sabine Glesner",
   published: "IEEE International Symposium on Theoretical Aspects of Software Engineering",
   location: 'Tianjin, China',
   month: 7,
   year: 2009},

  {url: "",
   title: "Programmable and Scalable Architecture for Graphics Processing Units",
   author: "Carlos S. Lama, Pekka Jaaskelainen, Jarmo Takala",
   published: "Proc. of the 9th International Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation",
   location: "Samos, Greece",
   month: 7,
   year: 2009},
  {url: "2009-07-Karrenberg-Thesis.html",
   title: "Automatic Packetization",
   author: "Ralf Karrenberg",
   published: "Master's Thesis, Universit&auml;t des Saarlandes",
   location: "Saarbr&uuml;cken, Germany",
   month: 7,
   year: 2009},
  {url: "2009-06-DSReplacement.html",
   title: "Toward Automatic Data Structure Replacement for Effective Parallelization",
   author: "Changhee Jung and Nathan Clark",
   published: "Proc. Workshop on Parallel Execution of Sequential Programs on Multicore Architectures (PESPMA'09)",
   location: "",
   month: 6,
   year: 2009},

  {url: "2009-06-MansinghkaThesis.html",
   title: "Natively Probabilistic Computation",
   author: "Vikash Kumar Mansinghka",
   published: "Ph.D. Thesis,  Massachusetts Institute of Technology",
   location: "USA",
   month: 6,
   year: 2009},

  {url: "2009-06-PLDI-Parallelizing.html",
   title: "Parallelizing sequential applications on commodity hardware using a low-cost software transactional memory",
   author: "Mojtaba Mehrara,	Jeff Hao,	Po-Chun Hsu, and Scott Mahlke",
   published: "Proc. ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI'09)",
   location: "Dublin, Ireland",
   month: 6,
   year: 2009},

  {url: '2009-06-PLDI-LibraryBindings.html',
   title: 'Automatic generation of library bindings using static analysis',
   author: 'Tristan Ravitch, Steve Jackson, Eric Aderhold, and Ben Liblit',
   published: "Proc. ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI'09)",
   location: "Dublin, Ireland",
   month: 6,
   year: 2009},

  {url: '2009-06-PLDI-SoftBound.html',
   title: 'SoftBound: Highly Compatible and Complete Spatial Memory Safety for C',
   author: 'Santosh Nagarakatte, Jianzhou Zhao, Milo M K Martin and Steve Zdancewic',
   published: "Proc. ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI'09)",
   location: "Dublin, Ireland",
   month: 6,
   year: 2009},

  {url: '2009-06-ISC-DataMiningOnGPUs.html',
   title: 'A Translation System for Enabling Data Mining Applications on GPUs',
   author: 'Wenjing Ma and Gagan Agrawal',
   published: "Proc. 23rd International Conference on Supercomputing (ISC'09)",
   location: "Yorktown Heights, NY",
   month: 6,
   year: 2009},

  {url: '2009-06-HotDep-SymbolicExec.html',
   title: 'Selective Symbolic Execution',
   author: 'Vitaly Chipounov, Vlad Georgescu, Cristian Zamfir, and George Candea',
   published: "Proc. Fifth Workshop on Hot Topics in System Dependability (HotDep'09)",
   location: "Lisbon, Portugal",
   month: 6,
   year: 2009},

  {url: '2009-06-27-edwin.html',
   title: 'Interprocedural bounds checker for C programs using symbolic constraints and slicing',
   author: 'Edvin T&ouml;r&ouml;k',
   published: "Undergraduate Thesis, 'Politehnica' University of Timisoara",
   location: "Timisoara, Romania",
   month: 6,
   year: 2009},

  {url: "2009-06-JPP-SpeculativeParallel.html",
   title: "Speculative Parallelization of Sequential Loops on Multicores",
   author: "Chen Tian, Min Feng, Vijay Nagarajan and Rajiv Gupta",
   published: "International Journal of Parallel Programming",
   location: "",
   month: 6,
   year: 2009},

  {url: "2009-05-IWMSE-COMPASS.html",
   title: "COMPASS: A Community-driven Parallelization Advisor for Sequential Software",
   author: "Simha Sethumadhavan,  Nipun Arora, Ravindra Babu Ganapathi,   John Demme, and Gail E. Kaiser",
   published: "Proc. of the 2009 ICSE Workshop on Multicore Software Engineering (IWMSE '09)",
   location: "Washington, DC, USA",
   month: 5,
   year: 2009},

  {url: '2009-05-21-Thesis-Barrett-3c.html',
   title: '3c: A JIT Compiler with LLVM',
   author: 'Edd Barrett',
   published: "Final Year Project, Bournemouth University",
   location: "United Kingdom",
   month: 5,
   year: 2009},

  {url: '2009-05-EnsuringCorrectnessOfCompiledCode.html',
   title: 'Ensuring Correctness of Compiled Code',
   author: 'Ganna Zaks',
   published: "Ph.D. Thesis, Computer Science Dept., New York University",
   location: "New York, NY",
   month: 5,
   year: 2009},

  { url: "http://homepages.uni-paderborn.de/mgrad/Mariusz_Grad_Homepage/Publications_files/grad09_fccm_poster.pdf",
    author: "Mariusz Grad and Christian Plessl",
    title: "Woolcano: An Architecture and Tool Flow for Dynamic Instruction Set Extension on Xilinx Virtex-4 FX",
    published: "Proceedings of IEEE Symposium on Field-Programmable Custom Machines (FCCM 2009)",
    location: "Napa, CA, USA",
    month: 4,
    year: 2009
  },

  {url: '2009-04-TECS-MEMMU.html',
   title: 'MEMMU: Memory expansion for MMU-less embedded systems',
   author: 'Lan S. Bai, Lei Yang, and Robert P. Dick',
   published: "Proc. of the ACM Transactions on Embedded Computing Systems (TECS)",
   location: "New York, NY, USA",
   month: 4,
   year: 2009},

  {url: '2009-04-SCOPES-SimulationOfInterruptsWithRollback.html',
   title: 'Precise simulation of interrupts using a rollback mechanism',
   author: 'Florian Brandner',
   published: "Proc. of the 12th International Workshop on Software and Compilers for Embedded Systems (SCOPES'09)",
   location: "Nice, France",
   month: 4,
   year: 2009},

  {url: '2009-04-SCOPES-RegisterAllocationDeconstructed.html',
   title: 'Register allocation deconstructed',
   author: 'David Ryan Koes and Seth Copen Goldstein',
   published: "Proc. of the 12th International Workshop on Software and Compilers for Embedded Systems (SCOPES'09)",
   location: "Nice, France",
   month: 4,
   year: 2009},

  {url: "",
   title: "Scheduling Techniques for Multi-Core Architectures",
   author: "Akira Hatanaka and Nader Bagherzadeh",
   published: "2009 Sixth International Conference on Information Technology: New Generations",
   month: 4,
   year: 2009},

  {url: '2009-03-CGO-ESoftCheck.html',
   title: 'ESoftCheck: Removal of Non-vital Checks for Fault Tolerance',
   author: 'Jing Yu, Maria Jesus Garzaran, Marc Snir',
   published: "Proc. of the Seventh International Symposium on Code Generation and Optimization (CGO '09)",
   month: 3,
   year: 2009 },

  {url: '2009-03-ASPLOS-DMP.html',
   title: 'DMP: deterministic shared memory multiprocessing',
   author: 'Joseph Devietti, Brandon Lucia, Luis Ceze, and Mark Oskin',
   published: "Proc. of the Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '09)",
   month: 3,
   year: 2009},

  {url: '2009-03-ASPLOS-Recovery.html',
   title: 'Recovery Domains: An Organizing Principle for Recoverable Operating Systems',
   author: 'Andrew Lenharth, Samuel T. King, Vikram Adve',
   published: "Proc. of the Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '09)",
   month: 3,
   year: 2009},

   {url: '2009-03-ACMSE-Superpage.html',
    title: 'A Case for Compiler-driven Superpage Allocation',
    author: 'Joshua Magee and Apan Qasem',
    published: "Proc. of the 47th ACM Southeast Regional Conference (ACMSE09)",
    month: 3,
    year: 2009},

   {url: "",
    title: "SORU: A Reconfigurable Vector Unit for Adaptable Embedded Systems",
    author: "José M. Moya, Javier Rodríguez, et al",
    published: "Proc. of the 5th International Workshop on Reconfigurable Computing: Architectures, Tools and Applications",
    month: 3,
    year: 2009},

   {url: "",
    title: "Compiling Techniques for Coarse Grained Runtime Reconfigurable Architecture",
    author: "Mythri Alle, Keshavan Varadarajan, Alexander Fell, S. K. Nandy  and Ranjani Narayan",
    published: "Proc. of the 5th International Workshop on Reconfigurable Computing: Architectures, Tools and Applications",
    month: 3,
    year: 2009},

   {url: '2009-02-PPoPP-MappingParallelism.html',
    title: 'Mapping parallelism to multi-cores: a machine learning based approach',
    author: "Zheng Wang and Michael F.P. O'Boyle",
    published: "Proc. of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'09)",
    month: 2,
    year: 2009},

   {url: '2009-01-POPL-PointerAnalysis.html',
    title: 'Semi-sparse flow-sensitive pointer analysis',
    author: 'Ben Hardekopf and Calvin Lin',
    published: "Proc. of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'09)",
    location: 'Savannah, GA, USA',
    month: 1,
    year: 2009},

   {url: '2009-01-VMCAI-ScalableMemoryModel.html',
    title: 'A Scalable Memory Model for Low-Level Code',
    author: 'Zvonimir Rakamaric and Alan J. Hu',
    published: 'Proc. of the 10th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI 2009)',
    location: 'Savannah, GA, USA',
    month: 1,
    year: 2009},

   {url: '2009-01-PEPM-Parfait.html',
    title: 'Program Analysis for Bug Detection using Parfait',
    author: 'Cristina Cifuentes, Nathan Keynes, Lian Li, and Bernhard Scholz',
    published: "Proc. of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation (PEPM'09)",
    location: 'Savannah, GA, USA',
    month: 1,
    year: 2009},

   {url: '2009-01-ASP-DAC-Automatic_Instrumentation.html',
    title: 'Automatic Instrumentation of Embedded Software for High Level Hardware/Software Co-Simulation',
    author: 'Aimen Bouchhima, Patrice Gerin, Frederic Petrot',
    published: "Proc. of the 14th Asia South Pacific Design Automation Conference (ASP-DAC'09)",
    location: 'Yokohama, Japan',
    month: 1,
    year: 2009},

  {url: '2009-01-ASP-DAC-MemorySimulation.html',
   title: "Memory subsystem simulation in software TLM/T models",
   author: "Eric Cheung, Harry Hsieh, and Felice Balarin",
   published: "Proc. of the 14th Asia South Pacific Design Automation Conference (ASP-DAC'09)",
    location: 'Yokohama, Japan',
    month: 1,
    year: 2009},

   {url: "2009-01-Pattabiraman-Thesis.html",
    title: "Automated Derivation of Application-Aware Error and Attack Detectors",
    author: "Karthik Pattabiraman",
    published: "Ph.D. Thesis, University of Illinois at Urbana-Champaign",
    month: 1,
    year: 2009},

  {url: '2008-12-OSDI-KLEE.html',
   title: 'KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs',
   author: 'Cristian Cadar, Daniel Dunbar, Dawson Engler',
   published: "Proc. 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008)",
   month: 12,
   year: 2008},

   {url : '2008-11-MICRO-CopyOrDiscard.html',
    title: 'Copy Or Discard Execution Model For Speculative Parallelization On Multicores ',
    author: 'Chen Tian, Min Feng, V. Nagarajan, R. Gupta',
    published: "MICRO-41: 41st International Symposium on Microarchitecture",
    location: 'Lake Como, Italy',
    month: 11,
    year: 2008},

  {url: '2008-11-ICCAD-MCSim.html',
   title: "MC-Sim: an efficient simulation tool for MPSoC designs",
   author: "Jason Cong, Karthik Gururaj, Guoling Han, Adam Kaplan, Mishali Naik, and Glenn Reinman",
   published: "Proc. of the 2008 IEEE/ACM International Conference on Computer-Aided Design (ICCAD'08)",
   location: "San Jose, CA",
   month: 11,
   year: 2008},

  {url: '2008-11-PASTE-CompilerValidation.html',
   title: "Program analysis for compiler validation",
   author: "Anna Zaks and Amir Pnueli",
   published: "Proc. of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering (PASTE'08)",
   location: "Atlanta, Georgia",
   month: 11,
   year: 2008},

  {url: '2008-10-04-ACAT-LLVM-Intro.html',
   title: 'Introduction to the LLVM Compiler System',
   author: 'Chris Lattner',
   published: 'Plenary Talk, <a href="http://acat2008.cern.ch/">ACAT 2008</a>: Advanced Computing and Analysis Techniques in Physics Research',
   location: 'Erice, Sicily, Italy',
   month: 11,
   year: 2008},

  {url: '2008-10-EMSOFT-Volatiles.html',
   title: 'Volatiles Are Miscompiled, and What to Do about It',
   author: 'Eric Eide, John Regehr',
   published: "Proc. EMSOFT International Conference on Embedded Software (EMSOFT 2008)",
   month: 10,
   year: 2008},

  {url: '2008-10-CASES-ExecutionContextOptimization.html',
   title: "Execution Context Optimization for Disk Energy",
   author: "Jerry Hom and Ulrich Kremer",
   published: "Proc. of the 2008 international conference on Compilers, architectures and synthesis for embedded systems (CASES'08)",
   month: 10,
   year: 2008},

  {url: '2008-09-ASE-FrameAxioms.html',
   title: 'Automatic Inference of Frame Axioms Using Static Analysis',
   author: 'Zvonimir Rakamaric and Alan J. Hu',
   published: '23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008)',
   month: 9,
   year: 2008,
   location: "L'Aquila, Italy"},

  {url: '2008-09-LadyVM.html',
   title: 'A Lazy Developer Approach: Building a JVM with Third Party Software',
   author: 'Nicolas Geoffray, Gael Thomas, Charles Clement and Bertil Folliot',
   published: "Proc. International Conference on Principles and Practice of Programming In Java (PPPJ 2008)",
   month: 9,
   year: 2008},

  {url: "2008-09-Lightspark.html",
   title: "An Efficient ActionScript 3.0 Just-In-Time Compiler Implementation",
   author: "Alessandro Pignotti",
   published: "Bachelor Thesis, Universita degli Studi di Pisa",
   month: 9,
   year: 2008},

  {url: '2008-08-RTCodegen.html',
   title: 'Run-Time Code Generation for Materials',
   author: 'Stephan Reiter',
   published: "IEEE Symposium on Interactive Ray Tracing (RT'08)",
   month: 8,
   year: 2008},

  {url: '2008-08-SPIN-Pancam.html',
   title: 'Verifying Multi-threaded C Programs with SPIN',
   author: 'Anna Zaks and Rajeev Joshi',
   published: "Proc. International SPIN Workshop on Model Checking of Software (SPIN 2008)",
   month: 8,
   year: 2008},

  {url: "2008-07-RSSI-CHiMPS.html",
   title: "LLVM-CHiMPS: Compilation Environment for FPGAs Using LLVM Compiler Infrastructure and CHiMPS Computational Model",
   author: "Seung J. Lee, David K. Raila, and Volodymyr V. Kindratenko",
   published: "Reconfigurable Systems Summer Institute 2008 (RSSI'08)",
   month: 7,
   year: 2008},

  {url: '2008-06-Reiter-Thesis.html',
   title: 'Real-Time Ray Tracing of Dynamic Scenes',
   author: 'Stephan Reiter',
   published: 'Diploma Thesis, Institute for Graphics and Parallel Processing, Johannes Kepler University',
   location: "Linz, Austria",
   month: 6,
   year: 2008},

  {url: '2008-06-CompilingHaskelltoLLVM.html',
   title: 'Compiling Haskell to LLVM',
   author: 'John van Schie',
   published: "Thesis Defense, Utrecht University",
   location: "Netherlands",
   month: 6,
   year: 2008},

  {url: '2008-06-LCTES-ISelUsingSSAGraphs.html',
   title: 'Generalized Instruction Selection using SSA-Graphs',
   author: 'Dietmar Ebner, Florian Brandner, Bernhard Scholz, Andreas Krall, Peter Wiedermann and Albrecht Kadlec',
   published: "Proc. Languages Compilers and Tools for Embedded Systems 2008 (LCTES'08)",
   month: 6,
   year: 2008},

  {url: '2008-06-13-SPAA-STMDataPartitioning.html',
   title: 'Automatic Data Partitioning in Software Transactional Memories',
   author: 'Torvald Riegel, Christof Fetzer, and Pascal Felber',
   published: "Proc. 20th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA'08)",
   month: 6,
   year: 2008},

  {url: '2008-06-PLDI-PuzzleSolving.html',
   title: 'Register Allocation by Puzzle Solving',
   author: 'Fernando Magno Quintao Pereira and Jens Palsberg',
   published: "Proc. ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI'08)",
   month: 6,
   year: 2008},

  {url: '2008-06-SAW-Parfait.html',
   title: "Parfait - Designing a Scalable Bug Checker",
   author: "Cristina Cifuentes and Bernhard Scholz",
   published: "Proc. of the 2008 workshop on Static analysis (SAW'08)",
   month: 6,
   year: 2008},

  {url: '2008-06-DSNPDS-ErrorDerating.html',
   title: "A characterization of instruction-level error derating and its implications for error detection",
   author: "Jeffrey J. Cook and Craig Zilles",
   published: "IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN'08)",
   month: 6,
   year: 2008},

  {url: '2008-05-CoVaC.html',
   title: 'CoVaC: Compiler Validation by Program Analysis of the Cross-Product',
   author: 'Anna Zaks and Amir Pnueli',
   published: "Proc. International Symposium on Formal Methods (FM 2008)",
   month: 5,
   year: 2008},

  {url: '2008-05-17-BSDCan-LLVMIntro.html',
   title: 'LLVM and Clang: Next Generation Compiler Technology',
   author: 'Chris Lattner',
   published: '<a href="http://www.bsdcan.org/2008/">BSDCan 2008</a>: The BSD Conference',
   location: 'Ottawa, Canada',
   month: 5,
   year: 2008},

  {url: "2008-05-ISCE-Calysto.html",
   title: "Calysto: Scalable and Precise Extended Static Checking",
   author: "Domagoj Babic and Alan J. Hu",
   published: "Proc. of the 30th international conference on Software engineering (ICSE'08)",
   month: 5,
   year: 2008},

  {url: "2008-03-ASPLOS-HardErrorPropagation.html",
   title: "Understanding the Propagation of Hard Errors to Software and Implications for Resilient System Design",
   author: "Man-Lap Li, Pradeep Ramachandran, Swarup K. Sahoo, Sarita V. Adve, Vikram S. Adve, Yuanyuan Zhou",
   published: "Proc. of the 13th international conference on Architectural support for programming languages and operating systems (ASPLOS'08)",
   month: 3,
   year: 2008},

  {url: '2008-03-DATE-TLM_Estimation.html',
   title: 'Cycle-approximate Retargetable Performance Estimation at the Transaction Level',
   author: 'Y. Hwang, S. Abdi, and D. Gajski',
   published: "Proc. of Design Automation and Test in Europe (DATE'08)",
   location: 'Munich, Germany',
   month: 3,
   year: 2008},

  {url: '2008-03-TR-UIDependAnalysis.html',
   title: 'User-Input Dependence Analysis via Graph Reachability',
   author: 'Bernard Scholz, Chenyi Zhang, and Cristina Cifuentes',
   published: "Technical Report #TR-2008-171, Sun Microsystems",
   month: 3,
   year: 2008},

  {url: "2008-03-SAC-SoftwareFaults.html",
   title: "Automatic Software Fault Localization using Generic Program Invariants",
   author: "Rui Abreu, Alberto Gonzalez, Peter Zoeteweij, and Arjan J.C. van Gemund",
   published: "Proc. of the 2008 ACM symposium on Applied computing (SAC'08)",
   month: 3,
   year: 2008},

  {url: '2008-02-ImpedingMalwareAnalysis.html',
   title: 'Impeding Malware Analysis Using Conditional Code Obfuscation',
   author: 'Monirul Sharif, Andrea Lanzi, Jonathon Giffin and Wenke Lee',
   published: "Network and Distributed System Security Symposium (NDSS'08)",
   location: 'San Diego, CA',
   month: 2,
   year: 2008},

  {url: '2008-02-23-TRANSACT-TangerObjBased.html',
   title: 'Making Object-Based STM Practical in Unmanaged Environments',
   author: 'Torvald Riegel and Diogo Becker de Brum',
   published: "ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 2008)",
   location: 'Salt Lake City, Utah',
   year: 2008},

  {url: '2008-CGO-DagISel.html',
   title: 'Near-Optimal Instruction Selection on DAGs',
   author: 'David Ryan Koes and Seth Copen Goldstein',
   published: "Proc. of the 2008 International Symposium on Code Generation and Optimization (CGO'08)",
   location: 'Boston, MA',
   year: 2008},

  {url: '2007-SOSP-SVA.html',
   title: 'Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems',
   author: 'John Criswell, Andrew Lenharth, Dinakar Dhurjati, and Vikram Adve',
   published: "Proc. of the Twenty First ACM Symposium on Operating Systems Principles (SOSP '07)",
   award: 'Received an SOSP 2007 Audience Choice Award',
   location: 'Stevenson, WA',
   month: 10,
   year: 2007},

 {url: '2007-10-PekkaTTA.html',
  title: 'Retargetable Compiler Backend for Transport Triggered Architectures',
  author: 'Veli-Pekka Jaaskelainen',
  published: "Masters Thesis",
  location: 'Tampere University of Technology',
  month: 10,
  year: 2007},

  {url: '2007-10-DLS-RPython.html',
   title: "RPython: a Step Towards Reconciling Dynamically and Statically Typed OO Languages",
   author: "Davide Ancona, Massimo Ancona, Antonio Cuni, and Nicholas D. Matsakis",
   published: "Proc. of the 2007 symposium on Dynamic languages (DLS'07)",
   month: 10,
   year: 2007},

  {url: '2007-09-ESEC-FSE-DesignOptzn.html',
   title: "A Profile-Driven Statistical Analysis Framework for the Design Optimization of Soft Real-Time Applications",
   author: "Tushar Kumar, Jaswanth Sreeram, Romain Cledat, and Santosh Pande",
   published: "Proc.  of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC-FSE'07)",
   month: 9,
   year: 2007},

  {url: '2007-08-16-TRANSACT-Tanger.html',
   title: 'Transactifying Applications Using an Open Compiler Framework',
   author: 'Pascal Felber, Christof Fetzer, Ulrich Mueller, Torvald Riegel, Martin Suesskraut, and Heiko Sturzrehm',
   published: "TRANSACT 2007",
   month: 8,
   year: 2007},

  {url: '2007-07-25-LLVM-2.0-and-Beyond.html',
   title: 'LLVM 2.0 and Beyond!',
   author: 'Chris Lattner',
   published: "Google Tech Talk",
   location: 'Mountain View, CA',
   month: 7,
   year: 2007},

  {url: '2007-07-CAV-StructuralAbstraction.html',
   title: 'Structural Abstraction of Software Verification Conditions',
   author: 'Domagoj Babic and Alan J. Hu',
   published: "Proc. of the 19th Int. Conf. on Computer Aided Verification (CAV'07)",
   location: 'Berlin, Germany',
   month: 7,
   year: 2007},

  {url: '2007-07-SCSC-Simulation.html',
   title: "Compiled low-level virtual instruction set simulation and profiling for code partitioning and ASIP-synthesis in hardware/software co-design",
   author: "Carsten Gremzow",
   published: "Proc. of the 2007 summer computer simulation conference (SCSC'07)",
   month: 7,
   year: 2007},

  {url: '2007-06-10-PLDI-DSA.html',
   title: 'Making Context-Sensitive Points-to Analysis with Heap Cloning Practical For The Real World',
   author: 'Chris Lattner, Andrew Lenharth, and Vikram Adve',
   published: "Proc. of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'07)",
   location: 'San Diego, CA',
   month: 6,
   year: 2007},

  {url: '2007-05-31-Switch-Lowering.html',
   title: 'Improving Switch Lowering for The LLVM Compiler System',
   author: 'Anton Korobeynikov',
   published: "Proc. of the 2007 Spring Young Researchers Colloquium on Software Engineering (SYRCoSE'2007)",
   location: 'Moscow, Russia',
   month: 5,
   year: 2007},

  {url: "2007-04-SCOPES-ChainRulePlacement.html",
   title: "Optimal chain rule placement for instruction selection based on SSA graphs",
   author: "Stefan Schafer and Bernhard Scholz",
   published: "Proc. of the 10th international workshop on Software & compilers for embedded systems (SCOPES'07)",
   month: 4,
   year: 2007},

  {url: '2007-04-PraherMSThesis.html',
   title: 'A Change Framework based on the Low Level Virtual Machine Compiler Infrastructure',
   author: 'Jakob Praher',
   published: "Masters Thesis",
   location: 'Institute for System Software Johannes Kepler University Linz',
   month: 4,
   year: 2007},

  {url: '2007-03-SPLAT-Aspects.html',
   title: 'An Aspect for Idiom-based Exception Handling (using local continuation join points, join point properties, annotations and type parameters)',
   author: 'Bram Adams and Kris De Schutter',
   published: "Proc. of the 5th Software-Engineering Properties of Languages and Aspect Technologies Workshop (SPLAT)",
   location: 'AOSD 2007, Vancouver, Canada',
   month: 3,
   year: 2007},

  {url: '2007-03-12-BossaLLVMIntro.html',
   title: 'The LLVM Compiler System',
   author: 'Chris Lattner',
   published: "2007 Bossa Conference on Open Source, Mobile Internet and Multimedia",
   location: 'Recife, Brazil',
   month: 3,
   year: 2007},

  {url: "2007-03-Computer-Trident.html",
   title: "Trident: From High-Level Language to Hardware Circuitry",
   author: "Justin L. Tripp, Maya B. Gokhale, and Kristopher D. Peterson",
   published: "IEEE Computer",
   month: 3,
   year: 2007},

  {url: "2007-01-SaP-Security.html",
   title: "Toward Application-Aware Security and Reliability",
   author: "Ravishankar K. Iyer, Zbigniew Kalbarczyk, Karthik Pattabiraman, William Healey, Wen-Mei W. Hwu, Peter Klemperer, and Reza Farivar",
   published: "IEEE Security and Privacy",
   month: 1,
   year: 2007},

  {url: '2006-10-ICNPC-ScalingTaskGraphs.html',
   title: 'Scaling Task Graphs for Network Processors',
   author: 'Martin Labrecque and J. Gregory Steffan',
   published: "IFIP International Conference on Network and Parallel Computing",
   location: 'Tokyo, Japan',
   month: 10,
   year: 2006},

  {url: '2006-10-CASES-IncreaseMem.html',
   title: 'Automated Compile-Time and Run-Time Techniques to Increase Usable Memory in MMU-Less Embedded Systems',
   author: 'L. Bai, L. Yang, and R. P. Dick',
   published: "Proc. Int. Conf. Compilers, Architecture &amp; Synthesis for Embedded Systems",
   location: 'pp. 125-135',
   month: 10,
   year: 2006},

  {url: "2006-10-DLS-PyPy.html",
   title: "PyPy's approach to virtual machine construction",
   author: "Armin Rigo and Samuele Pedroni",
   published: "Dynamic Languages Symposium (DLS'06)",
   month: 10,
   year: 2006},

  {url: '2006-09-SOC-Synthesis.html',
   title: 'Platform-Based Behavior-Level and System-Level Synthesis',
   author: 'J. Cong, Y. Fan, G. Han, W. Jiang, and Z. Zhang',
   published: "Proc. of IEEE International SOC Conference",
   location: 'pp. 199-202, Austin, Texas',
   month: 9,
   year: 2006},

  {url: '2006-DSN-DanglingPointers.html',
   title: 'Efficiently Detecting All Dangling Pointer Uses in Production Servers',
   author: 'Dinakar Dhurjati and Vikram Adve',
   published: "Proc. of the International Conference on Dependable Systems and Networks (DSN '06)",
   location: 'Philadelphia, Pennsylvania',
   year: 2006},

  {url: '2006-06-18-WIOSCA-LLVAOS.html',
   title: 'A Virtual Instruction Set Interface for Operating System Kernels',
   author: 'John Criswell, Brent Monroe, and Vikram Adve',
   published: "Workshop on the Interaction between Operating Systems and Computer Architecture (WIOSCA '06)",
   location: 'Boston, Massachusetts',
   month: 6,
   year: 2006},

  {url: '2006-06-12-PLDI-SAFECode.html',
   title: 'SAFECode: Enforcing Alias Analysis for Weakly Typed Languages',
   author: 'Dinakar Dhurjati, Sumant, Kowshik, and Vikram Adve',
   published: "Proc. of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '06)",
   location: 'Ottawa, Canada',
   month: 6,
   year: 2006},

  {url: 'http://llvm.org/pubs/2006-05-24-SAFECode-BoundsCheck.html',
   title: 'Backwards-Compatible Array Bounds Checking for C with Very Low Overhead',
   author: 'Dinakar Dhurjati and Vikram Adve',
   published: "Proc. of the 28th International Conference on Software Engineering (ICSE '06)",
   location: 'Shanghai, China',
   month: 5,
   year: 2006},

  {url: '2006-06-15-VEE-VectorLLVA.html',
   title: 'Vector LLVA: A Virtual Vector Instruction Set for Media Processing',
   author: 'Robert L. Bocchino Jr. and Vikram S. Adve',
   published: "Proc. of the Second International Conference on Virtual Execution Environments (VEE'06)",
   location: 'Ottawa, Canada',
   month: 6,
   year: 2006},

  {url: '2006-06-07-LewyckyChecker.html',
   title: 'Checker: a Static Program Checker',
   author: 'Nicholas Lewycky',
   published: "B.Sc. Thesis",
   location: 'Computer Science Dept., Ryerson University',
   month: 6,
   year: 2006},

  {url: '2006-04-25-GelatoLLVMIntro.html',
   title: 'Introduction to the LLVM Compiler Infrastructure',
   author: 'Chris Lattner',
   published: "2006 Itanium Conference and Expo",
   location: 'San Jose, California',
   month: 4,
   year: 2006},

  {url: '2006-04-04-CGO-GraphColoring.html',
   title: 'Tailoring Graph-coloring Register Allocation For Runtime Compilation',
   author: 'Keith D. Cooper and Anshuman Dasgupta',
   published: "Proc. of the 2006 International Symposium on Code Generation and Optimization (CGO'06)",
   location: 'New York, New York',
   month: 3,
   year: 2006},

  {url: '2006-01-LabrecqueMSThesis.html',
   title: 'Towards a Compilation Infrastructure for Network Processors',
   author: 'Martin Labrecque',
   published: "Masters Thesis",
   location: 'Department of Electrical and Computer Engineering, University of Toronto',
   month: 1,
   year: 2006},

  {url: '2005-TR-DSAEvaluation.html',
   title: 'How Successful is Data Structure Analysis in Isolating and Analyzing Linked Data Structures?',
   author: 'Patrick Meredith, Balpreet Pankaj, Swarup Sahoo, Chris Lattner and Vikram Adve',
   published: "Technical Report #UIUCDCS-R-2005-2658, Computer Science Dept., Univ. of Illinois",
   month: 12,
   year: 2005},

  {url: '2005-11-SAFECodeTR.html',
   title: 'Enforcing Alias Analysis for Weakly Typed Languages',
   author: 'Dinakar Dhurjati, Sumant Kowshik, and Vikram Adve',
   published: "Technical Report #UIUCDCS-R-2005-2657, Computer Science Dept., Univ. of Illinois",
   month: 11,
   year: 2005},

  {url: '2005-10-20-LCPC-RegAlloc.html',
   title: 'Revisiting Graph Coloring Register Allocation: A Study of the Chaitin-Briggs and Callahan-Koblenz Algorithms',
   author: 'By Keith Cooper, Anshuman Dasgupta, and Jason Eckhardt',
   published: "Proc. of the Workshop on Languages and Compilers for Parallel Computing (LCPC'05)",
   location: 'Hawthorne, NY',
   month: 10,
   year: 2005},

  {url: '2005-09-25-CASES05-SegmentProtection.html',
   title: 'Segment Protection for Embedded Systems Using Run-time Checks',
   author: 'By Matthew Simpson, Bhuvan Middha and Rajeev Barua',
   published: "Proc. of the ACM International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'05)",
   location: 'San Francisco, CA',
   month: 9,
   year: 2005},

  {url: '2005-09-PASTE-GreedySuiteMinimization.html',
   title: 'A Concept Analysis Inspired Greedy Algorithm for Test Suite Minimization',
   author: 'By Sriraman Tallam and Neelam Gupta',
   published: "ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005)",
   location: 'Lisbon, Portugal',
   month: 9,
   year: 2005},

  {url: '2005-08-EUROPAR-PerformanceLibs.html',
   title: 'Deciding Where to Call Performance Libraries',
   author: 'By C. Alias and D. Barthou',
   published: "Proc. of the International IEEE Euro-Par Conference",
   month: 8,
   year: 2005},

  {url: '2005-07-IDEAS-PerfEstimation.html',
   title: 'Practical Techniques for Performance Estimation of Processors',
   author: 'Abhijit Ray, Thambipillai Srikanthan and Wu Jigang',
   published: "Proc. of the 9th International Database Engineering &amp; Application Symposium (IDEAS'05)",
   month: 7,
   year: 2005},

  {url: '2005-07-ZimmermanMSThesis.html',
   title: 'Profile-directed If-Conversion in Superscalar Microprocessors',
   author: 'Eric Zimmerman',
   published: "Masters Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 7,
   year: 2005},

  {url: '2005-06-17-LattnerMSThesis.html',
   title: 'An Implementation of Swing Modulo Scheduling with Extensions for Superblocks',
   author: 'Tanya M. Lattner',
   published: "M.S. Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 6,
   year: 2005},

  {url: '2005-05-04-LattnerPHDThesis.html',
   title: 'Macroscopic Data Structure Analysis and Optimization',
   author: 'Chris Lattner',
   published: "Ph.D. Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 5,
   year: 2005},

  {url: '2005-05-21-PLDI-PoolAlloc.html',
   title: 'Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap',
   author: 'Chris Lattner and Vikram Adve',
   published: "Proc. of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05)",
   award: 'Received PLDI 2005 Best Paper Award',
   location: 'Chicago, Illinois',
   month: 6,
   year: 2005},

  {url: '2005-06-12-MSP-PointerComp.html',
   title: 'Transparent Pointer Compression for Linked Data Structures',
   author: 'Chris Lattner and Vikram Adve',
   published: "Proc. of the ACM Workshop on Memory System Performance (MSP'05)",
   location: 'Chicago, Illinois',
   month: 6,
   year: 2005},

  {url: '2005-03-14-ACP4IS-AspectsKernel.html',
   title: 'Using a Low-Level Virtual Machine to Improve Dynamic Aspect Support in Operating System Kernels',
   author: 'By Michael Engel and Bernd Freisleben',
   published: "Proc. of the 4th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS'05)",
   location: 'Chicago',
   month: 3,
   year: 2005},

  {url: '2005-02-TECS-SAFECode.html',
   title: 'Memory Safety Without Garbage Collection for Embedded Applications',
   author: 'Dinakar Dhurjati, Sumant Kowshik, Vikram Adve and Chris Lattner',
   published: "ACM Transactions in Embedded Computing Systems (TECS)",
   month: 2,
   year: 2005},

  {url: '2004-09-22-LCPCLLVMTutorial.html',
   title: 'The LLVM Compiler Framework and Infrastructure Tutorial',
   author: 'Chris Lattner and Vikram Adve',
   published: "LCPC'04 Mini Workshop on Compiler Research Infrastructures",
   location: 'West Lafayette, Indiana',
   month: 9,
   year: 2004},

  {url: '2004-Spring-AlexanderssonMSThesis.html',
   title: 'RubyComp - A Ruby-to-LLVM Compiler Prototype',
   author: 'Anders Alexandersson',
   published: "Masters Thesis",
   location: 'Division of Computer Science at the Department of Informatics and Mathematics, University of Trollh&auml;ttan/Uddevalla, Sweden',
   year: 2004},

  {url: '2004-05-JoshiMSThesis.html',
   title: 'A Task Optimization Framework for MSSP',
   author: 'Rahul Ulhas Joshi',
   published: "Masters Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 5,
   year: 2004},

  {url: '2004-03-ICDCS-Adaptions.html',
   title: 'Coordinating Adaptations in Distributed Systems',
   author: 'Brian Ensink and Vikram Adve',
   published: "Proc. of the 24th International Conference on Distributed Computing Systems (ICDCS 2004)",
   location: 'Tokyo, Japan',
   month: 3,
   year: 2004},

  {url: '2004-01-30-CGO-LLVM.html',
   title: 'LLVM: A Compilation Framework for Lifelong Program Analysis &amp; Transformation',
   author: 'Chris Lattner and Vikram Adve',
   published: "Proc. of the 2004 International Symposium on Code Generation and Optimization (CGO'04)",
   location: 'Palo Alto, California',
   month: 3,
   year: 2004},

  {url: '2003-10-01-LLVA.html',
   title: 'LLVA: A Low-level Virtual Instruction Set Architecture',
   author: 'Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla, and Brian Gaeke',
   published: "Proc. of the 36th annual ACM/IEEE International Symposium on Microarchitecture (MICRO-36)",
   location: 'San Diego, CA',
   month: 12,
   year: 2003},

  {url: '2003-07-18-StanleyMSThesis.html',
   title: 'Language Extensions for Performance-Oriented Programming',
   author: 'Joel Stanley',
   published: "Masters Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 7,
   year: 2003},

  {url: '2003-07-18-ShuklaMSThesis.html',
   title: 'Lightweight, Cross-Procedure Tracing for Runtime Optimization',
   author: 'Anand Shukla',
   published: "Masters Thesis",
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 7,
   year: 2003},

  {url: '2003-05-05-LCTES03-CodeSafety.html',
   title: 'Memory Safety Without Runtime Checks or Garbage Collection',
   author: 'Dinakar Dhurjati, Sumant Kowshik, Vikram Adve and Chris Lattner',
   published: "Proc. of Languages Compilers and Tools for Embedded Systems 2003 (LCTES 03)",
   location: 'San Diego, CA',
   month: 6,
   year: 2003},

  {url: '2003-05-01-GCCSummit2003.html',
   title: 'Architecture For a Next-Generation GCC',
   author: 'Chris Lattner &amp; Vikram Adve',
   published: "First Annual GCC Developers' Summit",
   location: 'Ottawa, Canada',
   month: 5,
   year: 2003},

  {url: '2003-04-29-DataStructureAnalysisTR.html',
   title: 'Data Structure Analysis: An Efficient Context-Sensitive Heap Analysis',
   author: 'Chris Lattner &amp; Vikram Adve',
   published: 'Technical Report #UIUCDCS-R-2003-2340',
   location: 'Computer Science Dept., Univ. of Illinois',
   month: 4,
   year: 2003},

  {url: '2002-12-LattnerMSThesis.html',
   title: 'LLVM: An Infrastructure for Multi-Stage Optimization',
   author: 'Chris Lattner',
   published: 'Masters Thesis',
   location: 'Computer Science Dept., University of Illinois at Urbana-Champaign',
   month: 12,
   year: 2002},

  {url: '2002-08-08-CASES02-ControlC.html',
   title: 'Ensuring Code Safety Without Runtime Checks for Real-Time ' +
          'Control Systems',
   author: 'Sumant Kowshik, Dinakar Dhurjati, and Vikram Adve',
   published: "Proc. Int'l Conf. on Compilers, Architecture and Synthesis " +
              "for Embedded Systems (CASES02)",
   location: 'Grenoble, France',
   month: 10,
   year: 2002},

  {url: '2002-06-AutomaticPoolAllocation.html',
   title: 'Automatic Pool Allocation for Disjoint Data Structures',
   author: 'Chris Lattner &amp; Vikram Adve',
   published: 'ACM SIGPLAN Workshop on Memory System Performance (MSP)',
   location: 'Berlin, Germany',
   month: 6,
   year: 2002}
];

/**
 * HTML-escapes entities for display in a web page.
 *
 * @param {string} str The input to be escaped.
 * @return {string} HTML-escaped version of str.
 */
function htmlEscape(str) {
  return str.replace(/</g, '&lt;')
      .replace(/>/g, '&gt;');
}

/**
 * Tests to see if the given object is defined or not (and not null).
 *
 * @param {Object?}
 * @return {bool} Whether or not the object is defined and not null.
 */
function isDef(obj) {
  return typeof obj != 'undefined' && obj != null;
}

/**
 * Displays all publications by attaching them to the element with the passed-in
 * id.  The publications will be separated by year, and within each, will be in
 * an ordered list (OL).
 *
 * @param {string} id ID of the element that will serve as the parent of
 *     the publications list.
 */
function displayAllPubs(id) {
  var MONTHS = [
    'Jan.', 'Feb.', 'Mar.', 'Apr.', 'May', 'June',
    'July', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'
  ];
  var container = document.getElementById(id);
  var list = null;
  var current_year = -1;
  for (var i = 0; i < PUBS.length; ++i) {
    var pub = PUBS[i];
    if (current_year != pub.year) {
      var header = document.createElement('h2');
      header.innerHTML = current_year = pub.year;
      container.appendChild(header);
      list = document.createElement('ol');
      container.appendChild(list);
    }
    var item = document.createElement('li');
    if (typeof pub.url != "undefined" && pub.url) {
      item.innerHTML += '"<a href="' + pub.url + '">' + htmlEscape(pub.title) +
                        '</a>"<br>';
    } else {
      item.innerHTML += '"' + htmlEscape(pub.title) + '" ' +
                        '<a href="http://www.google.com/search?q=' +
                        encodeURIComponent(pub.title) + '">search</a><br>';
    }
    item.innerHTML += htmlEscape(pub.author) + '<br>';
    if (isDef(pub.published)) {
      item.innerHTML += '<i>' + pub.published + '</i>';
    }
    if (isDef(pub.location)) {
      item.innerHTML += ', ' + pub.location;
    }
    if (isDef(pub.month) || isDef(pub.year)) {
      var date = [];
      if (isDef(pub.month)) {
        date.push(MONTHS[pub.month - 1]);
      }
      if (isDef(pub.year)) {
        date.push(pub.year);
      }
      item.innerHTML += ', ' + htmlEscape(date.join(' '));
    }
    item.innerHTML += '.';
    if (isDef(pub.award)) {
      item.innerHTML += '<br><b>' + pub.award + '.</b>';
    }
    item.innerHTML += '<br><br>';
    list.appendChild(item);
  }
}

/**
 * Displays a histogram of publications by year as a chart, using Google Chart
 * API.  See http://code.google.com/apis/chart/ for more info.
 *
 * @param {string} id ID of the element that will serve as the parent of
 *     the chart.
 */
function displayPubsHistogram(id) {
  var histogram = {};
  for (var i = 0; i < PUBS.length; ++i) {
    var pub = PUBS[i];
    if (isDef(pub.year)) {
      if (isDef(histogram[pub.year])) {
        histogram[pub.year]++;
      } else {
        histogram[pub.year] = 1;
      }
    }
  }

  // Sort the years in the histogram map to use for x-axis labels.
  var sortedYears = [];
  for (var year in histogram) {
    sortedYears.push(year);
  }
  sortedYears.sort(function(a, b) { return a - b; });

  // Get the data that corresponds to the sorted x-axis labels to be used as
  // y-axis data.  Also get the max count to use in chart scaling.
  var countDataBySortedYear = [];
  var maxCount = 0;
  for (var i = 0; i < sortedYears.length; ++i) {
    var count = histogram[sortedYears[i]];
    countDataBySortedYear.push(count);
    maxCount = (count > maxCount) ? count : maxCount;
  }

  var container = document.getElementById(id);
  var image = document.createElement('img');
  image.src = 'http://chart.apis.google.com/chart' +
      '?cht=bvs' +                                     // vertical bars
      '&chs=300x200' +                                 // size
      '&chco=76A4FB' +                                 // color
      '&chtt=Number of papers per year' +              // title
      '&chxt=x,y' +                                    // axes
      '&chxl=0:|' + sortedYears.join('|') +            // x-axis labels
      '&chxr=1,0,' + (maxCount + 5) +                  // y-axis range
      '&chds=0,' + (maxCount + 5) +                    // scaling
      '&chd=t:' + countDataBySortedYear.join(',');     // chart data
  container.appendChild(image);
}

