More than meets the eye: invisible instructions.

SBLP(2018)

引用 24|浏览16
暂无评分
摘要
In modern software development, high-level languages are becoming progressively more feature-rich. The expressiveness and increased abstraction provided by these features allow programmers to be more productive and less concerned with low-level details. It is then the compiler's job to strip these layers of abstraction to actually implement its language's features. In contrast to average developers, compiler engineers operate within the compiler's infrastructure, looking for opportunities to optimize code or analyze programs. However, given their vantage point, these developers often assume that the program representation they use contains near-complete information of what will end up in the program's binary. We show that this is not quite the case. To this end, we introduce the notion of invisible instructions, which are present in the binary but are not visible in the program's compiler-generated intermediate representation. We use static analysis and profiling techniques to measure the prevalence of these instructions for a wide variety of programs in several benchmark suites, and show that for some instruction types, up to 36% of their occurrences on average are invisible.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要