[www] r295842 - Add author affiliations
Kevin Streit via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 22 06:59:20 PST 2017
Author: streit
Date: Wed Feb 22 08:59:19 2017
New Revision: 295842
URL: http://llvm.org/viewvc/llvm-project?rev=295842&view=rev
Log:
Add author affiliations
On behalf of Johannes Doerfert <johannes at jdoerfert.de> (Wed Feb 22 16:07:47 2017 +0100)
Modified:
www/trunk/devmtg/2017-03/2017/02/20/accepted-sessions.html
www/trunk/devmtg/2017-03/assets/css/style.css
Modified: www/trunk/devmtg/2017-03/2017/02/20/accepted-sessions.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/devmtg/2017-03/2017/02/20/accepted-sessions.html?rev=295842&r1=295841&r2=295842&view=diff
==============================================================================
--- www/trunk/devmtg/2017-03/2017/02/20/accepted-sessions.html (original)
+++ www/trunk/devmtg/2017-03/2017/02/20/accepted-sessions.html Wed Feb 22 08:59:19 2017
@@ -195,7 +195,7 @@ Keynotes
Hal Finkel
</p>
<p class="affiliation">
-
+ Argonne National Laboratory
</p>
<p class="kind">
@@ -248,7 +248,7 @@ Full Talks
Justin Bogner
</p>
<p class="affiliation">
-
+ Apple
</p>
<p class="kind">
@@ -272,19 +272,19 @@ Recently there has been a lot of work on
Sjoerd Meijer
</p>
<p class="affiliation">
-
+ ARM
</p>
<p class="author">
James Molloy
</p>
<p class="affiliation">
-
+ ARM
</p>
<p class="author">
Pablo Barrio
</p>
<p class="affiliation">
-
+ ARM
</p>
<p class="kind">
@@ -308,7 +308,7 @@ Last year, we've done considerable ARM c
Guy Blank
</p>
<p class="affiliation">
-
+ Intel
</p>
<p class="kind">
@@ -332,13 +332,13 @@ In the past years LLVM has been extended
Vladimir Voskresensky
</p>
<p class="affiliation">
-
+ Oracle
</p>
<p class="author">
Petr Kudryavtsev
</p>
<p class="affiliation">
-
+ Oracle
</p>
<p class="kind">
@@ -362,25 +362,25 @@ Clang was written in a way that allows t
Zoltán Porkoláb
</p>
<p class="affiliation">
-
+ Ericsson Ltd., Eötvös Loránd University, Faculty of Informatics, Dept of Programming Languages and Compilers
</p>
<p class="author">
Dániel Krupp
</p>
<p class="affiliation">
-
+ Ericsson Ltd.
</p>
<p class="author">
Tibor Brunner
</p>
<p class="affiliation">
-
+ Eötvös Loránd University, Faculty of Informatics, Dept of Programming Languages and Compilers
</p>
<p class="author">
Márton Csordás
</p>
<p class="affiliation">
-
+ Eötvös Loránd University, Faculty of Informatics, Dept of Programming Languages and Compilers
</p>
<p class="kind">
@@ -404,19 +404,19 @@ Bugfixing or new feature development req
Daniel Krupp
</p>
<p class="affiliation">
-
+ Ericsson
</p>
<p class="author">
Gabor Horvath
</p>
<p class="affiliation">
-
+ ELTE
</p>
<p class="author">
Zoltan Porkolab
</p>
<p class="affiliation">
-
+ Ericsson
</p>
<p class="kind">
@@ -440,7 +440,7 @@ Today Clang Static Analyzer [4] can perf
Greg Bedwell
</p>
<p class="affiliation">
-
+ Sony Interactive Entertainment
</p>
<p class="kind">
@@ -453,7 +453,7 @@ Today Clang Static Analyzer [4] can perf
Delivering Sample-based PGO for PlayStation(R)4 (and the impact on optimized debugging)
</p>
<p class="abstract">
-Users of the PlayStation(R)4 toolchain have a number of expectations from their development tools: good runtime performance is vitally important, as is the ability to debug fully optimized code. The team at Sony Interactive Entertainment have been working on delivering a Profile Guided Optimization solution to our users to allow them to maximize their runtime performance. First we provided instrumentation-based PGO which has been successfully used by a number of our users. More recently we followed this up by also providing a Sample-based PGO approach, built upon the work of and working together with the LLVM community, and integrated with the PS4 SDK's profiling tools for a simple and seamless workflow.<br /><br /><br />In this talk, we'll present real-world case-studies showing how the Sample-based approach compares with Instrumented PGO in terms of user workflow, runtime intrusion while profiling, and final runtime performance improvement. We'll show with the aid of real code
examples how the performance results of Sample-based PGO are heavily impacted by the accuracy of the compiler's line table debugging information and how by improving the propagation of debug data in some transformations both the Sample-based PGO runtime performance results and the overall user experience of debugging optimized code have been improved, so that anyone implementing new transformations can take this into account, especially as debug information is increasingly being used by consumers other than traditional debuggers that rely on its accuracy.
+Users of the PlayStation(R)4 toolchain have a number of expectations from their development tools: good runtime performance is vitally important, as is the ability to debug fully optimized code. The team at Sony Interactive Entertainment have been working on delivering a Profile Guided Optimization solution to our users to allow them to maximize their runtime performance. First we provided instrumentation-based PGO which has been successfully used by a number of our users. More recently we followed this up by also providing a Sample-based PGO approach, built upon the work of and working together with the LLVM community, and integrated with the PS4 SDK's profiling tools for a simple and seamless workflow.<br /><br />In this talk, we'll present real-world case-studies showing how the Sample-based approach compares with Instrumented PGO in terms of user workflow, runtime intrusion while profiling, and final runtime performance improvement. We'll show with the aid of real code examp
les how the performance results of Sample-based PGO are heavily impacted by the accuracy of the compiler's line table debugging information and how by improving the propagation of debug data in some transformations both the Sample-based PGO runtime performance results and the overall user experience of debugging optimized code have been improved, so that anyone implementing new transformations can take this into account, especially as debug information is increasingly being used by consumers other than traditional debuggers that rely on its accuracy.
</p>
</td>
</tr>
@@ -464,19 +464,19 @@ Users of the PlayStation(R)4 toolchain h
Roland LeiÃa
</p>
<p class="affiliation">
-
+ Saarland University
</p>
<p class="author">
Klaas Boesche
</p>
<p class="affiliation">
-
+ Saarland Informatics Campus
</p>
<p class="author">
Sebastian Hack
</p>
<p class="affiliation">
-
+ Saarland Informatics Campus
</p>
<p class="kind">
@@ -500,13 +500,13 @@ Many modern programming languages suppor
Artur Pilipenko
</p>
<p class="affiliation">
-
+ Azul Systems
</p>
<p class="author">
Igor Laevsky
</p>
<p class="affiliation">
-
+ Azul Systems
</p>
<p class="kind">
@@ -530,13 +530,13 @@ At Azul we are building a production qua
Soham Chakraborty
</p>
<p class="affiliation">
-
+ Max Planck Institute for Software Systems (MPI-SWS)
</p>
<p class="author">
Viktor Vafeiadis
</p>
<p class="affiliation">
-
+ Max Planck Institute for Software Systems (MPI-SWS)
</p>
<p class="kind">
@@ -560,13 +560,13 @@ The LLVM compiler follows closely the co
Gil Rapaport
</p>
<p class="affiliation">
-
+ Intel
</p>
<p class="author">
Ayal Zaks
</p>
<p class="affiliation">
-
+ Intel
</p>
<p class="kind">
@@ -590,7 +590,7 @@ This talk describes our efforts to refac
Ulrich Weigand
</p>
<p class="affiliation">
-
+ IBM
</p>
<p class="kind">
@@ -614,13 +614,13 @@ Since we initially added support for the
Yishen Chen
</p>
<p class="affiliation">
-
+ University of Illinois at Urbana-Champaign
</p>
<p class="author">
Vikram Adve
</p>
<p class="affiliation">
-
+ University of Illinois at Urbana-Champaign
</p>
<p class="kind">
@@ -644,19 +644,19 @@ We present LLVMTuner, an autotuning fram
Ashutosh Nema
</p>
<p class="affiliation">
-
+ AMD
</p>
<p class="author">
Shivarama Rao
</p>
<p class="affiliation">
-
+ AMD
</p>
<p class="author">
Dibyendu Das
</p>
<p class="affiliation">
-
+ AMD
</p>
<p class="kind">
@@ -680,25 +680,25 @@ Loop un-switching is a well-known compil
Roberto Castañeda Lozano
</p>
<p class="affiliation">
-
+ Swedish Institute of Computer Science
</p>
<p class="author">
Gabriel Hjort Blindell
</p>
<p class="affiliation">
-
+ KTH Royal Institute of Technology
</p>
<p class="author">
Mats Carlsson
</p>
<p class="affiliation">
-
+ Swedish Institute of Computer Science
</p>
<p class="author">
Christian Schulte
</p>
<p class="affiliation">
-
+ KTH Royal Institute of Technology
</p>
<p class="kind">
@@ -722,7 +722,7 @@ This talk presents Unison - a simple, fl
Neil Hickey
</p>
<p class="affiliation">
-
+ ARM
</p>
<p class="kind">
@@ -746,7 +746,7 @@ A deep dive into future directions of SP
Marcel Beemster
</p>
<p class="affiliation">
-
+ Solid Sands B.V.
</p>
<p class="kind">
@@ -770,13 +770,13 @@ Would you step into a car if you knew th
Markus Eble
</p>
<p class="affiliation">
-
+ SAP SE
</p>
<p class="author">
Philipp Becker
</p>
<p class="affiliation">
-
+ SAP SE
</p>
<p class="kind">
@@ -800,67 +800,67 @@ In this presentation we would like to sh
Bjarke Roune
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Chris Leary
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
David Majnemer
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Eli Bendersky
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Hyoukjoong Lee
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Jacques Pienaar
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Jim Stichnoth
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Jingyue Wu
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Mark Heffernan
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Matthew Farkas-Dyck
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="author">
Robert Hundt
</p>
<p class="affiliation">
-
+ Google Inc.
</p>
<p class="kind">
@@ -884,7 +884,7 @@ We'll introduce XLA, a domain-specific o
Dean Michael Berris
</p>
<p class="affiliation">
-
+ Google, Inc.
</p>
<p class="kind">
@@ -913,7 +913,7 @@ Student Research Competition (SRC)
Thierno Barry
</p>
<p class="affiliation">
-
+ CEA
</p>
<p class="kind">
@@ -937,25 +937,25 @@ Fault injection attacks are considered a
Michael Haidl
</p>
<p class="affiliation">
-
+ University of Muenster
</p>
<p class="author">
Michel Steuwer
</p>
<p class="affiliation">
-
+ University of Edinburgh
</p>
<p class="author">
Tim Humernbrum
</p>
<p class="affiliation">
-
+ University of Muenster
</p>
<p class="author">
Sergei Gorlatch
</p>
<p class="affiliation">
-
+ University of Muenster
</p>
<p class="kind">
@@ -979,19 +979,19 @@ In this paper, we describe PACXX -- our
Georgios Zacharopoulos
</p>
<p class="affiliation">
-
+ Università della Svizzera Italiana
</p>
<p class="author">
Giovanni Ansaloni
</p>
<p class="affiliation">
-
+ Università della Svizzera Italiana
</p>
<p class="author">
Laura Pozzi
</p>
<p class="affiliation">
-
+ Università della Svizzera Italiana
</p>
<p class="kind">
@@ -1015,25 +1015,25 @@ The efficiency of accelerators supportin
Lawrence Esswood
</p>
<p class="affiliation">
-
+ University Of Cambridge
</p>
<p class="author">
Khilan Gudka
</p>
<p class="affiliation">
-
+ University Of Cambridge
</p>
<p class="author">
David Chisnall
</p>
<p class="affiliation">
-
+ University Of Cambridge
</p>
<p class="author">
Robert N. M. Watson
</p>
<p class="affiliation">
-
+ University Of Cambridge
</p>
<p class="kind">
@@ -1057,13 +1057,13 @@ Control-Flow Integrity (CFI) techniques
Andres Noetzli
</p>
<p class="affiliation">
-
+ Stanford University
</p>
<p class="author">
Fraser Brown
</p>
<p class="affiliation">
-
+ Stanford University
</p>
<p class="kind">
@@ -1087,13 +1087,13 @@ Users depend on correct compiler optimiz
Sam Ainsworth
</p>
<p class="affiliation">
-
+ University of Cambridge
</p>
<p class="author">
Timothy Jones
</p>
<p class="affiliation">
-
+ University of Cambridge
</p>
<p class="kind">
@@ -1122,13 +1122,13 @@ Lightning Talks
Georgios Zacharopoulos
</p>
<p class="affiliation">
-
+ Università della Svizzera Italiana
</p>
<p class="author">
Laura Pozzi
</p>
<p class="affiliation">
-
+ Università della Svizzera Italiana
</p>
<p class="kind">
@@ -1152,7 +1152,7 @@ Recent LLVM distributions have been offe
Phillip Power
</p>
<p class="affiliation">
-
+ Sony Interactive Entertainment (SIE)
</p>
<p class="kind">
@@ -1176,7 +1176,7 @@ In this lightning talk, Phillip will pre
Sean Eveson
</p>
<p class="affiliation">
-
+ Sony
</p>
<p class="kind">
@@ -1200,7 +1200,7 @@ I present three modified API checkers, t
Stephan Bergmann
</p>
<p class="affiliation">
-
+ Red Hat
</p>
<p class="kind">
@@ -1253,7 +1253,7 @@ BoFs
Christoph Mallon
</p>
<p class="affiliation">
-
+ AbsInt Angewandte Informatik GmbH
</p>
<p class="kind">
@@ -1277,7 +1277,7 @@ While LLVM has a modern mostly graph-bas
Marc-Andre Laperle
</p>
<p class="affiliation">
-
+ Ericsson
</p>
<p class="kind">
@@ -1301,19 +1301,19 @@ Clangd is a new tool developed as part o
Renato Golin
</p>
<p class="affiliation">
-
+ Linaro
</p>
<p class="author">
Kristof Beyls
</p>
<p class="affiliation">
-
+ ARM
</p>
<p class="author">
Diana Picus
</p>
<p class="affiliation">
-
+ Linaro
</p>
<p class="kind">
@@ -1342,13 +1342,13 @@ Posters
Richard Membarth
</p>
<p class="affiliation">
-
+ DFKI & Saarland University
</p>
<p class="author">
Roland LeiÃa
</p>
<p class="affiliation">
-
+ Saarland University
</p>
<p class="kind">
@@ -1372,7 +1372,7 @@ AnyDSL is a framework for the rapid deve
Sam Parker
</p>
<p class="affiliation">
-
+ ARM Ltd
</p>
<p class="kind">
@@ -1393,16 +1393,28 @@ Often application source code is not ava
<tr class="entry">
<td>
<p class="author">
- Min-Yi Hsu
+ Zoltan Porkolab
</p>
<p class="affiliation">
-
+ Ericsson
</p>
<p class="author">
- Jenq-Kuen Lee
+ Daniel Krupp
</p>
<p class="affiliation">
-
+ Ericsson
+ </p>
+ <p class="author">
+ Tibor Brunner
+ </p>
+ <p class="affiliation">
+ Eötvös Loránd University, Faculty of Informatics, Dept of Programming Languages and Compilers
+ </p>
+ <p class="author">
+ Márton Csordás
+ </p>
+ <p class="affiliation">
+ Eötvös Loránd University, Faculty of Informatics, Dept of Programming Languages and Compilers
</p>
<p class="kind">
@@ -1412,10 +1424,10 @@ Often application source code is not ava
<td>
<p class="title">
<a name="38"></a>
- Hydra LLVM: Instruction Selection with Threads
+ CodeCompass: An Open Software Comprehension Framework
</p>
<p class="abstract">
-By the rise of program complexity and some specific usages like JIT(Just-In-Time) compilation, compilation speed becomes more and more important in recent years.<br />Instruction selection in LLVM, on the other hand, is the most time-consuming part among all the LLVM components, which can take nearly 50% of total compilation time. We believe that by reducing time consumption of instruction selection, the total compilation speed can get a significant increase.<br />Thus, we propose a (work-in-progress) prototype design that use multi-thread programming to parallelize the instruction selector in order to reach the goal mentioned above. The original instruction selector is implemented as a bytecode interpreter, which executes the operation codes generated by TableGen files that models the machine instructions, and transform IR selection graph into machine-dependent selection graph at the end. The selector, to our surprised, shows some great properties which we can benefit from in creat
ing multi-thread version of that. For example, an opcode scope that save the current context before executing the following opcodes sequence, and restore the context after finishing them. While preserving the original algorithm of the selector, we also try hard to reduce the concurrency overhead by replacing unnecessary mutex lock with better one like read/write lock and atomic variables.<br />Though the experiments didnât show promising result, we are still looking forward to the potential of reducing the consuming time of instruction selection in order to increase the overall compilation speed. In the future, we will try different compilation regions to parallelize for the sake of finding the optimal one that causes less overhead. At the same time, we are also going to combine this project with existing JIT framework in LLVM in order to reduce the execution latency caused by runtime compilation.
+Bugfixing or new feature development requires a confident understanding of all details and consequences of the planned changes. For long existing large telecom systems, where the code base have been developed and maintained for decades byfluctuating teams, original intentions are lost, the documentation is untrustworthy or missing, the only reliable information is the code itself. Code comprehension of such large software systems is an essential, but usually very challenging task. As the method of comprehension is fundamentally different fromwriting new code, development tools are not performing well. During the years, different programs have been developed with various complexity and feature set for code comprehension but none of them fulfilled all requirements.<br /><br />CodeCompass is an open source LLVM/Clang based tool developed by Ericsson Ltd. and the Eötvös Loránd University, Budapest to help understanding large legacy software systems. Based on the LLVM/Clang comp
iler infrastructure, CodeCompass gives exact information on complex C/C++ language elements like overloading, inheritance, the (read or write) usage of variables, possible call.<br />on function pointers and the virtual functions -- features that various existing tools support only partially. The wide range of interactive visualizations extends further than the usual class and function call diagrams; architectural, component and interface diagrams are a few of the implemented graphs.<br /><br />To make comprehension more extensive, CodeCompass is not restricted to the source code. It also utilizes build information to explore the system architecture as well as version control information when available: git commit history and blame view are also visualized. Clang based static analysis results are also integrated to CodeCompass. Although the tool focuses mainly on C and C++, it also supports Java and Python languages. Having a web-based, pluginable, extensible architecture, the CodeC
ompass framework can bean open platform to further code comprehension, static analysis and software metrics efforts.<br /><br />Lecture outline:<br />- First we show why current development tools are not satisfactory for code comprehension<br />- Then we specify the requirements for such a tool<br />- Introduce codecompass architectur.<br />- Revail some challenges we have met and how we solve them<br />- Show a live demo<br />- Describe the open architecture and<br />- Talk about future plans and how the community can extend the feature set
</p>
</td>
</tr>
@@ -1423,22 +1435,16 @@ By the rise of program complexity and so
<tr class="entry">
<td>
<p class="author">
- Anja Gerbes
- </p>
- <p class="affiliation">
-
- </p>
- <p class="author">
- Julian Kunkel
+ Min-Yi Hsu
</p>
<p class="affiliation">
-
+ National Tsing-Hua University
</p>
<p class="author">
- Nabeeh Jumah
+ Jenq-Kuen Lee
</p>
<p class="affiliation">
-
+ National Tsing-Hua University
</p>
<p class="kind">
@@ -1448,10 +1454,10 @@ By the rise of program complexity and so
<td>
<p class="title">
<a name="39"></a>
- Intelligent selection of compiler options to optimize compile time and performance
+ Hydra LLVM: Instruction Selection with Threads
</p>
<p class="abstract">
-The efficiency of the optimization process during the compilation is crucial for the later execution behavior of the code.<br />The achieved performance depends on the hardware architecture and the compiler's capabilities to extract this performance.<br /><br />Code optimization can be a CPU- and memory-intensive process which -- for large codes -- can lead to high compilation times during development.<br />Optimization also influences the debuggability of the resulting binary; for example, by storing data in registers.<br />During development, it would be interesting to compile files individually with appropriate flags that enable debugging and provide high (near-production) performance during the testing but with moderate compile times.<br />We are exploring to create a tool to identify code regions that are candidates for higher optimization levels.<br />We follow two different approaches to identify the most efficient code optimization:<br />1) compiling different files with dif
ferent options by brute force;2) using profilers to identify the relevant code regions that should be optimized.<br /><br />Since big projects comprise hundreds of files, brute force is not efficient.<br />The problem in, e.g., climate applications is that codes have too many files to test them individually.<br />Improving this strategy using a profiler, we can identify the time consuming regions (and files) and then repeatedly refine our selection.<br />Then, the relevant files are evaluated with different compiler flags to determine a good compromise of the flags.<br />Once the appropriate flags are determined, this information could be retained across builds and shared between users.<br /><br /><br />In our poster, we motivate and demonstrate this strategy on a stencil code derived from climate applications.<br />The experiments done throughout this work are carried out on a recent Intel Skylake (i7-6700 CPU @ 3.40GHz) machine.<br />We compare performance of the compilers clang (
version 3.9.1) and gcc (version 6.3.0) for various optimization flags and using profile guided optimization (PGO) with the traditional compile with instrumentation/run/compile phase and when using the perf tool for dynamic instrumentation.<br />The results show that more time (2x) is spent for compiling code using higher optimization levels in general, though gcc takes a little less time in general than clang.<br />Yet the performance of the application were comparable after compiling the whole code with O3 to that of applying O3 optimization to the right subset of files.<br />Thus, the approach proves to be effective for repositories where compilation is analyzed to guide subsequent compilations.<br /><br />Based on these results, we are building a prototype tool that can be embedded into building systems that realizes the aforementioned strategies of brute-force testing and profile guided analysis of relevant compilation flags.
+By the rise of program complexity and some specific usages like JIT(Just-In-Time) compilation, compilation speed becomes more and more important in recent years.<br />Instruction selection in LLVM, on the other hand, is the most time-consuming part among all the LLVM components, which can take nearly 50% of total compilation time. We believe that by reducing time consumption of instruction selection, the total compilation speed can get a significant increase.<br />Thus, we propose a (work-in-progress) prototype design that use multi-thread programming to parallelize the instruction selector in order to reach the goal mentioned above. The original instruction selector is implemented as a bytecode interpreter, which executes the operation codes generated by TableGen files that models the machine instructions, and transform IR selection graph into machine-dependent selection graph at the end. The selector, to our surprised, shows some great properties which we can benefit from in creat
ing multi-thread version of that. For example, an opcode scope that save the current context before executing the following opcodes sequence, and restore the context after finishing them. While preserving the original algorithm of the selector, we also try hard to reduce the concurrency overhead by replacing unnecessary mutex lock with better one like read/write lock and atomic variables.<br />Though the experiments didnât show promising result, we are still looking forward to the potential of reducing the consuming time of instruction selection in order to increase the overall compilation speed. In the future, we will try different compilation regions to parallelize for the sake of finding the optimal one that causes less overhead. At the same time, we are also going to combine this project with existing JIT framework in LLVM in order to reduce the execution latency caused by runtime compilation.
</p>
</td>
</tr>
@@ -1459,28 +1465,22 @@ The efficiency of the optimization proce
<tr class="entry">
<td>
<p class="author">
- Gabriel Hjort Blindell
- </p>
- <p class="affiliation">
-
- </p>
- <p class="author">
- Roberto Castañeda Lozano
+ Anja Gerbes
</p>
<p class="affiliation">
-
+ Center for Scientific Computing
</p>
<p class="author">
- Mats Carlsson
+ Julian Kunkel
</p>
<p class="affiliation">
-
+ Deutsches Klimarechenzentrum
</p>
<p class="author">
- Christian Schulte
+ Nabeeh Jumah
</p>
<p class="affiliation">
-
+ Universität Hamburg
</p>
<p class="kind">
@@ -1490,10 +1490,10 @@ The efficiency of the optimization proce
<td>
<p class="title">
<a name="40"></a>
- Modeling Universal Instruction Selection
+ Intelligent selection of compiler options to optimize compile time and performance
</p>
<p class="abstract">
-Instruction selection implements a program under compilation by selectingprocessor instructions and has tremendous impact on the performance of the codegenerated by a compiler. We have introduced a graph-based universalrepresentation that unifies data and control flow for both programs andprocessor instructions. The representation is the essential prerequisite for aconstraint model for instruction selection introduced in this paper. The modelis demonstrated to be expressive in that it supports many processor featuresthat are out of reach of state-of-the-art approaches, such as advanced branchinginstructions, multiple register banks, and SIMD instructions. The resultingmodel can be solved for small to medium size input programs and sophisticatedprocessor instructions and is competitive with LLVM in code quality. Model andrepresentation are significant due to their expressiveness and their potentialto be combined with models for other code generation tasks.
+The efficiency of the optimization process during the compilation is crucial for the later execution behavior of the code.<br />The achieved performance depends on the hardware architecture and the compiler's capabilities to extract this performance.<br /><br />Code optimization can be a CPU- and memory-intensive process which -- for large codes -- can lead to high compilation times during development.<br />Optimization also influences the debuggability of the resulting binary; for example, by storing data in registers.<br />During development, it would be interesting to compile files individually with appropriate flags that enable debugging and provide high (near-production) performance during the testing but with moderate compile times.<br />We are exploring to create a tool to identify code regions that are candidates for higher optimization levels.<br />We follow two different approaches to identify the most efficient code optimization:<br />1) compiling different files with dif
ferent options by brute force;2) using profilers to identify the relevant code regions that should be optimized.<br /><br />Since big projects comprise hundreds of files, brute force is not efficient.<br />The problem in, e.g., climate applications is that codes have too many files to test them individually.<br />Improving this strategy using a profiler, we can identify the time consuming regions (and files) and then repeatedly refine our selection.<br />Then, the relevant files are evaluated with different compiler flags to determine a good compromise of the flags.<br />Once the appropriate flags are determined, this information could be retained across builds and shared between users.<br /><br /><br />In our poster, we motivate and demonstrate this strategy on a stencil code derived from climate applications.<br />The experiments done throughout this work are carried out on a recent Intel Skylake (i7-6700 CPU @ 3.40GHz) machine.<br />We compare performance of the compilers clang (
version 3.9.1) and gcc (version 6.3.0) for various optimization flags and using profile guided optimization (PGO) with the traditional compile with instrumentation/run/compile phase and when using the perf tool for dynamic instrumentation.<br />The results show that more time (2x) is spent for compiling code using higher optimization levels in general, though gcc takes a little less time in general than clang.<br />Yet the performance of the application were comparable after compiling the whole code with O3 to that of applying O3 optimization to the right subset of files.<br />Thus, the approach proves to be effective for repositories where compilation is analyzed to guide subsequent compilations.<br /><br />Based on these results, we are building a prototype tool that can be embedded into building systems that realizes the aforementioned strategies of brute-force testing and profile guided analysis of relevant compilation flags.
</p>
</td>
</tr>
@@ -1501,28 +1501,28 @@ Instruction selection implements a progr
<tr class="entry">
<td>
<p class="author">
- Zoltan Porkolab
+ Gabriel Hjort Blindell
</p>
<p class="affiliation">
-
+ KTH Royal Institute of Technology
</p>
<p class="author">
- Daniel Krupp
+ Roberto Castañeda Lozano
</p>
<p class="affiliation">
-
+ Swedish Institute of Computer Science
</p>
<p class="author">
- Tibor Brunner
+ Mats Carlsson
</p>
<p class="affiliation">
-
+ Swedish Institute of Computer Science
</p>
<p class="author">
- Márton Csordás
+ Christian Schulte
</p>
<p class="affiliation">
-
+ KTH Royal Institute of Technology
</p>
<p class="kind">
@@ -1532,10 +1532,10 @@ Instruction selection implements a progr
<td>
<p class="title">
<a name="41"></a>
- Poster: CodeCompass: An Open Software Comprehension Framework
+ Modeling Universal Instruction Selection
</p>
<p class="abstract">
-Bugfixing or new feature development requires a confident understanding of all details and consequences of the planned changes. For long existing large telecom systems, where the code base have been developed and maintained for decades byfluctuating teams, original intentions are lost, the documentation is untrustworthy or missing, the only reliable information is the code itself. Code comprehension of such large software systems is an essential, but usually very challenging task. As the method of comprehension is fundamentally different fromwriting new code, development tools are not performing well. During the years, different programs have been developed with various complexity and feature set for code comprehension but none of them fulfilled all requirements.<br /><br />CodeCompass is an open source LLVM/Clang based tool developed by Ericsson Ltd. and the Eötvös Loránd University, Budapest to help understanding large legacy software systems. Based on the LLVM/Clang comp
iler infrastructure, CodeCompass gives exact information on complex C/C++ language elements like overloading, inheritance, the (read or write) usage of variables, possible calls on function pointers and the virtual functions -- features that various existing tools support only partially. The wide range of interactive visualizations extends further than the usual class and function call diagrams; architectural, component and interface diagrams are a few of the implemented graphs.<br /><br />To make comprehension more extensive, CodeCompass is not restricted to the source code. It also utilizes build information to explore the system architecture as well as version control information when available: git commit history and blame view are also visualized. Clang based static analysis results are also integrated to CodeCompass. Although the tool focuses mainly on C and C++, it also supports Java and Python languages. Having a web-based.<br />pluginable, extensible architecture, the CodeC
ompass framework can be an open platform to further code comprehension, static analysis and software metrics efforts.<br />
+Instruction selection implements a program under compilation by selectingprocessor instructions and has tremendous impact on the performance of the codegenerated by a compiler. We have introduced a graph-based universalrepresentation that unifies data and control flow for both programs andprocessor instructions. The representation is the essential prerequisite for aconstraint model for instruction selection introduced in this paper. The modelis demonstrated to be expressive in that it supports many processor featuresthat are out of reach of state-of-the-art approaches, such as advanced branchinginstructions, multiple register banks, and SIMD instructions. The resultingmodel can be solved for small to medium size input programs and sophisticatedprocessor instructions and is competitive with LLVM in code quality. Model andrepresentation are significant due to their expressiveness and their potentialto be combined with models for other code generation tasks.
</p>
</td>
</tr>
@@ -1546,7 +1546,7 @@ Bugfixing or new feature development req
Hal Finkel
</p>
<p class="affiliation">
-
+ Argonne National Laboratory
</p>
<p class="kind">
Modified: www/trunk/devmtg/2017-03/assets/css/style.css
URL: http://llvm.org/viewvc/llvm-project/www/trunk/devmtg/2017-03/assets/css/style.css?rev=295842&r1=295841&r2=295842&view=diff
==============================================================================
--- www/trunk/devmtg/2017-03/assets/css/style.css (original)
+++ www/trunk/devmtg/2017-03/assets/css/style.css Wed Feb 22 08:59:19 2017
@@ -80,12 +80,14 @@
p.author {
font-weight: 600;
+ line-height: 1.25em;
font-style: italic;
- margin: 0 0 -0.5em 0;
+ margin: 0 0 -0.05em 0;
}
p.affiliation {
font-size: 0.8em;
+ line-height: 1.25em;
margin: 0 0 1em 0;
}
More information about the llvm-commits
mailing list