CcNav: Understanding Compiler Optimizations in Binary Code

CcNav: Understanding Compiler Optimizations in Binary Code
复制标题

CcNav:了解二进制代码中的编译器优化

DOI:
10.1109/tvcg.2020.3030357
复制
发表时间:
2021
影响因子:
5.2
通讯作者:
Isaacs, Katherine E.
Isaacs, Katherine E.
中科院分区:
计算机科学1区
文献类型:
--
作者:
Devkota, Sabin;Aschwanden, Pascal;Kunen, Adam;Legendre, Matthew;Isaacs, Katherine E.

文献摘要

参考文献

被引文献

相似文献

程序开发人员花费大量时间来优化和调整程序。在这个迭代过程中,他们应用优化,分析结果代码,并修改编译,直到他们满意为止。了解编译器对代码做了什么对此过程至关重要,但这是非常耗时和费力的。用户需要浏览数千行二进制代码,并将其与源代码概念相关联,以了解编译结果并确定优化。我们提出了一项与程序开发人员和性能分析师合作的设计研究。我们的合作者使用与程序相关的各种构件,例如二进制代码、源代码、控制流图和调用图。通过访谈、反馈和配对分析会议,我们分析了他们的任务和工作流程。在此任务分析的基础上,通过以人为中心的设计过程,我们设计了一个可视化分析系统编译导航器(CcNav),以帮助探索编译器优化对程序的影响。CcNav提供了简化的工作流程和集成了不同构件的统一环境。CcNav支持跨所有构件的一致交互,因此很容易将二进制代码与源代码概念关联起来。CcNav使用户能够导航和过滤大型二进制代码,以识别和汇总内联、向量化、循环展开和代码提升等优化。我们通过指导会议和半结构化访谈来评估CcNav。我们通过对以前的程序分析设计研究的经验,反思我们的设计过程,特别是沉浸式元素,以及设计研究的可转移性。
Program developers spend significant time on optimizing and tuning programs. During this iterative process, they apply optimizations, analyze the resulting code, and modify the compilation until they are satisfied. Understanding what the compiler did with the code is crucial to this process but is very time-consuming and labor-intensive. Users need to navigate through thousands of lines of binary code and correlate it to source code concepts to understand the results of the compilation and to identify optimizations. We present a design study in collaboration with program developers and performance analysts. Our collaborators work with various artifacts related to the program such as binary code, source code, control flow graphs, and call graphs. Through interviews, feedback, and pair-analytics sessions, we analyzed their tasks and workflow. Based on this task analysis and through a human-centric design process, we designed a visual analytics system Compilation Navigator (CcNav) to aid exploration of the effects of compiler optimizations on the program. CcNav provides a streamlined workflow and a unified context that integrates disparate artifacts. CcNav supports consistent interactions across all the artifacts making it easy to correlate binary code with source code concepts. CcNav enables users to navigate and filter large binary code to identify and summarize optimizations such as inlining, vectorization, loop unrolling, and code hoisting. We evaluate CcNav through guided sessions and semi-structured interviews. We reflect on our design process, particularly the immersive elements, and on the transferability of design studies through our experience with a previous design study on program analysis.
DOI: 10.1145/2047196.2047225
发表时间: 2011-10
期刊: Proceedings of the 24th annual ACM symposium on User interface software and technology
影响因子: --
作者:
Thorsten Karrer;Jan-Peter Krämer;Jonathan Diehl;Bjoern Hartmann;Jan O. Borchers
通讯作者: Thorsten Karrer;Jan-Peter Krämer;Jonathan Diehl;Bjoern Hartmann;Jan O. Borchers
可视化移动目标:存在不断变化的数据和关注点的任务并行程序的设计研究
DOI: 10.1109/tvcg.2019.2934285
发表时间: 2019
影响因子: 5.2
作者:
Williams, Katy;Bigelow, Alex;Isaacs, Katherine E.
通讯作者: Isaacs, Katherine E.
可视化超标量处理器上的应用程序行为
DOI: 10.1109/infvis.1999.801852
发表时间: 1999
期刊: Proceedings 1999 IEEE Symposium on Information Visualization (InfoVis'99)
影响因子: --
作者:
Chris Stolte;Robert P. Bosch;P. Hanrahan;M. Rosenblum
通讯作者: M. Rosenblum
程序依赖和切片的可视化
DOI: 10.1109/icsm.2004.1357801
发表时间: 2004
期刊: 20th IEEE International Conference on Software Maintenance, 2004. Proceedings.
影响因子: --
作者:
J. Krinke
通讯作者: J. Krinke
DOI: 10.1109/tvcg.2018.2865076
发表时间: 2019-01
影响因子: 5.2
作者:
Yixuan Zhang;Kartik Chanana;Cody Dunne
通讯作者: Yixuan Zhang;Kartik Chanana;Cody Dunne