首届PLCT实验室开放日成功举办
2019年12月18日,PLCT实验室首届开放日在中科院软件所五号楼中会议室举行。开放日的活动分为上午场和下午场,共有11个主题分享。上午场的主题分享有:《PLCT与方舟编译器社区建设》、《TenonStudio 2019年研发概述》、《Quick!未来之路》、《基于QEMU的模拟器扩展与实践》和《长洲岛2020:PLCT在培训和慕课领域的路线图》。下午场的主题分享基本都是与LLVM相关,是一个LLVM专场,主要有:《Tiger编译器后端实现》、《使用LLVM测试框架对ollvm进行性能评估》、《通过手写LLVM IR生成过程入门LLVM》、《如何从零开始写一个LLVM Pass》、《LLVM TableGen 实例讲解》和《LLVM中的RISC-V向量扩展支持》。
活动日接受现场报名的同时,也在Bilibili进行了在线直播。活动日当天线上、线下参与人数峰值达到600多人,累计参与人数达到1000余人。现场的茶歇和social环节,气氛也十分热烈,大家就相关议题展开了热烈的讨论。
现场的主题分享与讨论详情如下:
《PLCT与方舟编译器社区建设》 报告人:史宁宁 项目主管
方舟编译器开源以来,PLCT在其社区建设中发挥了重要作用。此次分享在介绍方舟编译器开源代码和社区建设的基础之上,介绍PLCT在方舟编译器社区建设之中所做的各项工作。同时,也将对PLCT未来在方舟编译器社区发展之中的工作方向进行了展望。
![c649bbe905d6d3b2ad3517f453342d5b.png](https://i-blog.csdnimg.cn/blog_migrate/c4d9f82aab088ede68e9596c604fe7bf.jpeg)
《TenonStudio 2019年研发概述》 报告人:许中兴 博士
TENON Project 是软件所与中科重德主导开发的工业机器人编程系统。TenonStudio 是TENON系统中的离线模拟开发环境。本次报告中,许中兴博士介绍了 TenonStudio 和控制器的架构、组成、各组件的开发状态、遇到的bugs等,涉及的领域等方方面面的情况。如果对这方面感兴趣的朋友,可以联系许博士:xuzhongxing@iscas.ac.cn。
![e5c81c1608c89fde3e9238b290de4e44.png](https://i-blog.csdnimg.cn/blog_migrate/469916f5b76c7c42a59ede373e25e65d.jpeg)
《Quick!未来之路》 报告人:赵伟峰 工程师
赵伟峰工程师自2019年下半年加入 TenonStudio 项目组。在本次报告中,赵伟峰介绍了加入项目以来对项目的一些思考、向 TenonStudio 中引入 QtQuick 的历程、带来的好处以及付出的代价。
![d394d63b31767838675b00f9347d2e00.png](https://i-blog.csdnimg.cn/blog_migrate/a53591f02b79a0c68fb352201a94c173.jpeg)
《基于QEMU的模拟器扩展与实践》 报告人:王俊强 工程师
王俊强工程师在2019年由于工作需要开始研究QEMU的内部实现原理。本次报告中,王俊强工程师将介绍QEMU的基本框架、实现原理,以及在项目中对QEMU进行的扩展。与此同时,他也在寻找国内做QEMU的志同道合的小伙伴,希望可以形成一个小的学习团体,一起交流进步。
![abc6df3a666eaaebebe8f6e205218bfa.png](https://i-blog.csdnimg.cn/blog_migrate/a9fca99bbe04bae733577ecd61124936.jpeg)
《长洲岛2020:PLCT在培训和慕课领域的路线图》报告人:吴伟 项目总监
近期,PLCT实验室联合HelloGCC、HelloLLVM社区进行了编译技术教学的开放性尝试。本次报告阐述了我们近期的教学计划安排,以及在2020年的年度教学规划和目标。
![0591b52faa650caba993eee5d3599f4c.png](https://i-blog.csdnimg.cn/blog_migrate/5d8c728491c75637610278235b4c9591.jpeg)
《Tiger编译器后端实现》 报告人:韩柳彤 保研实习生
Tiger 语言是编译原理教材《Modern Compiler Implementation in C》中定义的小规模教学用语言,我们为其实现了一个以RISC-V(RV32I)为目标指令集的编译器后端部分,为编译原理教学平台提供支持。韩柳彤详细的介绍了上述工作。
![46a1b8a97a8072869cdd737ba85b81a7.png](https://i-blog.csdnimg.cn/blog_migrate/3e91ae746e5eb92d747a6a912ea6abf5.jpeg)
《使用LLVM测试框架对ollvm进行性能评估》 报告人:韩柳彤 保研实习生
Obfuscator-LLVM是一个开源的带有混淆功能的编译器。韩柳彤等人使用SPEC2006作为测试集,计划从代码尺寸、运行效率和代码相似性三个维度对OLLVM进行评估测试,为后续基于OLLVM的定制开发提供支持。
![d3c28ff9797cad5f65b6445c5d24fc15.png](https://i-blog.csdnimg.cn/blog_migrate/c4efe31bd1f5936b6c6f867d05f7ef3e.jpeg)
《通过手写LLVM IR生成过程入门LLVM》 报告人:李威威 见习主管
LLVM IR 是LLVM编译框架的核心组成部分,是编译器前端和后端衔接的枢纽。本次报告对IR程序的构成以及IR相关核心类进行介绍,并通过实例讲解如何生成LLVM IR。
![b83b119e61af7d692d12b1f56c0fa063.png](https://i-blog.csdnimg.cn/blog_migrate/dfab0dc5b89c9e9caab1076c5f2a02f4.jpeg)
《如何从零开始写一个LLVM Pass》 报告人:廖春玉 工程师
LLVM Pass框架是LLVM系统的重要组成部分。LLVM的优化和转换工作是由很多个Pass来一起完成的,类似流水线操作一样,每个Pass完成特定的工作。本报告对如何实现一个LLVM Pass进行了介绍。
![af49951c8e1cc23275f013bc0381d9ab.png](https://i-blog.csdnimg.cn/blog_migrate/c213b6f2afdb3287eafc2b88d9401ac7.jpeg)
《LLVM TableGen 实例讲解》 报告人:邢明杰 高级工程师
TableGen是一种DSL语言,用来处理领域特定的信息记录。LLVM使用TableGen来描述目标体系结构信息,学习TableGen有助于理解LLVM后端代码生成机制,为实现新的指令集架构支持打下基础。该报告通过实例对TableGen进行详细讲解。
![ab80f5df06b00d780581584aa0a62d04.png](https://i-blog.csdnimg.cn/blog_migrate/85967736e93cf989b6ee058e26ec6049.jpeg)
《LLVM中的RISC-V向量扩展支持》 张尹 PLCT研究生
LLVM的RISC-V后端目前还没有对向量扩展的支持,而目前市场和学术界都对LLVM和RISC-V的向量扩展有一定的需求,所以我们致力于实现LLVM中的RISC-V向量扩展的支持。目前我们已经完成了RISC-V向量扩展指令的大部分汇编实现,后续会进一步对LLVM实现完整的RISC-V向量扩展支持。本次报告主要阐述RISC-V向量扩展的汇编代码实现与后续向量扩展支持所需的相关工作。
![ffb87d270c8ca3ceebbd44ec1215ae34.png](https://i-blog.csdnimg.cn/blog_migrate/a702fd92007123fd7826f88b5f5ac97f.jpeg)
现场情况
![5d29d3bdeb77bdab94f674c35656873b.png](https://i-blog.csdnimg.cn/blog_migrate/c31d7b290c7d40e152dc2cbfe279c4a4.jpeg)
——后记——
现场主题分享的PPT已经上传到github,具体地址为:
https://github.com/isrc-cas/PLCT-OpenDay-2019github.com现场主题视频近一两日会上传到Bilibili,具体地址为:
哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibilispace.bilibili.com