BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Pentabarf//Schedule 0.3//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALDESC;VALUE=TEXT:LLVM Toolchain devroom X-WR-CALNAME;VALUE=TEXT:LLVM Toolchain devroom X-WR-TIMEZONE;VALUE=TEXT:Europe/Brussels BEGIN:VEVENT METHOD:PUBLISH UID:5584@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T100000 DTEND:20170205T104000 SUMMARY:GlobalISel - LLVM's Latest Instruction Selection Framework DESCRIPTION:
The Global Instruction Selection framework has been prototyped for the AArch64 backend for a while and is slowly getting ripe for early adoption by other targets. This talk will try to present an overview of the framework as well as the status of the implementation on targets that have started experimenting with it.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/globalisel/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Diana Picus":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5450@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T104500 DTEND:20170205T112500 SUMMARY:Profile-Guided Optimization in the LDC D compiler DESCRIPTION:Profile-Guided Optimization (PGO) is an optimization technique which uses information about the runtime profile of an application. PGO is an area of active development in LLVM. In this talk I discuss how PGO was implemented in LDC, the LLVM-based D compiler, and which speedup the use of PGO can give.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/ldc_d_optimization/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Kai Nacke":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5602@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T113000 DTEND:20170205T121000 SUMMARY:Adding 16-bit Character Support in LLVM DESCRIPTION:LLVM has a great track record for being able to target a large range of processors, both large 32/64-bit devices and deeply embedded 8/16-bit processors. From most perspectives, from Clang through to code generation, the size of most operations do not make much difference to the ease of implementation. However there are some assumptions that are baked deeply into the compiler; one of which is the memory access width, more specifically that it is addressible in 8-bit words. This however is not always the case, many embedded DSPs can only access memory with 16-bit addressibility, and trying to teach LLVM about this proves to be a challenge.
In this talk, we will present our first explorations in this area, and share our thoughts on how we can make LLVM more memory agnostic for all targets with non-8-bit memory.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/llvm_16_bit/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Simon Cook":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5596@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T121500 DTEND:20170205T125500 SUMMARY:LLD from a user's perspective DESCRIPTION: CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/lld/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Peter Smith":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5493@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T130000 DTEND:20170205T134000 SUMMARY:Using clang as a Frontend on a Formal Verification Tool DESCRIPTION:ESBMC is a SMT-based context-bounded bounded model checker that aims to provide bit-precise verification of both ANSI-C and C++ programs. The presentation will briefly introduce the tool and then show the usage of libtooling as a frontend for the tool, including the problems we had during the development and what we hope for the future.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/clang_formal_verification_tool_frontend/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mikhail Gadelha":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5481@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T134500 DTEND:20170205T142500 SUMMARY:Using LNT to track performance DESCRIPTION:Last year, at the 2016 LLVM dev room, I presented ideas on how toimprove LNT to make performance tracking of LLVM generated codeeasier. We've implemented most ideas since, and we're happy to see thatour ideas work out in practice: quite often, understanding the rootcause for a performance regression now takes about 5 to 10 minutes ofwork, whereas before it typically took us half a day to produce alldata that is now recorded automatically.
I intend to give a demo of how we use LNT at ARM's LLVM teams. I'llalso discuss how LNT is useful for other projects that need to trackperformance of generated code. LNT is starting to be used by at leastalso some GCC, java jit and even a Verilog-to-C++ compiler teams.
I'll also give the necessary pointers on what you need to getstarted on LNT for your own projects.
You can find a preview of the kind of things I plan to demo athttp://blog.llvm.org/2016/06/using-lnt-to-track-performance.html
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/lnt/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Kristof Beyls":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5415@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T143000 DTEND:20170205T151000 SUMMARY:Mutation Testing DESCRIPTION:For decades developers try to build a bug free software. Numerous techniques and metrics were developed. However, there is still a need in an approach that can both assert program domain and provide some reliable metrics. And such approach exists. It is called Mutation Testing. Here is a brief overview:
There is a function and a test for that function. Any semantic change in the function (so called 'mutant') should break the test ('kill mutant'). If that's not the case, then mutant is considered as survived.No mutants should survive ever. If they are, then either the test is bad or the function is not correct.
Research in this area exists since 70's. However, this approach is not widely adopted. The computational cost is one of the blockers. Another one, is the way such systems are implemented: most of them do mutations at the AST level, hence they are tightly coupled to the particular languages.
We want to present you Mull: our implementation of Mutation Testing system. We use JIT and runtime compilation to speedup the system and make it accessible for everyday usage. Besides that we go down to the IR level, making the system applicable for any LLVM-based language such as C, C++, Rust, Objective-C, and many others.
Security is an every increasing concern across the computing industry, most recently in the emerging Internet of Things market. The compiler is the one tool that sees just about every piece of code, and is a position to both check for security and improve security. LLVM cannot magically write secure code, but it can help a professional programmer write really good secure code.
In this talk we will introduce our joint research program with Bristol University to add such features to LLVM. This project is still in its early stages, but we will present our initial work and discuss our future plans. A particular goal is community feedback on the priorities for this research program.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:LLVM Toolchain URL:https:/fosdem.org/2017/schedule/2017/schedule/event/security_enhanced_llvm/ LOCATION:K.3.201 ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Jeremy Bennett":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5467@FOSDEM17@fosdem.org TZID:Europe-Brussels DTSTART:20170205T160000 DTEND:20170205T160500 SUMMARY:Convergent functions and function parameters DESCRIPTION:The convergent
function attribute has been in LLVM for some time now to model restrictions e.g. on barrier intrinsics for GPUs. Recently, we've become aware of some additional restrictions that are required for the arguments of certain intrinsics in GPU code. The use of the convergent
attribute on function parameters has been proposed for this purpose.