[www] r290639 - Fix typo that messed up table.

Tanya Lattner via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 27 15:57:56 PST 2016


Author: tbrethou
Date: Tue Dec 27 17:57:56 2016
New Revision: 290639

URL: http://llvm.org/viewvc/llvm-project?rev=290639&view=rev
Log:
Fix typo that messed up table.

Modified:
    www/trunk/devmtg/2016-11/index.html

Modified: www/trunk/devmtg/2016-11/index.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/devmtg/2016-11/index.html?rev=290639&r1=290638&r2=290639&view=diff
==============================================================================
--- www/trunk/devmtg/2016-11/index.html (original)
+++ www/trunk/devmtg/2016-11/index.html Tue Dec 27 17:57:56 2016
@@ -6,7 +6,7 @@
         <tr><td valign="top">
 <ol>
         <li><a href="#about">About</a></li>
-        <li><a href=“#program”>Program</a></li>
+        <li><a href=“#program">Program</a></li>
 	<li><a href="#abstracts">Talk Abstracts</a></li>
         <li><a href="#contact">Contact</a></li>
 </ol>
@@ -95,59 +95,59 @@ Please sign up for the
 for future announcements and to ask questions. 
 </p>
 
-<div class="www_sectiontitle" id=“program”>Program</div>
+<div class="www_sectiontitle" id=“program">Program</div>
 <p>The agenda may be found here: <a href="https://llvmdevelopersmeetingbay2016.sched.org">https://llvmdevelopersmeetingbay2016.sched.org</a></p>
 
-Please view all videos on the <a href=“https://www.youtube.com/channel/UCv2_41bSAa5Y_8BacJUZfjQ”>LLVM YouTube Channel</a>.
+Please view all videos on the <a href=“https://www.youtube.com/channel/UCv2_41bSAa5Y_8BacJUZfjQ">LLVM YouTube Channel</a>.
 
 <table id="devmtg">
   <tr><th>Media</th><th>Talk</th></tr>
 
 <tr><td><a href=“Slides/Hames-ORC.pdf">Slides</a><br><a href="https://youtu.be/hILdR8XRvdQ">Video</a></td><td><b><a href="#talk1">ORC -- LLVM's Next Generation of JIT API </a></b><br>Lang Hames</td></tr>
 
-<tr><td><a href=“Slides/Ansari-Code-Alignment.pdf">Slides</a><br><a href="https://youtu.be/IX16gcX4vDQ">Video</a></td><td><b><a href="#talk2”>Causes of Performance Instability due to Code Placement in X86 </a></b><br>Zia Ansari</td></tr>
+<tr><td><a href=“Slides/Ansari-Code-Alignment.pdf">Slides</a><br><a href="https://youtu.be/IX16gcX4vDQ">Video</a></td><td><b><a href="#talk2">Causes of Performance Instability due to Code Placement in X86 </a></b><br>Zia Ansari</td></tr>
 
-<tr><td><a href=“Slides/Finkel-IntrinsicsMetadataAttributes.pdf">Slides</a><br><a href="https://youtu.be/jII0AcgU_5c">Video</a></td><td><b><a href="#talk3”>Intrinsics, Metadata, and Attributes: The story continues! </a></b><br>Hal Finkel</td></tr>
+<tr><td><a href=“Slides/Finkel-IntrinsicsMetadataAttributes.pdf">Slides</a><br><a href="https://youtu.be/jII0AcgU_5c">Video</a></td><td><b><a href="#talk3">Intrinsics, Metadata, and Attributes: The story continues! </a></b><br>Hal Finkel</td></tr>
 
-<tr><td><a href=“Slides/Nishanov-LLVMCoroutines.pdf">Slides</a><br><a href="https://youtu.be/Ztr8QvMhqmQ">Video</a></td><td><b><a href="#talk4”>LLVM Coroutines: Bringing resumable functions to LLVM </a></b><br>Gor Nishanov</td></tr>
+<tr><td><a href=“Slides/Nishanov-LLVMCoroutines.pdf">Slides</a><br><a href="https://youtu.be/Ztr8QvMhqmQ">Video</a></td><td><b><a href="#talk4">LLVM Coroutines: Bringing resumable functions to LLVM </a></b><br>Gor Nishanov</td></tr>
 
-<tr><td><a href=“Slides/Emerson-ScalableVectorizationinLLVMIR.pdf">Slides</a><br><a href="https://youtu.be/0up2hJk7k94">Video</a></td><td><b><a href="#talk5”>Scalable Vectorization for LLVM </a></b><br>Amara Emerson, Graham Hunter</td></tr>
+<tr><td><a href=“Slides/Emerson-ScalableVectorizationinLLVMIR.pdf">Slides</a><br><a href="https://youtu.be/0up2hJk7k94">Video</a></td><td><b><a href="#talk5">Scalable Vectorization for LLVM </a></b><br>Amara Emerson, Graham Hunter</td></tr>
 
-<tr><td><a href=“Slides/Padlewski-DevirtualizationInLLVM.pdf">Slides</a><br><a href="https://youtu.be/qMhV6d3B1Vk">Video</a></td><td><b><a href="#talk6”>Devirtualization in LLVM</a></b><br>Piotr Padlewski</td></tr>
+<tr><td><a href=“Slides/Padlewski-DevirtualizationInLLVM.pdf">Slides</a><br><a href="https://youtu.be/qMhV6d3B1Vk">Video</a></td><td><b><a href="#talk6">Devirtualization in LLVM</a></b><br>Piotr Padlewski</td></tr>
 
-<tr><td><a href=“Slides/Saito-NextLevelLLVMLoopVectorizer.pdf">Slides</a><br><a href="https://youtu.be/XXAvdUwO7kQ">Video</a></td><td><b><a href="#talk7”>Extending LoopVectorizer towards supporting OpenMP4.5 SIMD and outer loop auto-vectorization </a></b><br>Hideki Saito</td></tr>
+<tr><td><a href=“Slides/Saito-NextLevelLLVMLoopVectorizer.pdf">Slides</a><br><a href="https://youtu.be/XXAvdUwO7kQ">Video</a></td><td><b><a href="#talk7">Extending LoopVectorizer towards supporting OpenMP4.5 SIMD and outer loop auto-vectorization </a></b><br>Hideki Saito</td></tr>
 
-<tr><td><a href=“Slides/Zolotukhin-LoopPasses.pdf">Slides</a><br><a href="https://youtu.be/AfeUG7f5UA0">Video</a></td><td><b><a href="#talk8”>Loop Passes: Adding new features while reducing technical debt </a></b><br>Mikhail Zolotukhin</td></tr>
+<tr><td><a href=“Slides/Zolotukhin-LoopPasses.pdf">Slides</a><br><a href="https://youtu.be/AfeUG7f5UA0">Video</a></td><td><b><a href="#talk8">Loop Passes: Adding new features while reducing technical debt </a></b><br>Mikhail Zolotukhin</td></tr>
 
-<tr><td><a href=“Slides/DiFederico-rev.ng.pdf">Slides</a><br><a href="https://youtu.be/5CbuU4KwBCE">Video</a></td><td><b><a href="#talk9”>rev.ng: a QEMU- and LLVM-based static binary analysis framework </a></b><br>Alessandro Di Federico</td></tr>
+<tr><td><a href=“Slides/DiFederico-rev.ng.pdf">Slides</a><br><a href="https://youtu.be/5CbuU4KwBCE">Video</a></td><td><b><a href="#talk9">rev.ng: a QEMU- and LLVM-based static binary analysis framework </a></b><br>Alessandro Di Federico</td></tr>
 
-<tr><td><a href=“Slides/Dunbar-NewArchitectureForBuildingSoftware.pdf">Slides</a><br><a href="https://youtu.be/b_T-eCToX1I">Video</a></td><td><b><a href="#talk10”>A New Architecture for Building Software </a></b><br>Daniel Dunbar</td></tr>
+<tr><td><a href=“Slides/Dunbar-NewArchitectureForBuildingSoftware.pdf">Slides</a><br><a href="https://youtu.be/b_T-eCToX1I">Video</a></td><td><b><a href="#talk10">A New Architecture for Building Software </a></b><br>Daniel Dunbar</td></tr>
 
-<tr><td><a href=“Slides/Kumar-Pop-GVNHoist.pdf">Slides</a><br><a href="https://youtu.be/GB3OpqSwuUw">Video</a></td><td><b><a href="#talk11”>GVN-Hoist: Hoisting Computations from Branches </a></b><br>Aditya Kumar, Sebastian Pop</td></tr>
+<tr><td><a href=“Slides/Kumar-Pop-GVNHoist.pdf">Slides</a><br><a href="https://youtu.be/GB3OpqSwuUw">Video</a></td><td><b><a href="#talk11">GVN-Hoist: Hoisting Computations from Branches </a></b><br>Aditya Kumar, Sebastian Pop</td></tr>
 
-<tr><td><a href=“Slides/Amini-Johnson-ThinLTO.pdf">Slides</a><br><a href="https://youtu.be/9OIEZAj243g">Video</a></td><td><b><a href="#talk12”>ThinLTO: Scalable and Incremental LTO </a></b><br>Mehdi Amini, Teresa Johnson</td></tr>
+<tr><td><a href=“Slides/Amini-Johnson-ThinLTO.pdf">Slides</a><br><a href="https://youtu.be/9OIEZAj243g">Video</a></td><td><b><a href="#talk12">ThinLTO: Scalable and Incremental LTO </a></b><br>Mehdi Amini, Teresa Johnson</td></tr>
 
-<tr><td><a href=“Slides/Lopes-LongLivePoison.pdf">Slides</a><br><a href="https://youtu.be/_-3Iiads1EM">Video</a></td><td><b><a href="#talk13”>Killing poison and undef -- long live poison! </a></b><br>Juneyoung Lee, Nuno Lopes</td></tr>
+<tr><td><a href=“Slides/Lopes-LongLivePoison.pdf">Slides</a><br><a href="https://youtu.be/_-3Iiads1EM">Video</a></td><td><b><a href="#talk13">Killing poison and undef -- long live poison! </a></b><br>Juneyoung Lee, Nuno Lopes</td></tr>
 
-<tr><td><a href=“Slides/Carlson-LeveragingIntermediateForms.pdf">Slides</a><br><a href="https://youtu.be/_xMUP09hmeM">Video</a></td><td><b><a href="#talk14”>Leveraging Intermediate Forms for Analysis </a></b><br>Jared Carlson, Ayal Spitz</td></tr>
+<tr><td><a href=“Slides/Carlson-LeveragingIntermediateForms.pdf">Slides</a><br><a href="https://youtu.be/_xMUP09hmeM">Video</a></td><td><b><a href="#talk14">Leveraging Intermediate Forms for Analysis </a></b><br>Jared Carlson, Ayal Spitz</td></tr>
 
-<tr><td><a href=“Slides/Nemet-Compiler-assistedPerformanceAnalysis.pdf">Slides</a><br><a href="https://youtu.be/qq0q1hfzidg">Video</a></td><td><b><a href="#talk15”>Compiler-assisted Performance Analysis </a></b><br>Adam Nemet</td></tr>
+<tr><td><a href=“Slides/Nemet-Compiler-assistedPerformanceAnalysis.pdf">Slides</a><br><a href="https://youtu.be/qq0q1hfzidg">Video</a></td><td><b><a href="#talk15">Compiler-assisted Performance Analysis </a></b><br>Adam Nemet</td></tr>
 
-<tr><td><a href=“Slides/Colombet-GlobalISel.pdf">Slides</a><br><a href="https://youtu.be/6tfb344A7w8">Video</a></td><td><b><a href="#talk16”>Global Instruction Selection Status </a></b><br>Ahmed Bougacha, Quentin Colombet, Tim Northover</td></tr>
+<tr><td><a href=“Slides/Colombet-GlobalISel.pdf">Slides</a><br><a href="https://youtu.be/6tfb344A7w8">Video</a></td><td><b><a href="#talk16">Global Instruction Selection Status </a></b><br>Ahmed Bougacha, Quentin Colombet, Tim Northover</td></tr>
 
-<tr><td><a href=“Slides/Braun-DealingWithRegisterHierarchies.pdf">Slides</a><br><a href="https://youtu.be/-TV77T1R7OU">Video</a></td><td><b><a href="#talk17”>Dealing with Register Hierarchies </a></b><br>Matthias Braun</td></tr>
+<tr><td><a href=“Slides/Braun-DealingWithRegisterHierarchies.pdf">Slides</a><br><a href="https://youtu.be/-TV77T1R7OU">Video</a></td><td><b><a href="#talk17">Dealing with Register Hierarchies </a></b><br>Matthias Braun</td></tr>
 
-<tr><td><a href=“Slides/Kleckner-CodeViewInLLVM.pdf">Slides</a><br><a href="https://youtu.be/5twzd06NqGU">Video</a></td><td><b><a href="#talk18”>CodeView, the Microsoft Debug Info Format, in LLVM </a></b><br>Reid Kleckner</td></tr>
+<tr><td><a href=“Slides/Kleckner-CodeViewInLLVM.pdf">Slides</a><br><a href="https://youtu.be/5twzd06NqGU">Video</a></td><td><b><a href="#talk18">CodeView, the Microsoft Debug Info Format, in LLVM </a></b><br>Reid Kleckner</td></tr>
 
-<tr><td><a href=“Slides/Sidorin-Summery-Based-Inter-Unit-Analysis.pdf">Slides</a><br><a href="https://youtu.be/jbLkZ82mYE4">Video</a></td><td><b><a href="#talk19”>Summary-based inter-unit analysis for Clang Static Analyzer </a></b><br>Aleksei Sidorin</td></tr>
+<tr><td><a href=“Slides/Sidorin-Summery-Based-Inter-Unit-Analysis.pdf">Slides</a><br><a href="https://youtu.be/jbLkZ82mYE4">Video</a></td><td><b><a href="#talk19">Summary-based inter-unit analysis for Clang Static Analyzer </a></b><br>Aleksei Sidorin</td></tr>
 
-<tr><td><a href=“Slides/Bieneman-CMake.pdf">Slides</a><br><a href="https://youtu.be/StF77Cx7pz8">Video</a></td><td><b><a href="#talk20”>Developing and Shipping Clang with CMake</a></b><br>Chris Bieneman</td></tr>
+<tr><td><a href=“Slides/Bieneman-CMake.pdf">Slides</a><br><a href="https://youtu.be/StF77Cx7pz8">Video</a></td><td><b><a href="#talk20">Developing and Shipping Clang with CMake</a></b><br>Chris Bieneman</td></tr>
 
-<tr><td><a href=“Slides/Paquette-Outliner.pdf">Slides</a><br><a href="https://youtu.be/yorld-WSOeU">Video</a></td><td><b><a href="#talk21”>Reducing Code Size Using Outlining </a></b><br>Jessica Paquette</td></tr>
+<tr><td><a href=“Slides/Paquette-Outliner.pdf">Slides</a><br><a href="https://youtu.be/yorld-WSOeU">Video</a></td><td><b><a href="#talk21">Reducing Code Size Using Outlining </a></b><br>Jessica Paquette</td></tr>
 
-<tr><td><a href=“Slides/Bowen-Hugett-ToyProgrammingDemo.pdf">Slides</a><br><a href="https://youtu.be/-pL94rqyQ6c">Video</a></td><td><b><a href="#talk22”>Toy programming demo of a repository for statically compiled programs </a></b><br>Paul Bowen-Huggett</td></tr>
+<tr><td><a href=“Slides/Bowen-Hugett-ToyProgrammingDemo.pdf">Slides</a><br><a href="https://youtu.be/-pL94rqyQ6c">Video</a></td><td><b><a href="#talk22">Toy programming demo of a repository for statically compiled programs </a></b><br>Paul Bowen-Huggett</td></tr>
 
-<tr><td><a href=“Slides/Cook-LLVM-Program-Integrity.pdf">Slides</a><br><a href="https://youtu.be/isHCLMrXPUk">Video</a></td><td><b><a href="#talk23”>Using LLVM to guarantee program integrity </a></b><br>Simon Cook</td></tr>
+<tr><td><a href=“Slides/Cook-LLVM-Program-Integrity.pdf">Slides</a><br><a href="https://youtu.be/isHCLMrXPUk">Video</a></td><td><b><a href="#talk23">Using LLVM to guarantee program integrity </a></b><br>Simon Cook</td></tr>
 </table>
 
 <div class="www_sectiontitle" id="abstracts">Talk Abstracts</div>
@@ -162,7 +162,7 @@ ORC is a modular re-implementation of MC
 </p>
 
 <p>
-<b><a id="talk2”>Causes of Performance Instability due to Code Placement in X86
+<b><a id="talk2">Causes of Performance Instability due to Code Placement in X86
 </a></b><br>
 <i>Zia Ansari</i><br>
 <a href=“Slides/Ansari-Code-Alignment.pdf>Slides</a><br>
@@ -171,7 +171,7 @@ Have you ever experienced significant pe
 </p>
 
 <p>
-<b><a id="talk3”>Intrinsics, Metadata, and Attributes: The story continues! 
+<b><a id="talk3">Intrinsics, Metadata, and Attributes: The story continues! 
 </a></b><br>
 <i>Hal Finkel</i><br>
 <a href=“Slides/Finkel-IntrinsicsMetadataAttributes.pdf">Slides</a><br>
@@ -180,7 +180,7 @@ This talk is a sequel to my talk at the
 </p>
 
 <p>
-<b><a id="talk4”>LLVM Coroutines: Bringing resumable functions to LLVM 
+<b><a id="talk4">LLVM Coroutines: Bringing resumable functions to LLVM 
 </a></b><br>
 <i>Gor Nishanov</i><br>
 <a href=“Slides/Nishanov-LLVMCoroutines.pdf">Slides</a><br>
@@ -197,7 +197,7 @@ Though coroutine support in LLVM is moti
 
 
 <p>
-<b><a id="talk5”>Scalable Vectorization for LLVM 
+<b><a id="talk5">Scalable Vectorization for LLVM 
 </a></b><br>
 <i>Amara Emerson, Graham Hunter</i><br>
 <a href=“Slides/Emerson-ScalableVectorizationinLLVMIR.pdf">Slides</a><br>
@@ -206,7 +206,7 @@ SVE is a new vector ISA extension for AA
 </p>
 
 <p>
-<b><a id="talk6”>Devirtualization in LLVM 
+<b><a id="talk6">Devirtualization in LLVM 
 </a></b><br>
 <i>Piotr Padlewski</i><br>
 <a href=“Slides/Padlewski-DevirtualizationInLLVM.pdf">Slides</a><br>
@@ -217,7 +217,7 @@ This talk will cover past work on devirt
 
 
 <p>
-<b><a id="talk7”>Extending LoopVectorizer towards supporting OpenMP4.5 SIMD and outer loop auto-vectorization 
+<b><a id="talk7">Extending LoopVectorizer towards supporting OpenMP4.5 SIMD and outer loop auto-vectorization 
 </a></b><br>
 <i>Hideki Saito</i><br>
 <a href=“Slides/Saito-NextLevelLLVMLoopVectorizer.pdf">Slides</a><br>
@@ -227,7 +227,7 @@ Currently, LoopVectorizer in LLVM is spe
 
 
 <p>
-<b><a id="talk8”>Loop Passes: Adding new features while reducing technical debt 
+<b><a id="talk8">Loop Passes: Adding new features while reducing technical debt 
 </a></b><br>
 <i>Mikhail Zolotukhin</i><br>
 <a href=“Slides/Zolotukhin-LoopPasses.pdf">Slides</a><br>
@@ -236,7 +236,7 @@ This year LLVM's loop passes have been g
 </p>
 
 <p>
-<b><a id="talk9”>rev.ng: a QEMU- and LLVM-based static binary analysis framework 
+<b><a id="talk9">rev.ng: a QEMU- and LLVM-based static binary analysis framework 
 </a></b><br>
 <i>Alessandro Di Federico</i><br>
 <a href=“Slides/DiFederico-rev.ng.pdf">Slides</a><br>
@@ -266,7 +266,7 @@ is in the order of the hundreds of kilob
 </p>
 
 <p>
-<b><a id="talk10”>A New Architecture for Building Software 
+<b><a id="talk10">A New Architecture for Building Software 
 </a></b><br>
 <i>Daniel Dunbar</i><br>
 <a href=“Slides/Dunbar-NewArchitectureForBuildingSoftware.pdf">Slides</a><br>
@@ -275,10 +275,10 @@ Clang was written in part to deliver fas
 </p>
 
 <p>
-<b><a id="talk11”>GVN-Hoist: Hoisting Computations from Branches 
+<b><a id="talk11">GVN-Hoist: Hoisting Computations from Branches 
 </a></b><br>
 <i>Aditya Kumar, Sebastian Pop</i><br>
-<a href=“Slides/Kumar-Pop-GVNHoist.pdf”>Slides</a><br>
+<a href=“Slides/Kumar-Pop-GVNHoist.pdf">Slides</a><br>
 <a href="https://youtu.be/GB3OpqSwuUw">Video</a><br>
 Code-hoisting identifies identical computations across the program and hoists 
 them to a common dominator so as to save code size. Although the main goal of 
@@ -300,7 +300,7 @@ a result of hoisting.
 </p>
 
 <p>
-<b><a id="talk12”>ThinLTO: Scalable and Incremental LTO 
+<b><a id="talk12">ThinLTO: Scalable and Incremental LTO 
 </a></b><br>
 <i>Mehdi Amini, Teresa Johnson</i><br>
 <a href=“Slides/Amini-Johnson-ThinLTO.pdf">Slides</a><br>
@@ -311,7 +311,7 @@ We propose in this presentation to go th
 </p>
 
 <p>
-<b><a id="talk13”>Killing poison and undef -- long live poison! 
+<b><a id="talk13">Killing poison and undef -- long live poison! 
 </a></b><br>
 <i>Juneyoung Lee, Nuno Lopes</i><br>
 <a href=“Slides/Lopes-LongLivePoison.pdf">Slides</a><br>
@@ -326,7 +326,7 @@ This talk is meant to increase awareness
 </p>
 
 <p>
-<b><a id="talk14”>Leveraging Intermediate Forms for Analysis 
+<b><a id="talk14">Leveraging Intermediate Forms for Analysis 
 </a></b><br>
 <i>Jared Carlson, Ayal Spitz</i><br>
 <a href=“Slides/Carlson-LeveragingIntermediateForms.pdf">Slides</a><br>
@@ -335,7 +335,7 @@ In this presentation we will discuss and
 </p>
 
 <p>
-<b><a id="talk15”>Compiler-assisted Performance Analysis 
+<b><a id="talk15">Compiler-assisted Performance Analysis 
 </a></b><br>
 <i>Adam Nemet</i><br>
 <a href=“Slides/Nemet-Compiler-assistedPerformanceAnalysis.pdf">Slides</a><br>
@@ -344,7 +344,7 @@ Optimization diagnostics have been part
 </p>
 
 <p>
-<b><a id="talk16”>Global Instruction Selection Status 
+<b><a id="talk16">Global Instruction Selection Status 
 </a></b><br>
 <i>Ahmed Bougacha, Quentin Colombet, Tim Northover</i><br>
 <a href=“Slides/Colombet-GlobalISel.pdf">Slides</a><br>
@@ -356,7 +356,7 @@ As a backend developer, you will learn w
 </p>
 
 <p>
-<b><a id="talk17”>Dealing with Register Hierarchies 
+<b><a id="talk17">Dealing with Register Hierarchies 
 </a></b><br>
 <i>Matthias Braun</i><br>
 <a href=“Slides/Braun-DealingWithRegisterHierarchies.pdf">Slides</a><br>
@@ -376,7 +376,7 @@ model them and explains the register all
 </p>
 
 <p>
-<b><a id="talk18”>CodeView, the Microsoft Debug Info Format, in LLVM 
+<b><a id="talk18">CodeView, the Microsoft Debug Info Format, in LLVM 
 </a></b><br>
 <i>Reid Kleckner</i><br>
 <a href=“Slides/Kleckner-CodeViewInLLVM.pdf">Slides</a><br>
@@ -385,7 +385,7 @@ The number one piece of feedback we've h
 </p>
 
 <p>
-<b><a id="talk19”>Summary-based inter-unit analysis for Clang Static Analyzer 
+<b><a id="talk19">Summary-based inter-unit analysis for Clang Static Analyzer 
 </a></b><br>
 <i>Aleksei Sidorin</i><br>
 <a href=“Slides/Sidorin-Summery-Based-Inter-Unit-Analysis.pdf">Slides</a><br>
@@ -394,7 +394,7 @@ The ability to perform interprocedural a
 </p>
 
 <p>
-<b><a id="talk20”>Developing and Shipping Clang with CMake 
+<b><a id="talk20">Developing and Shipping Clang with CMake 
 </a></b><br>
 <i>Chris Bieneman</i><br>
 <a href=“Slides/Bieneman-CMake.pdf">Slides</a><br>
@@ -403,7 +403,7 @@ In LLVM 3.8 the autoconf build system wa
 </p>
 
 <p>
-<b><a id="talk21”>Reducing Code Size Using Outlining 
+<b><a id="talk21">Reducing Code Size Using Outlining 
 </a></b><br>
 <i>Jessica Paquette</i><br>
 <a href=“Slides/Paquette-Outliner.pdf">Slides</a><br>
@@ -412,7 +412,7 @@ Maintaining a low code size overhead is
 </p>
 
 <p>
-<b><a id="talk22”>Toy programming demo of a repository for statically compiled programs 
+<b><a id="talk22">Toy programming demo of a repository for statically compiled programs 
 </a></b><br>
 <i>Paul Bowen-Huggett</i><br>
 <a href=“Slides/Bowen-Hugett-ToyProgrammingDemo.pdf">Slides</a><br>
@@ -421,14 +421,14 @@ This talk will present a proof of concep
 </p>
 
 <p>
-<b><a id="talk23”>Using LLVM to guarantee program integrity 
+<b><a id="talk23">Using LLVM to guarantee program integrity 
 </a></b><br>
 <i>Simon Cook</i><br>
 <a href=“Slides/Cook-LLVM-Program-Integrity.pdf">Slides</a><br>
 <a href="https://youtu.be/isHCLMrXPUk">Video</a><br>
 There are many embedded systems on which we rely heavily in our day to day lives, and for these it is crucial to ensure that these systems are as robust as possible. To this end, it is important to have strong guarantees about the integrity of running code. Achieving this naturally requires close integration between hardware features and compiler toolchain support for these features. 
 <br>
-To achieve this, an NXP architecture uses hardware signing to ensure integrity of a program's control flow from modification. Each instruction's interpretation depends on the preceding instruction in the execution flow (and hence the sequence of all preceding instructions). Basic blocks require a “correction value” to bring the system into a consistent state when arriving from different predecessors. Compiler support is needed for this such that compiled code can receive the benefits of this feature. 
+To achieve this, an NXP architecture uses hardware signing to ensure integrity of a program's control flow from modification. Each instruction's interpretation depends on the preceding instruction in the execution flow (and hence the sequence of all preceding instructions). Basic blocks require a “correction value" to bring the system into a consistent state when arriving from different predecessors. Compiler support is needed for this such that compiled code can receive the benefits of this feature. 
 <br>
 Over the past year we have implemented the infrastructure for this feature which can be enabled on a per-function level in LLVM, for functions written in both C and/or assembly. In this talk we will present this system, and show how it enforces control flow integrity. 
 <br>




More information about the llvm-commits mailing list