LLVM 之 IR 篇:如何编写消除死代码 Pass

Posted csstormq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LLVM 之 IR 篇:如何编写消除死代码 Pass相关的知识,希望对你有一定的参考价值。

本文基于release/12.x版本的 LLVM 源码,介绍了如何编写用于消除死代码的 Pass——myadce。该 Pass 仅消除那些被判定为死代码的指令。这意味着该 Pass 不会更改控制流图,比如:增或删基本块、更改基本块之间的控制流向。通过实现这样一个简单的 Pass,从而初步了解 LLVM IR 的优化——消除死代码,以便更深入地研究相关内容,比如:ADCE、BDCE、DCE、DSE 等。

阅读完整内容见微信公众号同名文章(技术专栏 -> LLVM 编译器)

以上是关于LLVM 之 IR 篇:如何编写消除死代码 Pass的主要内容,如果未能解决你的问题,请参考以下文章

LLVM 之 IR 篇:如何编写内联 Pass

LLVM 之 IR 篇:如何编写内联 Pass

LLVM 之 IR 篇:如何基于传统 Pass 框架扩展 LLVM IR 优化器

LLVM 之 IR 篇:如何使用 LLVM IR 优化器

LLVM 之 IR 篇:如何扩展 LLVM IR 优化器

LLVM 之 IR 篇:如何基于新 Pass 框架扩展 LLVM IR 优化器