Jon*_*tte 4 c optimization llvm clang
我正在实施一个新的LLVM后端,从CBackend目标开始.最终目标是使用"llc"生成输入C代码的源变换.但是,我想做一些优化,在这种情况下似乎没有得到很好的支持.LLVM目标代码是非常低级的,我必须检查它以重新发现实际发生的事情.这在AST级别上要简单得多.然而,似乎AST级别是一个Clang内部构造,并没有简单的方法来插入它.
我是否必须自己检查LLVM目标代码并对更高级别的流程进行反向工程?(每个后端都必须这样做吗?这看起来很浪费!)
通常,您无法对所有内容进行反向工程.所以,你只有两种可能性:
但实际上,你不应该在LLVM IR级别上进行任何源到源的转换,对于给定的目标来说,这是一个错误的工具.你肯定可以插入AST级别.例如clang源包含一个重写器,它将ObjC代码转换为普通C.