HelloGCC 工作组成立于2007年,旨在营造一个自由、开放、共享的技术社区,讨论和学习开源工具和开源工具链。HelloGCC工作组每年都会举办一次技术讨论会,希望通过自由、开放、共享的方式来增进该领域技术的交流。 今年的HelloGCC技术讨论会(HelloGCC 2013)已于11月16日在北京成功举办,在讨论会上,来自该领域的专家、大牛分享了一些精彩的演讲。本文就将当天会议中的精彩议题介绍如下,你还可以结合PPT来进一步了解。 丁保增:在Cling上实现空指针解引用检测机制 Cling是欧洲核子研究中心(CERN)开发的C++交互式编译器,基于LLVM和Clang实现,可用于替代当前的C++解释器CINT,并且比CINT更加强大,主要体现在:
在当天的会议上,中科院软件所在读博士丁保增介绍了Cling的应用场景、实现,以及如何在Cling中实现动态地检测空指针解引用错误(这是丁保增在Google Summer of Code 2013活动中的项目)。 具体可参阅下面的幻灯片。
黃敬群:为嵌入式Linux构建一个最佳C运行时 黄敬群是台湾联发科技技术顾问、0xlab创始人,他从1999年就开始参与开源软件开发,致力于软硬件系统整合,比如Linux内核、嵌入式Linux、Android相关开发等。 黄敬群认为,一些Android开发工具链和系统库的优化经验,也可以重用于普通的嵌入式Linux项目,甚至是医疗设备上。 他在会议中分享了关于olibc的议题。olibc是从Bionic Libc(用于Android开发中)衍生出来的工具,而Bionic Libc是从NetBSD libc衍生出来的。olibc合并了一些SoC提供商(比如Qualcomm、TI、Linaro等)对于libc的增强改进,并且高可定制。对于ARM架构环境中,olibc还可以得益于ARMv7的特殊功能,比如NEON、Thumb-2、VFPv3/VFPv4以及最新的优化技术等。 具体可参阅下面的幻灯片。
程斌:GCC上归纳变量的优化 ARM工程师、开源工具链爱好者、GCC/Newlib开发者程斌分享了GCC上归纳变量的优化。 归纳变量是循环优化中非常重要的因素。不同的IV选取方法往往导致生成代码的大小和性能有很大的差距。 程斌目前在ARM上从事GNU工具链开发方面的工作,他在GCC的IV Optimization上做了很多的调优和修复,并在目标机上取得了明显的性能提升。他在本次会议上介绍了IVO的概况和他遇到的一些有趣的问题。 具体可参阅下面的幻灯片。
Chung-Ju Wu :将GCC移植到一个新的架构——nds32案例研究 Chung-Ju Wu是Andes(晶心科技)科技公司的编译器工程师,他主要致力于GCC/Open64编译器移植、编译器优化和嵌入式SoC系统软件的集成。 目前Chung-Ju Wu和其他几位工程师正在开发一个支持Andes nds32架构的完整的工具链/编译器,他在本次HelloGCC会议上介绍了目前的这个工作。 具体可参阅下面的幻灯片。
Luba Tang:系统链接器的原理、历史和未来 Luba Tang是台湾进化软件技术(Taiwan Evolution Software Technology)的创始人,他在会议上介绍了系统链接器的相关原理以及发展情况。最后还介绍了一个新的开源项目——bold,该项目的目标是提供一个并行和最佳的链接器基础设施。 具体可参阅下面的幻灯片。
刘江宁:LLVM中AArch64 Neon的实现 刘江宁是ARM首席软件工程师,长期从事编译器软件的设计和开发工作。从2000年至2010年任职于英特尔,期间曾在英特尔编译器实验室参与和领导开发多个编译器项目,自2011年起任职ARM软件工具链部门,参与和领带开源软件的开发工作,其中包括针对ARM Cortex-M系列CPU的GCC编译器的性能优化,以及LLVM/Clang编译器针对ARM v7/v8 CPU的实现。 刘江宁表示,开发一个LLVM的新后端时,刚开始的时候是往往是比较简单直接的。但是越往后越就会发现要做好一个LLVM后端有很多要考虑的问题。在HelloGCC 2013上,刘江宁分享了他在LLVM后端开发时遇到一些问题,以及相关的解决方案。具体可参阅下面的幻灯片。
HelloGCC 2013花絮 本次技术讨论会得到了ARM公司、飞思卡尔公司、CSDN、杏昕科技股份有限公司、北京开源愿景信息技术有限公司、Canonical公司、360公司、InfoQ的大力支持。在大会中间休息的时候,ARM公司的工程师还向大家展示了可全部使用开源工具进行开发的Cortex-M0+开发板,并将一部分开发板赠送给了现场的朋友。在会议中午休息和下午结束前,还进行了抽奖活动。 更多HelloGCC相关动态: http://www.hellogcc.org/ |