Annotation of res/PP-compiler.tex, revision 1.11
1.1 andi 1: \documentclass[11pt,a4paper]{article}
2: %\usepackage{latexsym}
3: \usepackage{url}
4: %\usepackage{times}
5: \usepackage{comment}
6:
7: \pagestyle{plain}
8: \setlength{\textwidth}{16truecm}
9: \setlength{\textheight}{24truecm}
10: \setlength{\oddsidemargin}{-0.3truecm}
11: \setlength{\evensidemargin}{-0.3truecm}
12: \setlength{\topmargin}{0.0truecm}
13: \setlength{\topskip}{0.0truecm}
14: \setlength{\headheight}{0.0truecm}
15: \setlength{\headsep}{0.0truecm}
16:
17: \newcommand{\emn}[1]{{\em #1\/}}
18: \newcommand{\NOTE}[1]{{\medskip\bf #1\medskip}}
19:
20: \title{\bf PP \emph{Compilation Techniques for Robust Embedded Systems}}
21:
1.6 andi 22: \author{{\sc Andreas Krall and Jens Knoop}\\
23: \{andi,knoop\}@complang.tuwien.ac.at
1.1 andi 24: }
25:
26: \bibliographystyle{unsrt}
27:
28: \begin{document}
29: \maketitle
30:
1.10 knoop 31: PP leader: \emph{Jens Knoop and Andreas Krall (beide E185.1)}
1.1 andi 32:
1.10 knoop 33: Associated researchers: \emph{Anton Ertl (E185.1), Bernhard Gramlich (E185.2)}
1.1 andi 34:
35:
36:
37: \subsubsection*{Motivation:}
38: %\emph{Informal description of the purpose of the PP (3-5 lines)}
39: Every embedded system consists of software which is written in a high
40: level language, compiled to machine language and executed on a
1.10 knoop 41: processor. For robust embedded systems new verified analysis and
42: compilation, simulation, and specification methods are necessary to
43: support the programmer during application development and maintenance
44: and to optimize for performance, power, space, concurrency and
45: reliability during compilation.
46: %for short, new programming and
47: %compilation techniques for robust embedded systems development and
48: %deployment.
1.1 andi 49:
50: \subsubsection*{State of the art and related work:}
51: %\emph{Briefly describe the scientific state of the art (20-30 lines)}
52:
1.2 andi 53: %Compilation Techniques for Reliability
54: Because of the exponential increase of the number of transistors and
55: the continuing decrease of the feature sizes of current processors
1.10 knoop 56: \emph{soft errors} mainly caused by energetic particles are becoming an
1.2 andi 57: important design issue for robust embedded systems. Blome et
58: al.~\cite{Blome+06} observed that a majority of faults that affect the
59: architectural state of a processor come from the register file. Lee
1.10 knoop 60: and Shrivastava \cite{LeeShrivastava09a,LeeShrivastava09c} proposed
61: different solutions to cope with this problem. The first assigns
62: variables depending on their lifetime to either the ECC protected or
63: the unprotected part of a register file to balance energy consumption
64: and reliability \cite{LeeShrivastava09a}. The second spills registers
65: to ECC protected memory if the register contents are not used for a
66: long period \cite{LeeShrivastava09c}. There exist complete software
67: solutions which use different forms of code duplications
68: \cite{Oh+02a,Reis+05}, which do failure virtualization
69: \cite{WapplerMueller08} or which use techniques like control flow
70: checking \cite{Oh+02b}. A complete overview of processor description
71: languages and generation of compilers and simulators from processor
72: specifications gives the book of Mishra and Dutt \cite{MishraDutt08}.
1.4 andi 73: A good survey of current instruction set simulators gives our chapter
1.10 knoop 74: in the \emph{Handbook of Signal Processing systems} \cite{BrHoKr09}. A
75: famous instruction set simulator with modelling of energy consumption
76: is \emph{Wattch} \cite{BrooksTiwariMartonosi00}.
77:
78: \paragraph{JK}
79: Methods for \emph{compiler verification} do exist
80: \cite{Langmaack97a,Po-lncs124,MMO-lncs1283,Goos:99:verifix,Goos:00:ASM,1328444}.
81: Most notably are the pioneering approaches of the
82: \emph{ProCoS} \cite{Langmaack96a} and the \emph{Verifix}
83: \cite{Goerigk-et-al:CC96} projects, and more recently of
84: the \emph{CompCert} project \cite{CompCert,BDL-fm06,Le-popl06}. There
85: is also a rich body of work on the related approaches of
86: \emph{translation validation}
87: \cite{PSS-tacas98,Ne-pldi00}, \emph{certifying compilation}
88: \cite{NL-pldi98,Colby-etal-pldi00,BlechPoetzsch07}, and
89: \emph{proof-carrying code} \cite{Ne-popl97,AF-popl00,FNSG-tlfi07}.
90: However, an integratedly verified compiler,
91: which is optimizing and ensures non-functional program properties such
92: as on time and space ressources required by the compiled program is
93: still missing.
94:
95: \emph{Worst-case execution time analysis $($WCET$)$} for real-time systems,
96: which are often safety-critical, is a vibrant field of research in
97: academia and industry and of fast growing economical relevance,
98: especially in the avionics and automotive industry. A survey on
99: state-of-the-art tools and methods for WCET analysis has recently been
100: given by Wilhelm et al.~\cite{Wilhelm:TECS2008}. The outcomes of the
101: WCET Tool Challenges \cite{Gus:ISoLA2006,Holsti:WCET2008}, however,
102: demonstrate that all these tools have their own strengths and
103: limitations. In particular, they all rely to some extent on
104: user-assistance and thus a \emph{trusted information basis} guiding
105: the WCET analysis \cite{Prantl:WCET2009}.
106:
1.1 andi 107:
1.10 knoop 108: \paragraph{AK}
1.9 andi 109: Three aspects of program and compiler correctness exist. The verifying
110: compiler proves properties of the translated program and is a grand challenge
1.10 knoop 111: for computing research \cite{Hoare03}. A certified compiler like Verifix is
1.9 andi 112: proven once to do semantically equivalent optimizations and translations
113: \cite{GlesnerGoosZimmeermann04,GoosZimmermann00}. Translation validation proves
114: at every compiler run that the translation is correct and was introduced by
115: Pnueli et al.\ \cite{Pnueli98a,Pnueli98b} and Necula \cite{Necula00}. Until now
116: some optimizations have been verified, recently lazy code motion
117: \cite{TristanLeroy09}, instruction scheduling \cite{TristanLeroy08}, or the whole
118: code generation phase \cite{BlechPoetzsch07}. Another research direction is the
119: construction of general frameworks for validation \cite{ZaksPnueli08} or
120: generalizations like parameterized equivalence checking \cite{Kundu+09}.
121:
1.7 andi 122:
1.1 andi 123: \subsubsection*{Previous achievements:}
124: %\emph{Brief description of your own contributions to the related
125: %scientific state-of-the art (5-10 lines)}
1.10 knoop 126: Jens Knoop's research focuses on proven correct and optimal program
127: analyses and optimizations \cite{Kn-lncs1428}. He is the co-inventor
128: of the \emph{Lazy Code Motion}
129: \cite{KRS-pldi92,KRS-retrolcm04,XueK06}, the code-size sensitive
130: \emph{Sparse Code Motion} \cite{RKS-popl00}, and numerous other
131: program analyses and optimizations including
132: \emph{partial dead-code elimination}, \cite{KRS-pldi94}, \emph{partially redundant assignment elimination} \cite{KRS-pldi94}, and \emph{code-size sensitive
133: speculative code motion} \cite{scholz04}, many of which are now part of
134: state-of-the-art compilers. Recent research focuses on compiler
135: support for
136: \emph{worst-case execution time analysis} for safety-critical
137: real-time embedded systems
138: \cite{Prantl:WCET2009,SchrSchoKn09,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657,kirner_et_al:DSP:2007:1197}. He served on $50+$
139: programme committees of international conferences including PLDI, CC,
140: TACAS, Formal Methods, and Supercomputing. He was the General Chair of
141: PLDI'02 and ETAPS'06, and is Programme Committee Co-Chair of PACT'10. He is the
142: iniator and co-founder of the annual workshop series on
143: \emph{Compiler Optimization meets Compiler Verification} (since 2002),
144: co-organizer of 4 Dagstuhl seminars, most recently on \emph{Verifying
145: Optimizing Compilation}, and a member of the European Network of
146: Excellence HiPEAC.
147: %, and the IFIP WG 2.4 \emph{Software Implementation Technology}.
1.1 andi 148:
149: Andreas Krall does research in the area of architecture description
150: languages and the automatic generation of highly optimizing compilers,
151: efficient instruction set simulators and hardware from one single
152: specification of a processor \cite{BrFeKrRi09,BrEbKr07,FaKrHo07,
153: FarKrStBrand06,Krall+04micro}. An important focus is on optimization
154: techniques for embedded processors
155: \cite{EbBrSchKrWiKa08,MeKr07,PrKrHo06,HiKr03} as he lead the Christian
156: Doppler research laboratory {\em compilation techniques for embedded
157: processors} with partners from industry (Infineon, OnDemand
158: Microelectronics).
159:
160:
161: \subsubsection*{Goals (first 4 years):}
162: %\emph{Description of the research
163: %topics to be addressed during the first 4 years. Make sure to explicitly
164: %stress what the significant additions to the scientific knowledge are,
165: %and why they are important. (30-40 lines)}
166:
1.11 ! knoop 167: New modeling and representation techniques of non-functional program
! 168: and system properties on the programming and intermediate language
! 169: levels Definitions and measures of non-functional program and system
! 170: properties (performance, time, space/memory, power, concurrency).
! 171: Modeling and representation of these properties alongside with the
! 172: programming languages semantics Adapting and enhancing
! 173: state-of-the-art compilation techniques towards non-functional
! 174: property and platform awareness New functional and non-functional
! 175: property and platform-aware compilation techniques Analyses for
! 176: non-functional program and system properties Functional and
! 177: non-functional property and platform-aware code generation techniques
! 178: Enabling validation and verification throughout the compilation
! 179: process Techniques for reducing or eliminating trusted code,
! 180: annotation, etc., bases
1.1 andi 181:
182:
183: \subsubsection*{Work Plan (first 4 years):}
184: %\emph{Brief description of how
185: %you intend to conduct the actual research during the first 4 years. Be sure
186: %to also describe and (coarsely) quantify the resources (staff, cost of
187: %special equipment) required for this work in a table. (20-30 lines)}
188:
1.11 ! knoop 189: Compilation techniques for robust embedded systems comprise different
! 190: areas. Therefore, the project is divided into three work packages:
! 191: compilation and simulation techniques for reliabiltiy, verified
! 192: compilation and worst case execution time analysis.
1.1 andi 193:
1.5 andi 194: \paragraph*{WP1 - Compilation and Simulation Techniques for Reliability}
1.1 andi 195:
1.6 andi 196: In previous work we have developed a processor description language
197: with a very concise semantics from where we automatically generate
198: optimized compilers \cite{BrEbKr07} and high efficient instruction set
199: simulators \cite{BrFeKrRi09}. This environment we use as testbed for
200: our compiler optimizations for embedded processors
201: \cite{EbBrSchKrWiKa08,PrKrHo06,MeKr07}. We will extend this
202: environment to do research on compilation and simulation techniques to
203: enhance the reliability of processor/memory systems by mixed
204: hardware/software and pure software techniques.
1.1 andi 205:
1.5 andi 206: \begin{itemize}
207: \item Specification method to specify an energy consumption model in
208: a processor specification.
209: \item Specification method for redundancy and error correction in the
210: processor specification
211: \item Specification method for fault injection and fault checking in
212: the processor specification
213: \item Generation of optimized instruction set simulators from the
1.6 andi 214: extended processor specification
215: \item Generation of optimizing compilers from the extended processor
216: specification
1.5 andi 217: \item Research into new compiler optimizations to increase reliability by
218: pure software solutions, mixed hardware/software solutions and
219: balancing performance, code space, reliability and energy consumption
220: \item Research of correctness proofs and validation of the new optimizations
221:
222: \end{itemize}
223:
224: \paragraph*{WP2 - Verified Compilation}
225:
1.8 andi 226: Suitable semantics are necessary which support efficient translation
1.11 ! knoop 227: validation or support easy verification of a compiler. We will
! 228: research into different semantics and into mappings between the
! 229: semantics of our processor description language \cite{BrEbKr07} and a
! 230: compiler backend semantics, intermediate representation semantics
! 231: (compatible to LLVM) and source language semantics. The main research
! 232: will be on verification and translation validation for all kinds of
! 233: compiler optimizations.
1.8 andi 234:
235: \begin{itemize}
236: \item Evaluate different semantics regarding suitability for compiler
237: verification and translation validation, eventually develop new
238: semantics
239: \item Develop a translator for an automatic mapping from our processor
240: description language into verification semantics
241: \item Develop a validation system from the intermediate representation
242: (LLVM) to the processor semantics
243: \item Develop a validation system from the source language (C) to the
244: intermediate representation (LLVM)
245: \item Research into verification and translation validation for different
246: frontend and backend optimizations
247: \end{itemize}
1.5 andi 248:
1.11 ! knoop 249: \paragraph*{WP3 - Resource Analysis}
! 250: For safety-critical real-time embedded sytems resource consumption
! 251: measured in terms of a quantitative aspect of a program execution such
! 252: as execution time, storage use, and power consumption belongs rather
! 253: to the functional properties of an application rather its
! 254: non-functional ones. Formal guarantees on resource consumption are
! 255: thus essential and mandatory to ensure the robustness of such
! 256: systems. This requires new and usually more complex but more
! 257: expressive program analyses and transformations to support the (1)
! 258: programmer during source code development by early and automatically
! 259: providing hints on resource consumption and (2) the compiler to
! 260: optimize for resource consumption. In our previous work we focused on
! 261: compiler support for
! 262: \emph{worst-case execution time analysis $($WCET$)$} \cite{Prantl:WCET2009,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657}. Based on this work and expertise we will extend this research towards
! 263: other quantitive aspects of resource consumption, especially storage
! 264: usage, towards these two global objectives, using the programming
! 265: environment used there as testbed for implementation
! 266: \cite{Prantl:WCET2009,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657}.
! 267:
! 268: \begin{itemize}
! 269: \item Research into new program analyses for providing high-quality
! 270: bounds on resourse consumption which are useful for both the
! 271: application programmer and the compiler.
! 272: \item Research new program analyses and static optimizations
! 273: to optimize for resource consumption and to help complying to
! 274: possibly given limits.
! 275: \item Research suitable abstraction levels of interfaces and modes
! 276: of interaction between fully automatic program analysis and
! 277: verification methods and semi-automatic ones relying on
! 278: user-assistance because of undecidability issues
! 279: \item Research the synergies and the trade-off between fully
! 280: automatic program analysis and verification methods and
! 281: semi-automatic ones utilizing user-assistance on high-quality
! 282: resource bounds and the computational costs to compute them.
! 283: \item Research simulation and profiling methods to assess the
! 284: quality of resource consumption analyses.
! 285: \end{itemize}
! 286: Overall, this WP will contribute to the design, foundations,
! 287: verification, implementation, and application of resource analyses.
! 288:
1.1 andi 289:
1.2 andi 290:
1.1 andi 291:
292: \begin{tabular}{llll}
1.5 andi 293: \\
1.1 andi 294: \hline
1.2 andi 295: {\bf Pos} & {\bf Type} & {\bf Description} & {\bf Duration} \\
296: NN1 & PhD & reliable compilation / simulation & 4 years \\
1.5 andi 297: NN2 & PhD & verified compilation & 4 years \\
1.11 ! knoop 298: NN3 & PhD & Resource analysis & 4 years \\
1.1 andi 299: \hline
300: \end{tabular}
301:
302:
303: \subsubsection*{Goals (last 4 years):}
304: %\emph{Brief description of the
305: %eesearch topics to be addressed during the last 4 years. Make sure to
306: %explicitly stress what the significant additions to the scientific
307: %knowledge are, and why they are important. (20-30 lines)}
308:
309: New programming languages and compilers for RESs
310: Non-functional properties and requirements as first-class language and compiler citizens
311: New compilation techniques enabling a uniform and integrated approach
312: for ensuring functional and non-functional program and system requirements
313: Replacing trust by proof
314: Certifying compilation, proof-carrying code, translation validation
315: Verified compilers, verifying compilation for RESs
316: Making legacy applications fit to and available on RESs
317: Techniques for adjusting and decompiling legacy applications
318:
319: \subsubsection*{Collaboration with other PPs:}
320: %\emph{List the PPs you are expecting to collaborate with, and describe briefly
321: %the topic and nature of such a collaboration. (10-20 lines)}
322:
323: \begin{itemize}
324: \item PP Composition of Non-functional Requirements [I.S.T.A./Henzinger]:
325: Links to specification and modeling of timing properties, to execution
326: models, hardware and software models.
327: \item PP Composition and Predictability in RES Architectures
328: [E182/Puschner]: Links to hard- and software models for time
329: predictable systems, verification of timing behaviour.
330: \item PP Formal Verification for Robustness [E184/Veith]: Links to software
1.10 knoop 331: model-checking and testing of code (on source code and intermediate
1.1 andi 332: code levels), support for program analysis and transformation.
333: \item PP Modeling \& Analysis of Robust Distributed Systems [E182/Schmid]:
334: Links to functional and non-functional system requirements,
335: distribution, concurrency.
336: \end{itemize}
337:
338: \subsubsection*{External Collaborations:}
339: %\emph{List envisioned international and national collaborations, and
340: %describe briefly the topic and nature of such a collaboration. (5-10
341: %lines)}
1.10 knoop 342: \begin{itemize}
1.11 ! knoop 343: \item Walter Binder, University of Lugano, Switzerland
1.10 knoop 344: \item Sabine Glesner, TU Berlin, Berlin, Germany
345: \item Aviral Shrivastava, Arizona State University, Tempe, AZ, USA
346: \item Wolf Zimmermann, Martin-Luther Universit\"at Halle-Wittenberg, Halle, Germany
347: \end{itemize}
1.1 andi 348:
349: \begin{comment}
350: %Bitte hier die Bibtex-Entries einfuellen, z.B.,
351:
352:
353: ------------------------------------
354:
355: @article{Hoare,
356: author = {Tony Hoare},
357: title = {The verifying compiler: A grand challenge for computing research},
358: journal = {Journal of the ACM},
359: volume = {50},
360: number = {1},
361: year = {2003},
362: issn = {0004-5411},
363: pages = {63--69},
364: doi = {http://doi.acm.org/10.1145/602382.602403},
365: publisher = {ACM},
366: address = {New York, NY, USA},
367: }
368:
369: @article{1328444,
370: author = {Jean-Baptiste Tristan and Xavier Leroy},
371: title = {Formal verification of translation validators: a case study on instruction scheduling optimizations},
372: journal = {SIGPLAN Not.},
373: volume = {43},
374: number = {1},
375: year = {2008},
376: issn = {0362-1340},
377: pages = {17--27},
378: doi = {http://doi.acm.org/10.1145/1328897.1328444},
379: publisher = {ACM},
380: address = {New York, NY, USA},
381: }
382:
383: @article{1314860,
384: author = {Jan Olaf Blech and Arnd Poetzsch-Heffter},
385: title = {A Certifying Code Generation Phase},
386: journal = {Electron. Notes Theor. Comput. Sci.},
387: volume = {190},
388: number = {4},
389: year = {2007},
390: issn = {1571-0661},
391: pages = {65--82},
392: doi = {http://dx.doi.org/10.1016/j.entcs.2007.09.008},
393: publisher = {Elsevier Science Publishers B. V.},
394: address = {Amsterdam, The Netherlands, The Netherlands},
395: }
396:
397: @INPROCEEDINGS{LeeShrivastava09,
398: TITLE = {A Compiler Optimization to Reduce Soft Errors in Register Files},
399: AUTHOR = {Jongeun Lee and Aviral Shrivastava},
400: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
401: EDITOR = {Mahmut Kandemir},
402: PUBLISHER = {ACM},
403: PAGES = {??--??},
404: ADDRESS = {Dublin},
405: MONTH = {June},
406: YEAR = {2009},
407: }
408:
409: @BOOK{MishraDutt08,
410: TITLE = {Processor Description Languages},
411: AUTHOR = {Prabhat Mishra and Nikil Dutt (Editor)},
412: PUBLISHER = {Morgan Kaufmann},
413: YEAR = {2008},
414: }
415:
416:
417:
418: %Eigene Referenzen ab hier.
419:
420: @InProceedings{SchrSchoKn09,
421: TITLE = "Adding Timing-Awareness to {AUTOSAR} Basic-Software - A Component Based Approach",
422: AUTHOR = "Dietmar Schreiner and Markus Schordan and Jens Knoop",
423: BOOKTITLE = "12th IEEE International Symposium on Object/component/service-oriented
424: Real-time distributed Computing (ISORC 2009)",
425: PUBLISHER = "IEEE",
426: ADDRESS = "Tokyo, Japan",
427: YEAR = "2009",
428: MONTH = "March",
429: PAGES = "288--292",
430: }
431:
432: @inproceedings{Prantl:WLPE2008,
433: Address = {Udine, Italy},
434: Author = {Adrian Prantl and Jens Knoop and Markus Schordan and Markus Triska},
435: Booktitle = {The 18th Workshop on Logic-based methods in Programming Environments (WLPE 2008)},
436: Month = {December 12},
437: Title = {Constraint solving for high-level WCET analysis},
438: Year = {2008},
439: URL = {http://costa.tuwien.ac.at/papers/wlpe08.pdf}
440: }
441:
442: @InProceedings{prantl_et_al:DSP:2008:1661,
443: author = "Adrian Prantl and Markus Schordan and Jens Knoop",
444: title = "TuBound - {A} Conceptually New Tool for Worst-Case
445: Execution Time Analysis",
446: booktitle = "8th Intl. Workshop on Worst-Case Execution Time (WCET)
447: Analysis",
448: year = "2008",
449: editor = "Raimund Kirner",
450: publisher = "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
451: Germany",
452: address = "Dagstuhl, Germany",
453: URL = "http://drops.dagstuhl.de/opus/volltexte/2008/1661",
454: annote = "Keywords: Worst-case execution time (WCET) analysis,
455: Tool Chain, Flow Constraints, Source-To-Source",
456: ISBN = "978-3-939897-10-1",
457: note = "also published in print by Austrian Computer Society
458: (OCG) under ISBN 978-3-85403-237-3",
459: }
460:
461: @InProceedings{kirner_et_al:DSP:2008:1657,
462: author = "Raimund Kirner and Albrecht Kadlec and Adrian Prantl
463: and Markus Schordan and Jens Knoop",
464: title = "Towards a Common {WCET} Annotation Language: Essential
465: Ingredients",
466: booktitle = "8th Intl. Workshop on Worst-Case Execution Time (WCET)
467: Analysis",
468: year = "2008",
469: editor = "Raimund Kirner",
470: publisher = "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
471: Germany",
472: address = "Dagstuhl, Germany",
473: URL = "http://drops.dagstuhl.de/opus/volltexte/2008/1657",
474: annote = "Keywords: Worst-case execution time (WCET) analysis,
475: annotation languages, WCET annotation language
476: challenge",
477: ISBN = "978-3-939897-10-1",
478: note = "also published in print by Austrian Computer Society
479: (OCG) under ISBN 978-3-85403-237-3",
480: }
481:
482: @InProceedings{kirner_et_al:DSP:2007:1197,
483: author = "Raimund Kirner and Jens Knoop and Adrian Prantl and
484: Markus Schordan and Ingomar Wenzel",
485: title = "{WCET} Analysis: The Annotation Language Challenge",
486: booktitle = "7th Intl. Workshop on Worst-Case Execution Time (WCET)
487: Analysis",
488: year = "2007",
489: editor = "Christine Rochange",
490: publisher = "Internationales Begegnungs- und Forschungszentrum
491: f{"u}r Informatik (IBFI), Schloss Dagstuhl, Germany",
492: address = "Dagstuhl, Germany",
493: URL = "http://drops.dagstuhl.de/opus/volltexte/2007/1197",
494: annote = "Keywords: Worst-case execution time analysis, WCET,
495: path description, annotation language challenge,
496: expressiveness, convenience",
497: }
498:
499:
500: @InProceedings{knoop:DSP:2008:1575,
501: author = {Jens Knoop},
502: title = {Data-Flow Analysis for Multi-Core Computing Systems: A Reminder to Reverse Data-Flow Analysis},
503: booktitle = {Scalable Program Analysis},
504: year = {2008},
505: editor = {Florian Martin and Hanne Riis Nielson and Claudio Riva and Markus Schordan},
506: number = {08161},
507: series = {Dagstuhl Seminar Proceedings},
508: ISSN = {1862-4405},
509: publisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany},
510: address = {Dagstuhl, Germany},
511: URL = {http://drops.dagstuhl.de/opus/volltexte/2008/1575},
512: annote = {Keywords: Multi-core computing systems, scalable program analysis, reverse data-flow analysis, demand-driven data-flow analysis}
513: }
514:
515: @InProceedings{conf/cc/XueK06,
516: title = "A Fresh Look at {PRE} as a Maximum Flow Problem",
517: author = "Jingling Xue and Jens Knoop",
518: bibdate = "2006-04-05",
519: bibsource = "DBLP,
520: http://dblp.uni-trier.de/db/conf/cc/cc2006.html#XueK06",
521: booktitle = "CC",
522: booktitle = "Compiler Construction, 15th International Conference,
523: {CC} 2006, Held as Part of the Joint European
524: Conferences on Theory and Practice of Software, {ETAPS}
525: 2006, Vienna, Austria, March 30-31, 2006, Proceedings",
526: publisher = "Springer",
527: year = "2006",
528: volume = "3923",
529: editor = "Alan Mycroft and Andreas Zeller",
530: ISBN = "3-540-33050-X",
531: pages = "139--154",
532: series = "Lecture Notes in Computer Science",
533: URL = "http://dx.doi.org/10.1007/11688839_13",
534: }
535:
536: @InProceedings{scholz04,
537: author = "Bernhard Scholz and Nigel Horspool and Jens Knoop",
538: title = "Optimizing for space and time usage with speculative
539: partial redundancy elimination",
540: booktitle = "LCTES '04: Proceedings of the 2004 ACM SIGPLAN/SIGBED
541: conference on Languages, Compilers, and Tools for Embedded Systems",
542: year = "2004",
543: ISBN = "1-58113-806-7",
544: pages = "221--230",
545: location = "Washington, DC, USA",
546: publisher = "ACM Press",
547: }
548:
549: @InProceedings{HiKr03,
550: TITLE = "{VLIW} Operation Refinement for Reducing Energy Consumption",
551: AUTHOR = "Ulrich Hirnschrott and Andreas Krall",
552: BOOKTITLE = "International Symposium on System-on Chip",
553: PUBLISHER = "IEEE",
554: ADDRESS = "Tampere, Finland",
555: YEAR = "2003",
556: PAGES = "131--134",
557: }
558:
559: @Article{Krall+04micro,
560: author = {Andreas Krall and Ulrich Hirnschrott and Christian Panis and Ivan Pryanishnikov},
561: title = {x{DSP}core: {A} {C}ompiler-{B}ased {C}onfigureable {D}igital {S}ignal {P}rocessor},
562: journal = {IEEE Micro},
563: year = {2004},
564: OPTkey = {},
565: volume = {24},
566: number = {4},
567: pages = {67-78},
568: month = {July/August},
569: OPTnote = {},
570: OPTannote = {},
571: }
572:
573: @INPROCEEDINGS{FarKrStBrand06,
574: TITLE = {Effective Compiler Generation by Architecture Description},
575: AUTHOR = {Stefan Farfeleder and Andreas Krall and Edwin Steiner and Florian Brandner},
576: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
577: EDITOR = {Koen De Bosschere},
578: PUBLISHER = {ACM},
579: PAGES = {145--152},
580: ADDRESS = {Ottawa},
581: MONTH = {June},
582: YEAR = {2006},
583: URL = {http://doi.acm.org/10.1145/1134650.1134671},
584: }
585:
586: @ARTICLE{PrKrHo06,
587: AUTHOR = {Ivan Pryanishnikov and Andreas Krall and Nigel Horspool},
588: TITLE = {Compiler Optimizations for Processors with {SIMD} Instructions},
589: JOURNAL = {Software---Practice and Experience},
590: PUBLISHER = {Wiley},
591: VOLUME = {37},
592: NUMBER = {1},
593: PAGES = {93--113},
594: YEAR = {2007},
595: URL = {http://www3.interscience.wiley.com/cgi-bin/fulltext/112783581/PDFSTART},
596: }
597:
598: @ARTICLE{FaKrHo07,
599: AUTHOR = {Stefan Farfeleder and Andreas Krall and Nigel Horspool},
600: TITLE = {Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures},
601: JOURNAL = {Journal of Systems Architecture},
602: PUBLISHER = {Elsevier},
603: VOLUME = {53},
604: NUMBER = {8},
605: PAGES = {501--510},
606: YEAR = {2007},
607: }
608:
609: @INPROCEEDINGS{MeKr07,
610: TITLE = {Instruction Set Encoding Optimization for Code Size Reduction},
611: AUTHOR = {Michael Med and Andreas Krall},
612: BOOKTITLE = {International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation},
613: ADDRESS = {Samos, Greece},
614: PAGES = {9--17},
615: MONTH = {July},
616: YEAR = {2007}
617: }
618:
619: @INPROCEEDINGS{BrEbKr07,
620: TITLE = {Compiler Generation from Structural Architecture Descriptions},
621: AUTHOR = {Florian Brandner and Dietmar Ebner and Andreas Krall},
622: BOOKTITLE = {International Conference on Compilers, Architecture, and Synthesis for Embedded Systems},
623: ADDRESS = {Salzburg, Austria},
624: PAGES = {13--22},
625: MONTH = {September},
626: YEAR = {2007}
627: }
628:
629: @INPROCEEDINGS{EbBrSchKrWiKa08,
630: TITLE = {Generalized Instruction Selection using {SSA}-Graphs},
631: AUTHOR = {Dietmar Ebner and Florian Brandner and Bernhard Scholz and Andreas Krall and Peter Wiedermann and Albrecht Kadlec},
632: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
633: EDITOR = {John Regehr},
634: PUBLISHER = {ACM},
635: PAGES = {31--40},
636: ADDRESS = {Tucson},
637: MONTH = {June},
638: YEAR = {2008},
639: }
640:
641: @INPROCEEDINGS{BrFeKrRi09,
642: TITLE = {Fast and Accurate Simulation using the LLVM Compiler Framework},
643: AUTHOR = {Florian Brandner and Andreas Fellnhofer and Andreas Krall and David Riegler},
644: BOOKTITLE = {Rapid Simulation and Performance Evaluation: Methods and Tools (RAPIDO'09)},
645: EDITOR = {Smail Niar, Rainer Leupers, Olivier Temam},
646: PUBLISHER = {HiPEAC},
647: PAGES = {1--6},
648: ADDRESS = {Paphos, Cyprus},
649: MONTH = {January},
650: YEAR = {2009},
651: }
652: \end{comment}
653:
654: \bibliography{res} % Input von res.bib, kommt dann spaeter dazu ...
655:
656: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>